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

描述

 

背景

 

 

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

 

 

 

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

 

 

开源社区

 

芯片架构是指芯片的内部器件构造以及对应的指令集,比如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瘦设备已支持的芯片架构

 

 

开源社区

 

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

 

开源社区

 

 

总结

 

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瘦设备内核移植实战(一)

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


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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分