在CH307上运行harmonyos lite-m
openharmony liteos-m 是华为开发的,专为物联网设计的轻量级操作系统。具有内存小,低功耗,高性能的特点。代码结构简单,支持集成第三方库和选择部分组件,与其他的操作系统类似,liteos同样提供了硬件抽象层,因此可以很方便地进行硬件的适配。liteos-m 目前可以支持cortex m系列和risc-v系列的mcu运行。我们使用的CH307系列,沁恒已经为我们适配了liteos-m,因此我们可以非常方便地上手,stm系列会麻烦一点。
首先我们打开mounriver studio,创建一个新的项目,在os里选择harmonyos liteos-m
liteos-m说轻量其实也不轻量,要想很好地运行liteos 官方推荐的最低内存是64kb,因此对于103系列的mcu,内存只有32kb,需要对配置进行修改,会牺牲一些体验。307拥有128krom 64kbram 刚好满足官方的要求。
在完成项目创建后,我们可以创建两个任务来检查liteos的运行情况。
代码里,我们创建的两个任务的函数用于输出信息,通过__getsp()可以获取当前任务的栈地址。
在完成任务功能后我们就需要完成函数的创建和启动了,方式类似于freertos,一个任务主要由函数名,函数指针,栈大小,优先级,参数组成,区别于freertos的任务句柄,在liteos里,一个任务的创建和信息获取主要由任务id得到。下面我们看看实际代码。
与freertos类似,同样创建结构体用于初始化任务,为任务分配栈大小,指定优先级·······,通过返回的状态码可以得知创建任务是否成功,最后,启动调度,这样任务就成功创建了。代码也已给出注释。
接下来我们编译一下看看
可以看见,编译完成后代码容量来到了67k,我们还没有编写其他功能,仅仅运行liteos就占用67kb的rom,因此rom比较小的mcu要谨慎选择,或者去掉不使用的组件,剪切出占用小的版本。
把代码烧录到mcu,我们看一下是否正常运行。
可以看出,任务在正常运行,下一步我们将在liteos上运行机智云的协议。
页:
[1]