满足以下几个指标将会使软件设计比较简洁高效。

  • 满足实时性指标
  • 任务数目合理
  • 简化软件系统
  • 降低资源需求
  1. 设备依赖性划分:主要是对于一些输入输出设备进行划分,输入输出设备分为主动型和被动性。主动型有一个尽可能短的中断服务程序和一个与之关联的任务组成;被动性任务由于不能主动触发,必须有其他任务通过通信机制向该设备发出请求,激活该设备的相关任务。此类任务有键盘任务、显示任务、数据采集任务、控制输出任务和通信任务等。
  2. 发现关键功能,将其最关键部分剥离出来,用一个独立任务(或ISR)完成,剩余的部分用另外一个任务去实现,两者之间采用通信机制进行沟通。(关键任务是指:此任务对系统影响较大,如果少执行一次都会对系统造成重大影响)
  3. 发现紧迫任务,将其最紧迫部分剥离出来,用一个独立的高优先级的任务(或ISR)完成,剩余的部分用另外一个任务去实现,两者之间采用通信机制进行沟通。(紧迫性任务是指:此任务必须在规定时间内得到运权,并在规定时间之内执行完毕)
  4. 对于又关健又紧迫的功能,按紧迫功能处理。
  5. 将耗时较多的数据处理功能划分出来,封装为低优先级任务。(例如各种数据处理单元)
  6. 将关系密切的若干功能组合为一个任务,达到功能聚合的效果,省去任务之间负责的通行数据。
  7. 将相同事件触发的若干功能组合成为一个任务,从而免除事件分方法机制。
  8. 将若干周期相同的功能组合成为一个任务,避免一个时间事件触发几个任务,免除时间事件分发机制。
  9. 将若干按固定顺序执行的功能组合为一个任务,从而免除同步接力通信的麻烦。

uC/OSii之任务划分的更多相关文章

  1. uC/OS-II 内存管理

    UC/OS-II  内存管理 1. 简介    uC/OS-II 不使用ANSI编译器的malloc(), free(),因为内存碎片,很可能获取不到一块连续的内存, 这在嵌入式系统中是很危险的.同时 ...

  2. uC/OS-II中includes块

    /*************************************************************************************************** ...

  3. uC/OS-II实现TEST.MAK块

    ################################################################################                     ...

  4. uC/OS-II全局变量定义

    /*************************************************************************************************** ...

  5. uC/OS-II测试(TEST)块

    /*************************************************************************************************** ...

  6. uC/OS-II时间(OS_time)块

    /*************************************************************************************************** ...

  7. uC/OS-II信号(OS_sem)块

    /*************************************************************************************************** ...

  8. uC/OS-II任务(OS_task)块

    /*************************************************************************************************** ...

  9. uC/OS-II队列(OS_q)块

    /*************************************************************************************************** ...

随机推荐

  1. AtCoder Grand Contest 017 B

    B - Moderate Differences Time limit : 2sec / Memory limit : 256MB Score : 400 points Problem Stateme ...

  2. Chef and Graph Queries CodeChef - GERALD07

    https://vjudge.net/problem/CodeChef-GERALD07 可以用莫队+带撤销并查集做 错误记录: 1.调试时数组开小了,忘了改大就交了 2.88行和91行少了备份num ...

  3. PHP获取今天开始和结束的时间戳、每周开始结束的时间戳、每月开始结束的时间戳

    PHP获取今天内的时间 今天开始和结束的时间戳 $t = time(); $start = mktime(0,0,0,date("m",$t),date("d" ...

  4. 题解报告:hdu 4135 Co-prime(容斥定理入门)

    Problem Description Given a number N, you are asked to count the number of integers between A and B ...

  5. JSP与Servlet的编解码

    一.java web中涉及编解码的地方 (1)浏览器端向后台发起请求时:URL.Cookie.Parameter: (2)后台响应返回数据时:页面编码,数据库数据编码:

  6. python_函数嵌套(4)

    第1章 名称空间 1.1 定义 1.2 变量运行流程 1.3 临时名称空间 1.4 python三种名称空间 第2章 作用域 2.1 作用域分类 2.2 加载顺序 2.3 取值顺序 函数嵌套 2.4 ...

  7. ASP.NET Core Action 读取流

    以前mvc5 action可以直接使用 var stream = HttpContext.Current.Request.InputStream; 读取流,在Core中有所不同,可以使用以下方式读取 ...

  8. Windows下降权MYSQL和apche的运行级别(普通用户权限运行)

    1.MYSQL的降权运行  新建立一个用户比如mysql  net user mysql microsoft /add  net localgroup users mysql /del  不属于任何组 ...

  9. dangerouslySetHTML 和 style 属性

    这一节我们来补充两个之前没有提到的属性,但是在 React.js 组件开发中也非常常用,但是它们也很简单. dangerouslySetHTML 出于安全考虑的原因(XSS 攻击),在 React.j ...

  10. 用NPOI从Excel到DataTable

    NPOI功能强大,不用装Excel,就可以操作表格中数据----Excel.Sheet------>DataTable private IWorkbook workbook = null; pr ...