华为也出LiteOS了,说实话爱国基因突然就上来了.移植非常简单,跟FreeRTOS没什么差别,SysTick更换成LiteOS的函数后,其实就完成了.移植难度应该叫轻松,(PS:大家不要问我ucos,那是商业系统,我不用.)
首先RAM占用较大是第一印象,因为默认配置用32K作为操作系统,实在是土豪得不行不行的.
RAM_SIZE_LEVEL_0 到 RAM_SIZE_LEVEL_2 可选,默认是最大的,也就是占用32K.引用官方的话是这样的.
- 对于嵌入式系统来说,内存都是比较宝贵的资源,因此一般的程序都会严格管理内存使用,LiteOS也一样。在LiteOS中系统资源使用g_ucMemStart[OS_SYS_MEM_SIZE]作为内存池,来管理任务、信号量等等资源的创建,总共是32K。而留给用户创建的task的的个数则是LOSCFG_BASE_CORE_TSK_LIMIT(15).
- LiteOS中的内存使用都是在los_config.h中进行配置的,需要使用多大的内存,可以根据实际的task个数、信号量、互斥锁、timer、消息队列、链表等内容的个数来决定的(根据各自的结构体大小以及个数计算),总的内存池的大小是OS_SYS_MEM_SIZE来定义的。
- LiteOS的中断机制,目前使用了2K的内存。
对于最低端的配置来说,HWI管理是不支持的,其他配置一般差在OS_SYS_MEM_SIZE,32K指的是这里32K,还没说处理器的其他开销的.跟FreeRTOS的TOTAL_HEAP_SIZE还是不一样,这个OS_SYS_MEM_SIZE包含东西比较多.比如LOS_MemAlloc这些函数也做了一定的重载.比如FATFS想使用一些内存,都可以从里面申请,这么看起来又感觉不是那么浪费内存啊.这一点如果FreeRTOS学一下就好了,这样很多内存可以重复用起来.
其他也没太多吐槽地方.
华为LiteOS优点:
1)重载的MemAlloc等函数,管理内存更高效安全.
2)支持环回链表.
3)有自测功能.调用LOS_Inspect_Entry就能测试出是否OK.
4)基本上一般RTOS的基础功能都集成了.
5)为IOT优化,底层强力优化了一些互联功能.
华为LiteOS缺点:
1)初始占用RAM比较大,8K/16K/32K起步.
2)SwTimer 准确度较低,定时1000毫秒下,有时候960毫秒就中断了,有时候1060毫秒才中断.
3)仅有2种内存管理方法.
4)重载的FATFS功能太简单.
5)只有中文文档,我们的华为要走出国门呢.