找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1852|回复: 0
打印 上一主题 下一主题
收起左侧

任务设计

[复制链接]
跳转到指定楼层
楼主
ID:60266 发表于 2014-8-19 22:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
任务设计技术设计任务函数,和相关的数据结构。
1.任务函数的结构
         在用户任务函数中,必须包含至少一次对操作系统服务函数的调用,否则比其优先级低的任务将无法得到运行的机会。
  • 单次执行的任务
创建后只执行一次,结束后自行删除。
用创建任务的方式启动任务

通常是鼓励任务,不和其他任务通信。只使用共享资源来获取信息和输出信息。

  • 周期性执行的任务


当任务执行的周期远大于系统时钟节拍时,任务执行周期的相对误差比较小。
当执行周期只有几个节拍时,相邻两次执行的间隔时间抖动不能忽视。
当任务执行周期只有一个时钟节拍时,可将任务的功能放到时钟节拍函数的钩子函数中去执行。
当执行周期小于一个时钟节拍或者不是时钟节拍的整倍数时,只能再用独立于操作系统的定时中断来触发。
  • 事件触发执行的任务
这类任务创建后,很快获得运行权。但任务实体代码执行需要等待某种事件的发生,在相关事件发生前被操作系统挂起。相关事件发生一次,该任务实体代码就执行一次。




等待另外一个任务(ISR)发出信息,取得这个信息前处于等待状态,当另一个任务(ISR)发出相关信息时(调用系统的提供的通信函数),os使该任务进入就绪态。
例子:
用信号量触发任务



用消息触发的任务:触发任务时需要传递参数




周期性任务也可以用这种任务函数来实现。定时中断负责按预定的时间间隔准确发出信号量,被关联的任务总是处于等待信号量的状态,每得到一次信号量就执行一次。
触发任务分为两类
A:   信号类。作用启动任务运行。
B:信息类。既启动任务又给任务提供原始资料和数据。
2. 任务优先级安排
优先级一共X-7个  前4个不能用,后3个不能用 用于升级与备份。
  • 优先级安排原则
中断关联性:与ISR有关联的任务应该安排尽可能高的优先级,以便及时处理异步事件,提高系统实时性。
紧迫性:对时间有严格要求,越紧迫优先级越高。
关键性:越关键优先级越高。
频繁性:越频繁周期越短,允许耽误的时间也越短,优先级越高。
快捷性:耗时越短优先级越高。
传递性:信息传递的上游任务优先级高于下游任务。
优先级安排时,最好要交叉开,这样增加新任务时就比较方便。5 7 9 11  13

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表