• 价格指数网会员
  • 华强电子网会员
会员登录关闭

  • 用户名:
  • 密   码:
  • 华强电子网会员在此登录
  • 如果不是会员,请联系我们申请开通。
关闭

凤舞天的专栏

    对很多只具有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,形成自己的风格,避免版权,主要超工业自动化方向进化,专注于工业自动化领域。
  • 阅读(41759)  |   评论(10)  |   推荐(134)
网友评论
头像
  • 匿名看了一下,不过如此,参杂了一点ucos的一堆东西,那水平,也敢叫OS,作者还打算出书去了,太可笑了吧。
  • 2013/8/29 23:02:47回复
  • 头像
  • 匿名这也叫OS?太过了点吧。忽悠刚毕业的玩51单片机的还差不多。。。
  • 2013/8/5 2:41:30回复
  • 头像
  • 匿名看不懂
  • 2013/1/24 9:46:10回复
  • 头像
  • 匿名支持
  • 2013/1/24 9:45:27回复
  • 头像
  • 匿名说得好
  • 2013/1/24 9:45:08回复
  • 头像
  • 匿名
  • 2013/1/24 9:41:18回复
  • 头像
  • 匿名不错
  • 2013/1/21 11:04:08回复
  • 头像
  • 匿名看看
  • 2013/1/21 11:03:52回复
  • 头像
  • 匿名板凳
  • 2013/1/21 11:03:37回复
  • 头像
  • 匿名沙发
  • 2013/1/21 11:03:14回复
  • 发表评论(已有10条评论)
    看不清,换一张
    关闭

    积分抽奖

    您的当前积分分。

    写评论拿积分,积分抽奖最高可中iPhone!

    立即抽奖 >>