浅谈UCOSIII任务管理

    UCOSIII是一个广泛应用于嵌入式设备的小型嵌入式实时操作系统,小巧而具备操作系统的特性,可以说是麻雀虽小五脏俱全。

    对于单核处理器,在任何时刻,都控制器只能处理一个任务。这样的特性明显是不能满足各种设备的需求的,必须用多线程才能设计出一个比较好的作品。为了使处理器能实现处理不同任务的能力,在硬件上,MCU引入了中断的方式,有多种中断方式,如定时器中断,串口中断,外部中断等。但仅仅依靠硬件的中断方式,处理起多任务来还是略显无力,使用软件方式实现多任务管理是一个比较好的方法。UCOSIII的任务管理做的就是这个事情。

    UCOSIII在UCOSII的基础上完善并增加了许多功能,如理论上支持无数量限制的任务,任务优先级允许相同,支持时间片轮调度等。

    要实现多任务管理,首先需要创建任务。UCOSIII提供任务创建的服务函数OSTaskCreate( ) ;而任务函数通常是一个无限循环型,入口参数是一个空型指针,使用时可以传入一定的数据结构,可以实现一个函数管理仅参数不同的任务。如串口的初始化。 需要注意的是,创建任务和删除任务都会给处理器带来一定的开销,嵌入式设备中应尽量减小这类代码,切勿创建任务,完成后删除,需要时再创建这样。实际上,UCOS中删除任务的服务函数并没有真正地删除一个任务,该任务还是存在于RAM区,只是UCOS使该被删除的任务无法获得CPU的使用权而已。

待续...

发布了54 篇原创文章 · 获赞 62 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/u013053268/article/details/52435693