任务的划分与封装

关键任务的划分处理

对于某些对于系统的正常运作至关重要,少执行一次会对系统产生较大影响的功能,我们倾向于将它从原有任务中剥离出来,称为关键任务,用一个独立任务或者ISR(如外部中断)执行,由于关键任务的核心地位,关键任务一般需要与其他任务进行通信,而一般情况下,我们会创建一个单独的消息分发任务,由外部中断与消息分发任务通信,再由消息分发任务与其他任务通信,注意消息分发任务的优先级要高于所有操作任务,而对于uCOSii,消息发送函数OSMboxPost(),具有广播功能,发送一条消息就可以使所有等待该消息的任务进入就绪态

如采用单独创建关键任务的方法,必须确保关键任务由足够高的优先级和查询频率

紧迫任务的划分处理

紧迫任务具有很高的实时性要求,由于大多数紧迫任务是由异步事件触发的,最优的手段依旧是将其安排在ISR里,注意对于紧迫任务,要尽可能精简,将 “不那么紧迫” 的部分剥离另外封装

对于又关键又紧迫的任务,按紧迫任务处理

数据处理任务的划分处理

数据处理任务一般是用户应用程序中耗时最多的部分,对于为不同功能服务的单元,应将这些单元划分包装成不同的任务,对于耗时较多的任务,通常安排较低的优先级

功能聚合任务的划分处理

对于关系密切的若干功能,何以合成一个任务

触发条件相同的任务划分处理

对于若干功能又相同事件触发的任务,可以将他们合成一个任务避免冲突

顺序操作任务之间没有并发性,合成一个任务

不好意思水了一篇

【RTOS】《基于嵌入式实时操作系统的程序设计技术》——任务的划分与封装的更多相关文章

  1. 基于嵌入式操作系统VxWorks的多任务并发程序设计(1)――基本概念

    1引言 嵌入式系统定义义为:嵌入到对象体系中的专用计算机系统."嵌入性"."专用性"与"计算机系统"是嵌入式统的三个基本要素,对象系统则是指 ...

  2. 嵌入式实时程序设计中C/C++代码的优化

    1 引言 计算机技术和信息技术的高速发展的今天,计算机和计算机技术大量应用在人们的日常生活中,嵌入式计算机也得到了广泛的应用.嵌入式计算机是指完成一种或多种特定功能的计算机系统,是软硬件的紧密结合体. ...

  3. 基于嵌入式Linux的千兆以太网卡驱动程序设计及测试

    一. 引言 千兆以太网是一种具有高带宽和高响应的新网络技术,相关协议遵循IEEE 802.3规范标准.采用和10M以太网相似的帧格式.网络协议和布线系统,基于光纤和短距离同轴电缆的物理层介质,更适用于 ...

  4. 基于HTTP协议之WEB消息实时推送技术原理及实现

    很早就想写一些关于网页消息实时推送技术方面的文章,但是由于最近实在忙,没有时间去写文章.本文主要讲解基于 HTTP1.1 协议的 WEB 推送的技术原理及实现.本人曾经在工作的时候也有做过一些用到网页 ...

  5. xenomai内核解析之嵌入式实时linux概述

    Linux系统作为一个GPOS(通用操作系统)发展至今已经非常成熟可靠了,并且由于遵循GPL协议,开放所有系统源代码,非常易于裁剪.更重要的是,与其他开源的GPOS或RTOS相比,Linux系统支持多 ...

  6. Vxworks、QNX、Xenomai、Intime、Sylixos、Ucos等实时操作系统的性能特点

    Vxworks.QNX.Xenomai.Intime.Sylixos.Ucos等实时操作系统的性能特点 VxWorks操作系统 VxWorks 操作系统是美国WindRiver公司于1983年设计开发 ...

  7. 嵌入式实时操作系统VxWorks入门――开发环境构建[转]

    VxWorks 操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),它以其良好的可靠性和卓越的实时性被广泛地应用在通 信.军事.航空.航天等高精尖技术及实时性 ...

  8. (转)基于即时通信和LBS技术的位置感知服务(二):XMPP协议总结以及开源解决方案

    在<基于即时通信和LBS技术的位置感知服务(一):提出问题及解决方案>一文中,提到尝试使用XMPP协议来实现即时通信.本文将对XMPP协议框架以及相关的C/S架构进行介绍,协议的底层实现不 ...

  9. 【转】【SSE】基于SSE指令集的程序设计简介

    基于SSE指令集的程序设计简介 作者:Alex Farber 出处:http://www.codeproject.com/cpp/sseintro.asp SSE技术简介 Intel公司的单指令多数据 ...

  10. 嵌入式实时操作系统μCOS原理与实践任务控制与时间的解析

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

随机推荐

  1. yagmail 邮件模块

    安装 yagmail 安装yagmail:https://coding.net/s/01e2c2fe-82c0-4e05-a31b-f3e9e2dbc43a 下载完成之后,cmd 切换到文件目录下,执 ...

  2. flink 1.10.0源码编译

    1.安装git yum -y install git 2.安装maven 安装了3.3以下低版本的maven会有提示升级,这里安装3.6.3 wget https://mirrors.tuna.tsi ...

  3. CentOS 7安装配置vsftp并搭建FTP(一)

    vsftp-VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件.关于这个软件的详细信息 大家可以自行百度. 以上自己安装vsftp系统环境 二.查看自己的服务器是否安装了vsftp ...

  4. 用requests-html和SelectorGadget轻松精准抓取网页数据

    我们在抓取网页数据时,最常採用Python的requests搭配BeautifulSoup的模式来完成.然而,requests-html整合了上述2个套件,又添加了新的功能,或许是抓取网页数据值得考虑 ...

  5. mongodb-命令小结

    小白暂时在这里记录些涉及到的 在某条记录添加一个字段: 先查询_id: db.subscriptions.find({"channel":"parking.notify. ...

  6. linux环境"ModuleNotFoundError: No module named 'Cryptodome'"

    linux环境"ModuleNotFoundError: No module named 'Cryptodome'" pip3 uninstall pycryptodome pip ...

  7. Python 常见报错类型整理(一)

    很多初学者会遇到很多奇奇怪怪的报错信息,在这里,我为大家已经准备好一部分报错信息的分析以及解决办法. 一.TypeError:类型错误,对象用来表示值的类型非预期类型时发生的错误 错误例子: age= ...

  8. 调度平台&定时任务

    一.介绍: 1.调度平台能够定时 自动调用我们的脚本或程序,如每周.每天.每隔几小时等: 2.jenkins也可以算一种调度平台 但不是特别好,为了统一化管理.调度还是用专门的任务调度平台比较好 为什 ...

  9. win10输入法微软拼音被禁用

    远程桌面到win10系统后,再次回到被远程的win10,会发现输入法被禁用,无法输入汉字无法切换输入法只能使用英文输入 方法1 可以把相关的应用程序关闭后重新打开(不实用) 方法2 任务计划,micr ...

  10. pySpark RDD基本用法

    pySpark RDD基本用法 RDD的全称是:Resilient Distributed Dataset (弹性分布式数据集),它有几个关键的特性: RDD是只读的,表示它的不可变性. 可以并行的操 ...