资料介绍
嵌入式系统论文
微型抢占式多任务实时内核设计
摘要:介绍引入事件驱动观念的抢占式多任务微型实时内核——MicroStar的设计与实现;
提出基于事件的优先级这一新概念。
关键词:事件驱动 优先级 任务管理 消息 信号 同步
市面上有很多优秀的嵌入式实时操作系统(RTOS),但在中低端微控制器(MCU)上运行
性能良好的RTOS内核并不多。在高档机下,功能强大、运行极好的嵌入式实时操作系统
,移植到中低端机上时性能很可能大幅度下降。一个很重要的原因就是它的大部分功能
对中低档系统来说是不需要的,反而成为制约性能的累赘。中低档微控制器与高档机相
比,一方面,寻址能力有限,处理速度慢,在相同的实时性能要求下,对内核的代码效
率的要求更为严格;另一方面,中低档机完成的任务相对简单,减少了对内核的功能需
求,比如可以不需要内存管理。从嵌入式系统的共性来说,大多数情况下用户程序和系
统内核是紧密结合在一起的,运行时存储器容量消耗、任务的数量、执行时间和结果都
是可以预计的,这可进一步缩小对内核的功能需求。
事件驱动的观点认为,任务应该是被动地响应外界发生的各种事件,而不是主动地去
“查询”,浪费处理器时间。采用事件驱动编程的方法,不仅提高了运行效率,而且降低
了事件处理之间的耦合,使程序流程非常清晰,从而可大大提高开发效率。
充分考虑中低端微控制器的硬件特点和嵌入式系统软件的需求,引入“事件驱动”的观
念,笔者开发了一个微型的抢占式多任务RTOS内核——MicroStar。支持任务的动态创建、
删除、睡眠、挂起和恢复,提供消息(message)和信号(signal)两种任务间的通信方
案、完善的定时器服务和功能齐全的任务同步函数库。限于篇幅,着重论述几个与众不
同的设计思路和实现难点。
1 调度策略
1.1 基于事件的优先级
对内核的实时性能来说,调度策略是关键。