打印本文 关闭窗口 | ||||
μC/OS-Ⅱ在应用系统中任务划分方法的研究来源于瑞达科技网 | ||||
作者:佚名 文章来源:不详 点击数 更新时间:2011/12/29 文章录入:瑞达 责任编辑:瑞达科技 | ||||
|
||||
开发基于μC/OS-Ⅱ的嵌入式应用系统,首先需针对目标硬件平台对μC/OS-Ⅱ进行移植。在详细分析总体需求的基础上,将系统功能合理地划分为多个不同任务实现。由此可见,在实现嵌入式应用系统的过程中,任务划分是十分重要的环节。划分任务是否合理有效不仅直接决定了μC/OS-Ⅱ的性能和执行效率,还间接影响着应用系统甚至整个项目的成败。 对于国内众多嵌入式方向的研究人员和爱好者,基于实时操作系统μC/OS-Ⅱ进行教学或者研发,大多侧重于μC/OS-Ⅱ在各种特定目标硬件平台上的移植和简单使用。而μC/OS-Ⅱ上的复杂系统开发特别是划分任务策略虽已引起诸多关注,但到目前为止却鲜有详细而系统的研究成果。本文在总结前人工作和实际开发经验的基础上,研究了μC/OS-Ⅱ任务划分的方法和原则,并结合实践给出基于MC9S12NE64硬件平台的应用实例。 1 μC/OS-Ⅱ的任务管理机制 在μC/OS-Ⅱ中,每个任务可以是一个典型的无限循环,都处在μC/OS-Ⅱ规定的一种任务状态。程序员把一个大地应用程序分成相对独立的多个任务来完成,大大提高了CPU的利用率,极大地方便了应用程序的设计和维护。而多任务系统则通过任务切换实现各个任务之间的调度运行。 从存储结构来看,任务由3个部分组成:任务的程序代码、任务堆栈和任务控制块(PCB)。其中,任务堆栈用来保存该任务运行时的工作环境;任务控制块用来保存该任务的一些属性;任务程序代码则描述了该任务的执行过程。μC/OS-Ⅱ可以管理多达64个任务,其中的空任务(IDLE)和统计任务(STATISTICS)为系统任务,其余都属于用户任务。μC/OS-Ⅱ规定其每个任务必须设置为不同且惟一的优先级(优先级的数值越小,则代表任务的优先级别越高),而μC/OS-Ⅱ内核会调度处于就绪状态优先级最高的任务进行处理,并分配CPU。就绪状态属于任务的5种状态之一,其余4种状态分别为:睡眠状态、运行状态、等待状态、中断服务状态。μC/OS-Ⅱ的任务总会处于这5种状态之一,并根据不同的条件在5种状态中进行切换,如图1所示。
|