首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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

2.内部任务构造 系统内部任务可以分为:①周期性任务--实时内核基于固定周期调度的任务;②异步任务--非周期或事件驱动的任务,内核根据需要进行调度,用于处理系统内部产生的事件;③控制对象--为状态机创建的控制任务,用于实现状态转换;④用户接口⑤--对应于用户任务,在用户驱动的系统中,用户任务是具有高优先级。 在嵌入式实时多任务系统中,大部分任务是非周期或事件驱动的异步任务,其函数形式如下: Void Task_aperiodic () { While (true){ Wait on an async data structure; Process input; Process output; } } 在异步任务中,驱动任务的异步数据是由实时内核提供的任务间通信数据。内核为应用程序提供信号量、消息队列、消息邮箱、插口或管道等结构,进行事件管理和任务间通信。设计这些异步任务时采用合适的数据结构、正确定义数据能够节省宝贵的调试时间,而且任务处理的函数不能太多,过于复杂,否则会增加调试的难度。 3.任务合并 利用任务的共同特征进行适当的任务合并,可以简化系统任务模型、减小系统复杂度、消除某些任务的切换开销从而减少系统总体开销。任务合并可分为:①根据时间一致合并,将同一事件激活的优先级相同的函数合并在1个任务中;②根据控制一致合并,③根据函数一致合并,将几个使用相同数据的函数合并,使原来共享的数据成为任务内的局部数据,从而减少互斥。 结束语 目前有许多厂商提供面向嵌入式应用领域的实时操作系统(RTOS),提供实时内核、输入/输出管理器、窗口系统、文件系统、网络、语言接口库、调试器和交叉平台编译器的软件包。其中实时内核为嵌入式多任务程序提供最基本和最重要的功能。本文从利用实时内核开发多任务应用程序的角度,对实时内核和任务进行介绍,提出合理构造任务的方法。可以看到,利用实时内核提供的服务,采用正确的开发方法,可以增加嵌入式实时多任务系统的功能,降低开发方法,可以增加嵌入式实时多任务系统的功能,降低开发难度。
返回列表