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

[09-12 17:54:06]   来源:http://www.88dzw.com  单片机学习   阅读:8828

文章摘要:基于MSP430F149单片机的实时多任务操作系统 1 RTOS的基本概念 实时多任务操作系统(RTOS-Real Time Operating System)是根据操作系统的工作特性而言的。实时是指物理进程的真实时间。实时操作系统是指具有实时性,能支持实时控制系 统工作的操作系统。首要任务是调度一切可利用的资源完成实时控制任务,重要特点是要满足对时间的限制和要求。 实时操作系统中的任务(Task)有四种状

基于MSP430F149单片机的实时多任务操作系统,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com
基于MSP430F149单片机的实时多任务操作系统


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上的使用。

正是基于以上情况,笔者在应用MSP430过程中,编写了一个基于MSP430F149的RTOS,暂定名为M430/OS。它占用RAM量少、代码短小,稍加改动就可适用于大多数其它MSP430单片机。

在MSP430单片机系统上使用M430/OS,对系统有以下意义:

1) 实现软件设计的模块化。可将不同的功能模块编制成相应的任务,由操作系统按级别调用,不必为先执行哪个功能、后执行哪个功能而费神。

2) 更能合理、有效地利用CPU有限的资源。按任务的重要程度安排任务的级别,能够保证最重要的任务执行得最及时。

3) 大大降低系统故障率。低优先级的任务发生阻塞时,高优先级的的任务的执行不受影响。

3 M430/OS在MSP430F149上的实现

3.1 功能特点
  
M430/OS有以下特点:

1) 采用占先式内核,即高优先级的任务可以从低优先级任务"抢"回CPU控制权;

2) 每个任务都单独开辟一个任务栈;

3) 每个任务占十几到几百个字节的任务堆栈,任务栈的大小可以根据任务中现场数据、局部变量和嵌套调用的情况估算;

[1] [2] [3]  下一页


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习
分类导航
最新更新
热门排行