OpenHarmony - Cortex M移植步骤

1300阅读 0评论2021-10-01 iibull
分类:其他平台

点击(此处)折叠或打开

  1. 参考
  2. https://www.cnblogs.com/huaweicloud/p/11861249.html

点击(此处)折叠或打开

  1. LiteOS 开源代码路径:https://github.com/LiteOS/LiteOS

liteos_M是对标freeFTOS、rt-thread、UCOS,这些都属于实时操作系统(RTOS),MCU(单片机上),不支持MMU(内存管理单元),内核空间和APP空间不能隔离开,APP出错后整个系统就会崩溃;也不支持POSIX接口,这使得大量的开源软件无法直接在MCU上运行。

理论上, liteOS_m的用法和 freeRTOS, RTX等等用法和流程基本上没有什么差别.  其实openharmony的本质在于同步信息以及同步安全这些分布式协作的技术.

对于 openharmony 的 liteOS_a 系列可就需要有比较的改变了.
---------------------------------------------------------------------------------------------------------------
基于对 韦东山 大佬的学习笔记

1. 鸿蒙的IDE分为北向IDE/南向IDE.  北向IDE为APP开发, 南向IDE为内核开发.
    南向IDE (HUAWEI DevEco Device Tool).   https://device.harmonyos.com/cn/ide  目前为(2.2 beta版)
    目前只能在windows上jlink调试,  linux上命令行编译.

2.  韦东山的资料下载 .    
 git clone
    其中包括了板子(stm32mp157 / IMX6ull)的开发手册 供参考.
  
   内核编译: 依然采用 .config 得到配置
     make ->  liteos_with_uboot_header.bin
     make rootfs ->  rootfs.jffs2.bin

3. 应用层编译是用 clang (LLVM的前端)

点击(此处)折叠或打开

  1. 应用层编译. Liteos-a中,使用LLVM来编译程序。LLVM的本意是“Low Level Virtual Machine”,一个底层的虚拟机. 使用前端(clagn) + 优化器 + 后端  --> 得到各种硬件平台的机器码

  2. clang -target arm-liteos --sysroot=/home/book/openharmony/prebuilts/lite/sysroot/ \
  3. -I /home/book/openharmony/third_party/freetype/include \
  4. -L /home/book/openharmony/out/ipcamera_hi3518ev300/libs/usr \
  5. -lfreetype \
  6. -o show_line show_line.c
sysroot参数中,指定有标准头文件、库文件的目录

4. 打包和下载.

点击(此处)折叠或打开

  1. 制作文件系统. (自定义文件后,重新打包)
  2. mkfs.jffs2 --pad=0xa00000 -s 0x10000 -e 0x10000 -d rootfs -o rootfs.jffs2.bin
  3. --pad=0xa00000含义为把文件扩充为10M


      



上一篇:VirtualBox的四种网络连接方式
下一篇:ucos _ freeRTOS 比较