收藏官网首页
查看: 3803|回复: 0

[经验分享] 在CH307上运行harmonyos lite-m

106

主题

107

帖子

7264

积分

论坛元老

Rank: 8Rank: 8

积分
7264
跳转到指定楼层
楼主
 楼主| 发表于 2023-9-2 20:45:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
免费使用STM32、APP自动代码生成工具
    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上运行机智云的协议。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表