uC/OSii之任务划分
满足以下几个指标将会使软件设计比较简洁高效。
- 满足实时性指标
- 任务数目合理
- 简化软件系统
- 降低资源需求
- 设备依赖性划分:主要是对于一些输入输出设备进行划分,输入输出设备分为主动型和被动性。主动型有一个尽可能短的中断服务程序和一个与之关联的任务组成;被动性任务由于不能主动触发,必须有其他任务通过通信机制向该设备发出请求,激活该设备的相关任务。此类任务有键盘任务、显示任务、数据采集任务、控制输出任务和通信任务等。
- 发现关键功能,将其最关键部分剥离出来,用一个独立任务(或ISR)完成,剩余的部分用另外一个任务去实现,两者之间采用通信机制进行沟通。(关键任务是指:此任务对系统影响较大,如果少执行一次都会对系统造成重大影响)
- 发现紧迫任务,将其最紧迫部分剥离出来,用一个独立的高优先级的任务(或ISR)完成,剩余的部分用另外一个任务去实现,两者之间采用通信机制进行沟通。(紧迫性任务是指:此任务必须在规定时间内得到运权,并在规定时间之内执行完毕)
- 对于又关健又紧迫的功能,按紧迫功能处理。
- 将耗时较多的数据处理功能划分出来,封装为低优先级任务。(例如各种数据处理单元)
- 将关系密切的若干功能组合为一个任务,达到功能聚合的效果,省去任务之间负责的通行数据。
- 将相同事件触发的若干功能组合成为一个任务,从而免除事件分方法机制。
- 将若干周期相同的功能组合成为一个任务,避免一个时间事件触发几个任务,免除时间事件分发机制。
- 将若干按固定顺序执行的功能组合为一个任务,从而免除同步接力通信的麻烦。
uC/OSii之任务划分的更多相关文章
- uC/OS-II 内存管理
UC/OS-II 内存管理 1. 简介 uC/OS-II 不使用ANSI编译器的malloc(), free(),因为内存碎片,很可能获取不到一块连续的内存, 这在嵌入式系统中是很危险的.同时 ...
- uC/OS-II中includes块
/*************************************************************************************************** ...
- uC/OS-II实现TEST.MAK块
################################################################################ ...
- uC/OS-II全局变量定义
/*************************************************************************************************** ...
- uC/OS-II测试(TEST)块
/*************************************************************************************************** ...
- uC/OS-II时间(OS_time)块
/*************************************************************************************************** ...
- uC/OS-II信号(OS_sem)块
/*************************************************************************************************** ...
- uC/OS-II任务(OS_task)块
/*************************************************************************************************** ...
- uC/OS-II队列(OS_q)块
/*************************************************************************************************** ...
随机推荐
- html 文本溢出显示省略号 .....
- Queue Sequence HDU - 4441
码力不行啊... 错误记录: 171行后面对find2的使用错误,原来写的是p=find2(rt,p1),然后再加上一句能过样例但很假的特判 事实上,现在是要寻找最大的j,使得d2[1..j-1]=p ...
- Pursuit For Artifacts CodeForces - 652E
https://vjudge.net/problem/CodeForces-652E 边双啊,就是点双那个tarjan里面,如果low[v]==dfn[v](等同于low[v]>dfn[u]), ...
- scau 1144 数星星 bit + 扫描线的思想
这题如果用二维树状数组,则会直接爆内存. 那么可以运用扫描线的思路. 就是,它同时被x和y限制了,那么可以在查询的时候,确保x先满足了,(把x按小到大排序) 然后就相当于是关于y的一个一维bit了, ...
- Spring Boot整合Spring Batch
引言 Spring Batch是处理大量数据操作的一个框架,主要用来读取大量数据,然后进行一定的处理后输出指定的形式.比如我们可以将csv文件中的数据(数据量几百万甚至几千万都是没问题的)批处理插入保 ...
- iOS 蒲公英第三方打包平台
http://www.pgyer.com/doc/view/ios_install_failed
- [Tunny]Git常用命令与入门
[黄映焜/Tunny,20140709] Git 仓库就是那个.git 目录,其中存放的是我们所提交的文档索引内容,Git 可基于文档索引内容对其所管理的文档进行内容追踪,从而实现文档的版本控制..g ...
- 46 Simple Python Exercises-Higher order functions and list comprehensions
26. Using the higher order function reduce(), write a function max_in_list() that takes a list of nu ...
- 在Apache服务器中禁用option
在apache禁止 http OPTIONS方法. apache disable http OPTIONS method 2013-04-17 09:27 4050人阅读 评论(1) 收藏 举报 分 ...
- dzzoffice网盘应用有着最强大的团队、企业私有网盘功能,并且全开源无功能限制。
企业,团队多人使用dzzoffice的网盘应用,灵活并且功能强大. 支持个人网盘,机构部门,群组,并可根据使用情况开启关闭.例如可只开启群组功能. 可通过后缀,标签自定义类型进行快捷筛选 全面 ...