0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenHarmony瘦设备内核移植实战(一)

电子发烧友开源社区 来源:未知 2023-05-11 20:16 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

背景

在各行各业存在很多不同的智能设备,每个设备都使用芯片去实现不同的业务场景需求。本文将以常用的STM32F407ZG芯片为例,介绍OpenHarmony瘦设备内核移植方法,希望能对热爱OpenHarmony的开发小伙伴有所帮助。

认识芯片架构、Soc、开发板

36aa19c4-e64d-11ed-ab56-dac502259ad0.png

芯片架构是指芯片的内部器件构造以及对应的指令集,比如PC使用的英特尔i7或者AMD的R7-4800都是x86架构,手机使用的骁龙8Gen2芯片使用的则是ARM架构。

SoC是指具体的芯片架构实现,芯片厂商针对不同的应用场景开发出的芯片各不相同,但要符合架构定义,比如STM32F470就会有不同的定制版本,有些Flash会大一些,有些则是芯片封装或者引脚数不同。

开发板则是板卡厂商针对不同的产品定制的不同开发板,会根据业务需求设计不同的PCB、外设器件。

本文采用正点原子的STM32F407ZG开发板,对应的开发板、SoC、芯片架构分别是:

  • 开发板型号:explorer(探索者)

  • 板卡厂商:alientek(正点原子)

  • 芯片型号:STM32F407ZGT6

  • 芯片系列:STM32F407

  • 芯片厂商:ST(意法半导体)

  • 具体架构:Cortex-M4

  • 芯片架构:ARM

内核移植的四个层面

OH适配分为如下四个层面

Vendor

负责配置的目标产品的内核类型、系统版本、子系统、三方库等。编译时,工具链依赖这里的配置。Vendor的代码位于://vendor/

Board

开发板层面的移植,芯片已适配OH,只是开发板不同,难度不大。配置板卡编译相关的工具链,以及最为核心的启动汇编命令、链接库脚本,将指定这里的main函数来启动系统。Board相关的代码位于://device/board

SoC

SoC片上系统层面的移植,芯片架构已支持,有一定难度

配置芯片层级编译依赖库,包括CMSIS、HAL(硬件抽象层)等,这里包含操作总线、串口、时钟、寄存等库函数。SoC相关的代码位于://device/soc

ARCH

目标芯片架构不在支持的范围内的全新架构移植,难度较大。ARCH相关的代码存放在//kernel/liteos_m/arch文件夹中。整体难易度:Vendor < Board < SoC < ARCH

OpenHarmony瘦设备已支持的芯片架构

36c0509a-e64d-11ed-ab56-dac502259ad0.png

源码路径为:kernel/liteos_m/arch/arm

36cadcf4-e64d-11ed-ab56-dac502259ad0.png

总结

OpenHarmony瘦设备的移植需要从芯片架构、SoC、开发板开始,因此本文首先讲述了三者之前的关系。瘦设备使用的内核为LiteOS-M,针对不同层面的移植工作的难易度、工作量也会有所不同,根据以往经验难易度排序为Vendor < Board < SoC < ARCH,下篇文章将继续介绍移植前的准备工作。


更多热点文章阅读
  • OpenHarmony开发者大会圆满举办:3.2 Release版本发布,生态步入快车道
  • DevEco Studio 3.1 Beta新特性知多少?
  • Cocos携手乐元素,《开心消消乐》成功移植OpenHarmony
  • 开源样例!基于小凌派RK2206的工地检测平台设计
  • DevEco Device Tool 3.1 Release新版本发布

提示:本文由电子发烧友论坛发布,转载请注明来源。如需社区合作及入群交流,请添加微信EEFans0806,或者发邮箱liuyong@huaqiu.com。


原文标题:OpenHarmony瘦设备内核移植实战(一)

文章出处:【微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电子发烧友
    +关注

    关注

    33

    文章

    584

    浏览量

    33981
  • 开源社区
    +关注

    关注

    0

    文章

    95

    浏览量

    776

原文标题:OpenHarmony瘦设备内核移植实战(一)

