LiteOS调研。
概述
个人心得
2020.12.30发布了5.0版本,但网上资料较多是旧的版本,旧版本分有-m和-a系列,新版本统一了,接口也更改了。新版本改动很大,也添加很多组件,可能还是基于该版本开发。
CMSIS ARM制定的接口,在LiteOS中有实现,在GD32中也看到有(但似乎没实现)。
在模块的 makefile 中,最好用通配符匹配源文件。
DemoEntry会初始化众多 demo 和 shell,在内核配置中添加。如不用,则可自定义 app_init 函数。
目标板的 main 函数基本不用做大改动。
开发环境
Windows平台的开发环境及工具
studio安装
安装包 HUAWEI-LiteOS-Studio-Setup-x64-xx。实际:HUAWEI-LiteOS-Studio V1.45.9 Beta 。
中文包下载脚本 https://liteos.gitee.io/liteos_studio/scripts/extension_download.bat
先安装studio,在里面选插件,再选中下载的插件,安装,官方有步骤。
安装 stm32 插件。(用 qemu 模拟也要安装之)
安装 base 插件。
gcc编译器
安装arm-none-eabi软件。下载https://liteos.gitee.io/liteos_studio/scripts/GNU_Arm_Embedded_Toolchain_download.bat。
注:默认下载目录为C:\Users\<用户名>\.huawei-liteos-studio
,因后续工程亦需要此目录,故直接使用,如没有,创建之。
make工具
下载 https://liteos.gitee.io/liteos_studio/scripts/x_pack_windows_build_tools_download.bat
注:不能使用其它的make工具,否则编译不成功。
QEMU工具
https://qemu.weilnetz.de/w64/2021/
文件名:qemu-w64-setup-20210810.exe
需核查 sha512 值。
双击exe安装。
使用小结
烧录后,有时编译无反响,关闭烧录界面。
默认只有ST和QEMU系列可配置,其它的系列暂不知如何搞。直接复制默认的配置文件(在LiteOS\tools\build\config目录),无效。
Linux平台的开发环境及工具
QEMU入门实例
参考:https://liteos.gitee.io/liteos_studio/#/project_stm32 里面有注意事项。
注意要联网。
新建工程
之后自动下载。提示:
下载完后自动打开工程。如无,手动打开。
自注: 似乎是把 liteos 整个源码下载了。与默认的仓库文件相比,一些配置修改了。
配置
点击齿轮图标,快捷键F4配置工程。
注:如果默认没有的目标板,也可以手动添加,一般基于某些芯片修改。
注:工程源码映射那个地方,暂未搞明白。
编译
按编译图标,快捷键为F7,成功提示:
编译成功提示:
1 | arm-none-eabi-objdump -d d:/project/LiteOS/demo/out/realview-pbx-a9/Huawei_LiteOS.elf >d:/project/LiteOS/demo/out/realview-pbx-a9/Huawei_LiteOS.asm |
make 不对应,出错:
1 | > Executing task: LiteOSTool: Build < |
注:make使用 mingw 提供的,不符合。
烧录
在工程配置烧录器页面选择烧录文件。
启动信息:
1 | Executing task: qemu-system-arm.exe -machine "realview-pbx-a9" -smp 4 -m 512M -kernel "d:\project\LiteOS\demo\out\realview-pbx-a9\Huawei_LiteOS.bin" -serial mon:stdio -nographic < |
调试
在配置界面,在调试器界面指定可执行文件。按 F5 启动调试。
bpx-a9研究
入口文件
reset_vector.S,各种初始化(reset_vector、异常处理、OsIrqHandler),跳转到 main 函数。
1 |
|
board_config:一般赋值系统内存结束地址为某个值,如果注释掉,内存初始化失败。
串口打印
定义宏 LOSCFG_DRIVERS_UART_ARM_PL011,实现文件在 drivers\uart\src\arm_pl011。
自定义shell
DemoEntry 中初始化了 shell,动态注册 shell 必须在此函数之后。
1 | 注册: |
参考
安装:https://liteos.gitee.io/liteos_studio/#/install
qemu示例:https://juejin.cn/post/6906386181001314317