当前位置: 首页 > 科技观察

OpenHarmony轻量级系统移植示例_0

时间:2023-03-12 05:02:25 科技观察

更多内容请访问:51CTO与华为官方共建的鸿蒙技术社区https://ost.51cto.com1.移植型OpenHarmony轻量级系统移植比较简单,代码上的解耦做得很好。从代码的设计理念来看,移植主要包括三部分:ARCH部分的代码。SoC部分的代码。板级代码。从上到下,我们可以用一张图来对比:ARCH是架构,比如ARM架构,RISC-V架构等,SoC是具体的芯片,比如STM32,海思等,一个架构可以有多个芯片。Board是具体的开发板。比如3861有润禾的开发板和熊派的开发板。一般来说,相关架构的不同SoC应该共享一套ARCH代码。无需为每个SoC重写ARCH代码,可以增加代码重用。相关的SoC应该共享一套SoC代码,不经过开发板开发板,板子之间的代码差异放在板子里。基于以上设计,我们移植的类型可以分为三个部分:ARCH移植:新架构层次的移植。SoC移植:支持的架构在SoC层面进行移植。板级移植:只对开发板做少量移植。移植难度也是ARCH最难的,SoC更难,板子更简单。2.相关代码我们看看OpenHarmony轻量级系统的三个部分的代码在哪里:(1)ARCH相关代码。ARCH相关代码存放在kernel\liteos_m\arch文件夹下。可以看到目前支持的架构有ARM(M3、M4、M33、M7、ARM9)、csky、risc-v、xtensa。(2)SoC相关代码。SoC相关代码位于:device\soc。(3)板卡相关代码。board相关代码位于:device/board。(4)供应商相关代码。除了以上三部分的代码外,还有vendor配置相关的代码。这部分主要用于编译系统、配置HDF等,路径为:vendor。内容如下:3、移植的思路是从最简单的开始,路线如下:vendor——board——soc——ARCH。在下一篇文章中,我将开始讲解如何创建自己的供应商配置和编译过程。最初它将基于GD32MCU。4.代码仓库代码仓库如下:其中01_vendor_soc_board是初步移植的例子,编译失败。02_vendor_soc_board可以编译烧写到GD32F303,可以正常运行。五、使用说明(一)代码下载开发者可先直接下载最新的openharmony代码,参考文章:https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-sourcecode-acquire.md。然后下载这个仓库的代码,把对应的代码复制到device/board,device/soc,vendor。(2)交叉编译器下载:我们使用的编译器是arm-none-eabi-gcc,下载地址:gitclonehttps://gitee.com/harylee/gcc-arm-none-eabi-10-2020-q4-major.git。配置交叉编译环境变量bin目录到.bashrc文件中。执行arm-none-eabi-gcc-v,如果打印出如下,说明交叉编译器配置正确。(3)编译。执行hbset,选择gd32f303_lianzhian。然后执行hbbuild-f,如下图,说明编译成功。更多资讯请浏览:?????????????????????????????????????????????????????????