文章出处:【微信号:HarmonyOS_Community,微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    N4DDR怎么移植蜂鸟内核

    有大佬知道N4DDR怎么移植蜂鸟内核吗,或者哪里有教程,或者有哪些论坛有相关资料。请求告知个途径。
    发表于 11-10 07:31

    将蜂鸟E203的内核移植到fpga之后该怎么进行二次开发呢?

    你们好!请问下我将蜂鸟E203的内核移植到fpga之后该怎么进行二次开发呢?比如我想点亮板子上的led?驱动摄像头进行图像识别?这些该如何进行呢?蜂鸟有类似freedom studio这样的嵌入式开发平台吗?
    发表于 11-10 07:09

    如何把蜂鸟E203的核移植在N4DDR平台上?

    请问下我想把蜂鸟E203的核移植在N4DDR平台上,但是他们的约束文件及硬件电路区别很大,具体我该怎么修改呢?比如蜂鸟的核中只有4个拨码开关而N4DDR上有16个拨码开关。
    发表于 11-10 06:46

    E203内核移植到FPGA开发板时出现时序违例的解决方式

    移植内核时,用VIVADO进行综合实现后会出现时序违例,如图: 虽然可以上板正常进行开发,但是还是想把这些违例解决下^_^ 检查后,发现是 apb_adv_timer 这条路径报的违例,解决方式
    发表于 10-27 07:32

    迅为RK3568开发板OpeHarmony学习开发手册1.1-内核移植优化

    在上小节的内核移植过程中,我们重新创建了内核补丁文件。然而,对于频繁修改内核源代码进行开发的情况来说,每次都制作内核补丁并不是
    发表于 07-26 10:37

    RT-Thread Nano硬核移植指南:手把手实现VGLite图形驱动适配 | 技术集结

    VGLite是NXP提供的轻量级2D图形API,本文将手把手带你实现VGLite图形驱动适配RT-Thread。文章分为上、下两篇,将手把手教您移植。上篇对RT-ThreadNano内核与Finsh组件进行移植,下篇则教您改写S
    的头像 发表于 07-17 14:40 3041次阅读
    RT-Thread Nano硬<b class='flag-5'>核移植</b>指南:手把手实现VGLite图形驱动适配 | 技术集结

    从DeepSeek到Qwen,AI大模型的移植与交互实战指南-飞凌嵌入式

    在不久前发布的《技术实战|OK3588-C开发板上部署DeepSeek-R1大模型的完整指南》文中,小编为大家介绍了DeepSeek-R1在飞凌嵌入式OK3588-C开发板上的移植部署、效果展示以及性能评测,本篇文章不仅将继续
    的头像 发表于 03-28 08:06 2527次阅读
    从DeepSeek到Qwen,AI大模型的<b class='flag-5'>移植</b>与交互<b class='flag-5'>实战</b>指南-飞凌嵌入式

    北京迅为RK3568开发板OpenHarmony系统南向驱动开发内核HDF驱动框架架构

    北京迅为RK3568开发板OpenHarmony系统南向驱动开发内核HDF驱动框架架构
    的头像 发表于 03-11 14:13 1559次阅读
    北京迅为RK3568开发板<b class='flag-5'>OpenHarmony</b>系统南向驱动开发<b class='flag-5'>内核</b>HDF驱动框架架构

    【入门必看】文搞懂鸿蒙系统设备开发,从入门到12大物联网项目实战

    01OpenHarmony简介OpenHarmony款面向全场景的开源分布式操作系统,是开放原子开源基金会旗下开源项目。OpenHarmony在传统的单
    的头像 发表于 02-24 09:30 2000次阅读
    【入门必看】<b class='flag-5'>一</b>文搞懂鸿蒙系统<b class='flag-5'>设备</b>开发,从入门到12大物联网项目<b class='flag-5'>实战</b>

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植内核启动流程

    关于内核启动流程涉及内容较多而且复杂,过度的分析意义不大,因此,这里不做详细讲解,只做个大概的介绍。初学者只做了解,有定基础的可以深入理解。内核镜像被uboot加载到内存空间之后,
    发表于 01-07 09:20

    飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植内核启动流程

    关于内核启动流程涉及内容较多而且复杂,过度的分析意义不大,因此,这里不做详细讲解,只做个大概的介绍。初学者只做了解,有定基础的可以深入理解。 内核镜像被uboot加载到内存空间之后
    发表于 01-06 09:51

    飞凌嵌入式ElfBoard ELF 1板卡-内核移植之编译后生成文件说明

    Linux内核编译完成之后,会生成大量的中间文件和目标文件,我们这里只介绍比较重要的几个文件。 我们所关注的最终需要烧写到开发板的是.dtb设备树镜像和zImage内核镜像。 dtb文件是
    发表于 12-19 09:11

    飞凌嵌入式ElfBoard ELF 1板卡-内核移植之编译后生成文件说明

    Linux内核编译完成之后,会生成大量的中间文件和目标文件,我们这里只介绍比较重要的几个文件。我们所关注的最终需要烧写到开发板的是.dtb设备树镜像和zImage内核镜像。dtb文件是设备
    发表于 12-18 08:52

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植内核简介

    用户提供移植好的板级开发包。板卡厂商也会对移植好的内核版本进行维护,例如些BUG修复或者物料替换。接下来讲下获取这三种源码的方法:获取l
    发表于 12-16 13:08

    飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植内核简介

    用户提供移植好的板级开发包。板卡厂商也会对移植好的内核版本进行维护,例如些BUG修复或者物料替换。接下来讲下获取这三种源码的方法:获取l
    发表于 12-13 09:03