前言
抽空研究对比了几款RTOS,如RT-Thread、FreeRTOS、LiteOS等,发现LiteOS也是相当不错的。
于是下载源码,查看文档,配置开发环境,开始LiteOS的学习之旅。
环境搭建
嵌入式软件的开发,需要配置软件、硬件开发环境,否则,单纯的看代码,不真机调试,很难理解、熟悉内核工作逻辑,甚至无法体会掌握内核的基本使用方法。
所以,搭建PC软件开发环境,准备开发板,真机调试。
目前LiteOS版本为:【LiteOS Kernel Version : 5.1.0】,支持的MCU型号不够齐全,STM32F103系列,目前支持【STM32F103ZE】系列。
开发IDE,Keil MDK5暂不支持,有基于VS Code的开发IDE:【HUAWEI-LiteOS-Studio】,编译环境为gcc交叉编译。
下载【HUAWEI-LiteOS-Studio】
下载地址:https://gitee.com/LiteOS/LiteOS_Studio/releases/V1.45.8
下载完后,点击安装到完成即可。
配置编译环境
安装完:HUAWEI-LiteOS-Studio后,编译工具没有下载,需要手动下载,下载方法可以看官方的文档。
这里主要是下载:
工程的搭建
打开HUAWEI-LiteOS-Studio,新建工程,我有【STM32F103VE】的开发板,所以,选择:STM32F103系列的BSP,注意STM32F103ZE与VE,只是引脚不同,Flash、SRAM等资源相差不多。这个BSP,理论上可以直接使用。
工程配置:gcc 编译路径默认不需要更改
烧写路径:
也就是生成的bin文件路径,一般为:\out\STM32F103_FIRE_Arbitrary\Huawei_LiteOS.bin
配置调试:
这里使用J-Link,注意J-Link 安装的版本过高,会对【国产】J-Link造成影响,我使用V4.90的J-Link驱动。
编译与下载:
上面配置正确,编译会成功,下载也会成功,注意:下载后程序不执行,需要复位一下开发板,或者手动重新上电。
LiteOS运行:
LiteOS,默认开启了Shell,类似于RT-Thread MSH,运行效果如下:
********Hello Huawei LiteOS********
LiteOS Kernel Version : 5.1.0
build data : Jun 12 2021 17:24:57
**********************************
OsAppInit
cpu 0 entering scheduler
Hello, welcome to liteos!
Hello, welcome to liteos demo!
Huawei LiteOS #
Huawei LiteOS #
Huawei LiteOS # help
*******************shell commands:*************************
date free help hwi memcheck swtmr systeminfo task
uname watch
Huawei LiteOS #
查看系统信息:
Huawei LiteOS # systeminfo
Module Used Total
--------------------------------
Task 5 12
Sem 0 20
Mutex 3 20
Queue 2 10
SwTmr 0 16
Huawei LiteOS # task
Name TaskEntryAddr TID Priority Status StackSize WaterLine StackPoint TopOfStack SemID EventMask MEMUSE
---- ------------- --- -------- -------- --------- ---------- ---------- ---------- ---------- --------- ------
Swt_Task 0x0800181d 0x0 0 Pend 0x320 0xd8 0x20003d0c 0x20003ac0 0xffffffff 0x0 0
IdleCore000 0x08002ff1 0x1 31 Ready 0x190 0x158 0x20003f74 0x20003e40 0xffffffff 0x0 0
LedTask 0x08007c55 0x3 5 Delay 0x320 0x78 0x200045bc 0x20004310 0xffffffff 0x0 0
SerialShellTask 0x08007721 0x4 9 Running 0x1000 0x594 0x200059c4 0x20004a90 0xffffffff 0xfff 1492
SerialEntryTask 0x08007321 0x5 9 Pend 0x600 0x490 0x20005fc4 0x20005aa0 0xffffffff 0x0 132
Huawei LiteOS # uname
Huawei LiteOS
Huawei LiteOS #
LED闪灯
通过查看,有一个LED闪灯的程序,但是驱动配置的LED控制引脚,与我开发板上的不一致,手动更改一下。
配置LED引脚后,编译、下载到开发板,发现,开发板的LED,正常的闪烁。
LiteOS的开发环境,基于 【HUAWEI-LiteOS-Studio】,成功搭建完成。
总结
国产RTOS的发展,离不开大家的努力,希望大家多多的使用,不断的完善,国产的RTOS,定能不断的健壮。
通过研究对比一些优秀的RTOS内核代码,是学习研究操作系统、RTOS的一个较好的路径。
嵌入式软件,需要摆脱【眼高手低】的毛病,代码是调试出来的,不是看出来的。