侵权投诉
订阅
纠错
加入自媒体

基于MSP430F149单片机的实时多任务操作系统

2013-11-08 15:31
FlappyBird
关注

  1 RTOS的基本概念

  实时多任务操作系统(RTOS-Real Time Operating System)是根据操作系统的工作特性而言的。实时是指物理进程的真实时间。实时操作系统是指具有实时性,能支持实时控制系 统工作的操作系统。首要任务是调度一切可利用的资源完成实时控制任务,重要特点是要满足对时间的限制和要求。

  实时操作系统中的任务(Task)有四种状态:运行(Executing),就绪(Ready),挂起(Suspended),休眠(Dormant)。

  运行:获得CPU控制权。

  就绪:进入任务等待队列。通过调度转为运行状态。

  挂起:任务发生阻塞,移出任务等待队列,等待系统实时事件的发生而唤醒。从而转为就 绪或运行。

  休眠:任务完成或错误等原因被清除的任务。也可以认为是系统中不存在了的任务。

  某一时刻,系统中只能有一个任务在运行状态。各任务按级别通过时间片分别获得对CPU的访问权。

  RTOS内核按照任务的调度机制可以分为两种:一种是占先式内核,一种是非占先式内核。

  占先式内核:当一个低优先级的任务正在运行时,一个高优先级的任务就绪,那么RTOS就会把低优先级的任务挂起,来运行高优先级的任务。等高优先级的任务执行了一个循环挂起之后,再回到低优先级任务的断点继续运行。也就是说,任务的优先级越高,响应起来越及时。

  非占先式内核:当一个低优先级的任务在运行时,一个高优先级的任务就绪,RTOS不会把CPU切换给高优先级的任务,必须等低优先级的任务执行了一个循环挂起之后,再由RTOS根据所有就绪任务的优先级判断将CPU切到哪个任务。

  绝大多数商业RTOS, 以及著名的开放源码的uC/OS-II操作系统,都采用的是占先式内核,它的优点是实时性要比非占先式内核高。

  在RTOS中,一般情况下,每个任务都一无限循环,每循环一次,任务挂起一段时间,以供调度程序把这段时间交给优先级更高的其它就绪任务,让其它任务运行(如图1)。当所有任务都挂起时,RTOS把任务切到空闲任务来执行。

  空闲任务是一个系统任务,它一般是一个空的循环,优先级最低,也从来不会挂起。

  2 在MSP430上使用RTOS的意义

  一般的观点认为,MSP430上使用RTOS是没有意义的。这是可以理解的,因为MSP430的硬件资源有限(以MSP430F149为例,只有2KRAM),任何商业操作系统都不可能移植到MSP430上。目前在MSP430上得到应用的RTOS,只有 uC/OS-II,但使用uC/OS-II 必须有昂贵的C编译器,这严重限制了其在MSP430上的使用。

1  2  3  4  下一页>  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号