新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > μC/OS-Ⅱ在应用系统中任务划分方法的研究

μC/OS-Ⅱ在应用系统中任务划分方法的研究

作者:时间:2012-08-21来源:网络收藏

在一些较复杂的嵌入式中,个别代码会包含繁琐的计算算法,运行时占用大量的CPU处理时间和资源,严重影响μⅡ系统的实时性。对于这样的,可将其按照不同的内部功能为多个模块,每个模块即为一个相对独立的小,相互之间通过任务通信机制协调工作。由于需要占用CPU较多的处理时间,这些任务几乎没有实时性要求,所以通常将其优先级设低,以确保强实时任务的正常运行。

例如:当前的μⅡ系统中有一任务在调度执行时会占用较长时间,导致其运行过程频繁被强实时任务打断,这样CPU就需要“牺牲”大量时间和空间用于保存被打断的任务现场,而整个系统的实时性就会大大降低,执行效率也大打折扣。该任务的描述如下:首先根据算法1处理数据X,其次利用算法2处理数据Y,最后将数据X和数据Y通过算法3得到数据Z。在这种情况下,应将不同的算法处理部分为独立的子任务,并根据执行顺序逐次递减任务优先级。由于缩短了单个任务的执行时间,任务的响应时间也随之变短,整个系统的实时性得到了提高。

3 应用实例

作者在参与开发的一个项目网络数据采集系统中使用了μⅡ进行多任务的管理。该项目基于Freescale公司1994年推出的微处理器MC9S12NE64,主要功能要求网络数据采集系统通过光敏传感器采集工厂生产设备的多个状态指示灯,以获取当前设备的工作状态信息,随后通过UDP包将信息发送至局域网中PC服务器处理。此外,技术人员还能够通过串行通信方式对采集系统进行测试和维护。该采集系统的主要任务及其优先级设定如表1所示。

生产设备状态信息采集及处理任务优先级最高,因为该任务属于强实时性任务,无法及时执行会使采集系统处于瘫痪状态。而同样属于实时任务的系统测试维护功能由于实时要求并不高,所以优先级次之。

A/D模块驱动程序、网络模块通信程序、串口通信程序和FIASH模块操作程序与各自硬件单元关系密切,故将它们划分为独立的硬件相关任务。

采集系统中耗时最多、处理最复杂的部分是局域网内的数据通信。由于受到芯片存储空间的限制,作者并没有移植现有源码公开的TCP/IP协议栈,取而代之的是自主研发了简易TCP/IP协议,并将该协议栈中每一层分割成为1个独立的任务存在。

4 结语

μC/OS-Ⅱ是一个公开源码、抢占式、多任务的嵌入式实时操作系统,自1992年面世以来,已应用于上百种产品。与一些商用嵌入式操作系统相比,它源代码结构清晰,易于移植和裁剪,具有很大的发展空间。本文在分析μC/OS-Ⅱ任务管理机制的基础上,对μC/OS-Ⅱ的任务划分进行了初步探究,阐述了一些任务划分的:“划分与硬件模块相关的任务”、“划分强实时性任务”、“分割耗时较多的任务”。最后,结合开发实践给出了基于μC/OS-Ⅱ的任务划分实例。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