MiniRTOS简称MOS
学习并制作RTOS的成果,使用纯汇编打造基于Cortex-M0(亦可使用于M3、M4)内核的超轻量实时操作系统, 为了保证超轻量,只保留内核的必须功能,整个ROM占用将会控制在2KB以内,内核的RAM占用也会控制在128字节以内, 在此前提下会尽量完善内核稳定性及功能。
基于Keil 5编译器下Cortex-M0核心的THUMB模式,99%汇编(内核) + 1% C语言(main函数);
在Cortex-M0、M4模式下纯内核编译后占用 1.5K字节ROM+80字节RAM (基于HK32F0301M及AT32F425测得),足够轻量!
纯内核数据占用16字节+内核栈空间32字节+空闲任务栈空间32字节 = 80字节;
自定义任务功能:可选2、4或8个任务,每个任务数据占用16字节+自定义任务栈空间大小;
邮箱功能:每个任务数据中内嵌4字节邮箱供线程间通信;
互斥锁功能:7+1把互斥锁,0~6号锁供任务使用,7号锁内核堆内存分配专用;
堆内存管理功能:自定义堆内存大小;
CPU占用率统计功能:统计内核运行中所有任务的CPU占用率;
任务休眠功能:自定义1~65535毫秒任务休眠时长
优先级轮转功能:当前任务号 + 1为每次调度选取的最高优先级任务(如有),在尽可能少的代码行中实现避免互斥锁死锁功能;
最新版本:v0.8.0
下载示例,点击编译运行。
暂时只测试了航顺HK32F0301M(Cortex-M0 16KROM 4KRAM 48MHz)和雅特力AT32F425(Cortex-M4 64KROM 20KRAM 96MHz)MCU, 顺带提一下HK32F030M可以直接使用HK32F0301M代码运行。
利用Coremark每MHz得分作为比较参考,MiniRTOS与RT-Thread的得分相比,较RT-Thread性能下降1-(2.624/2.626)=0.0008即性能 下降万分之八(基于AT32F425测得),还有待优化空间,值得努力!
codeinmcu (项目发起人)
已知问题:
待完善功能:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。