您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

利用实时内核开发嵌入式多任务程序

时间:2007-1-20栏目:电子通信论文

消息发送者和接收者异步访问。在这里用于驱动程序和任务之间的通信,为驱动程序进程和任务进程提供消息缓冲。设备驱动程序负责及时响应中断事件,并不关心接收任务的状态。为了简化接收任务的结构,减小系统延迟,这里将出错处理划分为独立的任务,分配不同的优先级。
利用实时内核开发嵌入式多任务程序
    2.内部任务构造

系统内部任务可以分为:①周期性任务--实时内核基于固定周期调度的任务;②异步任务--非周期或事件驱动的任务,内核根据需要进行调度,用于处理系统内部产生的事件;③控制对象--为状态机创建的控制任务,用于实现状态转换;④用户接口⑤--对应于用户任务,在用户驱动的系统中,用户任务是具有高优先级。

在嵌入式实时多任务系统中,大部分任务是非周期或事件驱动的异步任务,其函数形式如下:

Void Task_aperiodic ()

{

While (true){

Wait on an async data structure;

Process input;

Process output;

}

}

在异步任务中,驱动任务的异步数据是由实时内核提供的任务间通信数据。内核为应用程序提供信号量、消息队列、消息邮箱、插口或管道等结构,进行事件管理和任务间通信。设计这些异步任务时采用合适的数据结构、正确定义数据能够节省宝贵的调试时间,而且任务处理的函数不能太多,过于复杂,否则会增加调试的难度。

3.任务合并

利用任务的共同特征进行适当的任务合并,可以简化系统任务模型、减小系统复杂度、消除某些任务的切换开销从而减少系统总体开销。任务合并可分为:①根据时间一致合并,将同一事件激活的优先级相同的函数合并在1个任务中;②根据控制一致合并,③根据函数一致合并,将几个使用相同数据的函数合并,使原来共享的数据成为任务内的局部数据,从而减少互斥。

结束语

目前有许多厂商提供面向嵌入式应用领域的实时操作系统(RTOS),提供实时内核、输入/输出管理器、窗口系统、文件系统、网络、语言接口库、调试器和交叉平台编译器的软件包。其中实时内核为嵌入式多任务程序提供最基本和最重要的功能。本文从利用实时内核开发多任务应用程序的角度,对实时内核和任务进行介绍,提出合理构造任务的方法。可以看到,利用实时内核提供的服务,采用正确的开发方法,可以增加嵌入式实时多任务系统的功能,降低开发方法,可以增加嵌入式实时多任务系统的功能,降低开发难度。


上一页  [1] [2] [3] 

下页更精彩:1 2 3 4 下一页