一、华为LiteOS
Huawei LiteOS 是华为公司针对物联网领域推出的面向万物感知、互联、智能的轻量级
操作系统,为终端厂商开发人员提供“一站式”完整软件开发平台,快速接入云,有效降
低开发门槛、缩短开发周期。于 2012 年为支持华为终端产品而开发的嵌入式操作系统;在
2014 年就已经在华为 Mate 系列、P 系列、荣耀系列手机、可穿戴产品上批量应用;在
2016 年 9 月就发布 Huawei LiteOS 开源版本,Kernel 源代码开源 ,经过多年的发展,现在
已经发布了 V2.1 版本,并且在 2018 年 9 月发布了 LiteOS IDE 开发工具 LiteOS Studio V1.0。
二、移植参考
(1)、官网移植教程
(2)、野火电子参考书
三、注意事项
(1)、gd32f30x.h文件中“typedef enum {FALSE = 0, TRUE = !FALSE} bool;”因与系统文件存在枚举重定义,需要注释或删除;
(2)、需要注意的是,LiteOS 提供了 3 套动态内存分配算法,位于 LiteOS\kernel\base\mem 目录下,分别是 bestfit、bestfit_little、tlsf 这三套
动态内存算法只需要添加其中一套就行了,对于资源有限的芯片,建议选择 bestfit_little,上面的示例也是添加了这一套动态分配算法;
另外 LiteOS\kernel\base\mem\membox 目录下是 LiteOS 提供的静态内存算法,与动态内存算法不冲突,需要添加;LiteOS\kernel\base\mem\common 目录的内容需要全部添加 四、结果
五、部分代码和附件
#include "liteos_task.h"
void bsp_init(void)
{
systick_config(120);
nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2);
led_init();
usart0_init(115200);
}
int main(void)
{
UINT32 uwret=LOS_OK;
bsp_init();
printf("Welcome to Huawei liteos\r\n");
uwret=LOS_KernelInit();
if(uwret!=LOS_OK)
{
printf("Core_Task is created faile! error code:%d\r\n",uwret);
return LOS_NOK;
}
uwret=AppTaskCreate();
if(uwret!=LOS_OK)
{
printf("App_Task is created faile! error code:%d\r\n",uwret);
return LOS_NOK;
}
LOS_Start();
while(1);
}
|