对很多只具有MCU51,Cortex基础的网友来说,学习RTOS是一件痛苦的事情,以uCOS为例,博主以前看过2遍,虽然有些概念,但因为涉及内容较多,理解不深,加上没做项目,过段时间就忘记了。这次为了做msPLC系统:一种网络化PLC,需要解决网络通讯,特意引入RTOS实现任务分离,所以把目前资料最为广泛的uCOS与博主自己设计的“实用单片机系统MS5”结合起来,uCOS具备RTOS的多任务,并且资料丰富,MS5博主自己开发的,最为熟悉,并且在单任务下代码简洁,功能齐全,尤其是对时间分割管理、消息机制、界面设计上,都有一定的模式,所以可以理解为基于MS5下,把单任务变成多任务处理,比较完美的结合。
uCOS可以认为是比较标准的一种RTOS,就RTOS来说,它不算复杂,但对于绝大部分只有单任务设计经验的嵌入式人员,已经足够复杂,主要有几点原因:
1、刚接触RTOS思想,对很多名词,功能、变量都不熟悉,这些一多就混淆了
2、文件结构、头文件定义复杂,条件编译、函数指针、结构体过多
3、外围函数过多,任务核心不突出
基于以上三点,本人以普通嵌入式人员的思维,做以下几点精简:
1、去掉一般项目不常用的函数,比如信号量事件(SEM)、开关量事件(MUX)、标记事件(FLAG)、内存管理(MEM),只保留消息邮箱(MBox)和消息队列(MQ)。
2、精简头文件,按常规写法修改,去掉不必要的条件编译
3、去掉统计任务(StatTask)和空闲任务(IdleTask),系统内部精简掉相关的变量,加入MS5,作为它的IdleTask,设置为最低优先级。
4、加入MBox和MQ例子,让其可以在Keil的Debug的UART1窗口下直接调试模拟。
初学者基于精简版本的uCOS,对照书本,学起来应该更容易,起码不会有强烈的排斥心里,在理解了uCOS内核后,再看完整的源码,就非常容易。
msOS今后将基于MS5为基础,引入其他免费公开的RTOS的一些优点,比如FreeRTOS和RT-Thread,形成自己的风格,避免版权,主要超工业自动化方向进化,专注于工业自动化领域。
附件中uCOS.rar为精简后的uCOSII
msOS为基于MS5结合精简后的uCOS的msOS
用户1186605 2014-6-24 11:39
好样的,有机会做种图形语言,像使用集成块一样,可能比较适合中国人,并且容易上手点
凤舞天 2014-6-23 21:48
fstffs_246664150 2014-6-23 15:48
用户1587220 2014-6-10 11:49
用户20199 2014-3-15 22:51
用户1692374 2013-9-13 07:14
用户1498040 2013-8-20 13:16
用户1681532 2013-2-19 21:22
用户1001843 2013-1-28 16:14
dwwzl 2013-1-26 08:26