uC/OS-III任务间通信的研究

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:weiwen1982
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:uC/OS-III是Micrium公司于2011年8月1日发布的占先式硬实时系统,uC/OS-III任务间的通信可以通过全局变量、信号量、任务内建消息队列、外部消息队列、事件标志组实现。
  关键词:uC/OS-III;uC/OS-III任务间通信;嵌入式系统
  中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)02-0306-03
  Communication between uC/OS-III ’s tasks
  QU Huan-yu,CHEN Li-ping,WANG Ji-xin
  (School of Mathematics,Physics and Informaiton Engineering ,Jiaxing University,Jiaxing 314001, China)
  Abstract: uC/OS-III is a preemptive real-time system published by Micrium at August 1,2011. uC/OS-III’s inter-tasks communication through global variables,semaphores,task built-in message queues,external message queues,event flags group.
  Key words: uC/OS-III;uC/OS-III inter-task communication;embedded system
  这几年年来,数字化技术飞速发展,嵌入式产品应用在我们生活中的各个方面。而操作系统作为嵌入式产品的核心,起着越来越不可或缺的作用。嵌入式产品的实时性、容错能力等关键因素很大程度都决定于嵌入式操作系统的性能。本文主要研究了最近发布的硬实时系统uC/OS-III及其任务间的通信方式。
  uC/OS-III任务间的通信方式相对于其它实时系统有较大的改变。尤其是任务内建消息队列后,中断程序可以直接发送消息给任务而不通过消息队列,这在一些采集信号频繁的应用中能大大提高其实时处理能力,从而提高整个系统的效率。
   1内核对象的结构分析
  1.1信号量
  typedef struct os_sem OS_SEN;(1)
  struct os_sem{
  OS_OBJ_TYPEType;(2)
  CPU_CHAR*NamePtr;(3)
  OS_PEND_LISTPendList;(4)
  OS_SEM_CTR Ctr;(5)
  CPU_TSTS; };(6)
  struct OS_PEND_LIST{
  OS_PEND_DATA*HeadPtr;
  OS_PEND_DATA*TailPtr;
  OS_OBJ_QTY NbrEntries;};
  在uC/OS-III中,所有的结构体都会有特定的数据类型。
  信号量结构体中的第一个变量是"Type"域,表明该内核对象是一个信号量,从而保证通过引用调用信号量的函数也能够识别所传入的参数是信号量的地址而非其他。
  信号量被赋予一个用户自定义的名字,便于调试。
  若有多个任务等待该信号量,这些任务就会被放入挂起队列中。OS_PEND_LIST是一个结构体,它控制挂起队列,其内部的三个变量分别指向挂起队列的头部和尾部,以及挂起队列的长度。
  信号量计数值,定义为该信号量可以被访问的次数。
  信号量中包含了一个时间戳变量,存储了上一次信号量被提及时的时间戳。
  用户代码不能直接访问信号量结构体,必须通过uC/OS-III所定义的API,否则会导致一些数据的丢失。
   1.2消息及消息队列
  
  图2外部消息队列及任务内建消息队列
  置位OS_CFG.H中的OS_CFG_Q_EN开启消息队列服务,如果多个任务等待同一个消息队列中的消息,则可创建一个OS_Q,发送消息到该OS_Q中。uC/OS-III还可以广播消息给所有在消息队列中等待的任务。
  消息队列是FIFO模式,也可以设置为LIFO模式,若任务或ISR(中断服务程序)发送紧急消息给另一个任务时,LIFO模式是非常高效的,在这种情况下,该紧急消息将绕过消息队列中的其他消息。
  当一个消息被发送到消息队列时,等待该消息的高优先级任务首先接收到这个消息。
  
  图4通过事件标志组任务间的通信
  事件标志组的位宽可以在OS_TYPE.H中配置,可以是8位,16位或32位,事件标志组必须在创建后使用。任务或ISR可以提交标志,然而,只有任务可以将在事件标志组中等待的其它任务删除,取消等待,只有任务才能让任务在事件标志组中等待。任务可以等待事件标志组中的任意个位被设置。等待可以以时基为单位被设置期限。
   2结束语
  uC/OS-III任务间的通信可以通过全局变量、信号量、任务内建消息队列、外部消息队列、事件标志组实现。全局变量用于共享一些对数据安全性不高的通用数据,信号量用于任务间共享一些被限制的资源,任务内建消息队列一般用于接收少量消息(如中断程序发送过来的消息)、外部消息队列主要面向于多个任务共同等待的消息、事件标志组则用于多个任务间的同步。
  参考文献:
  [1] Micrium Micrium-uCOS-III-UserManual [M] .R
其他文献
摘要:《伤心咖啡馆之歌》这部著作里洋溢着众多欢乐因素,“做恶作剧的人是狂欢化的具化体现”。透过巴赫金狂欢概念,来解析这这部作品中狂欢的特点与主人公李蒙表哥这个恶作剧人物的性格,狂欢化与恶作剧者的话语摆脱了作品里村镇原本存在的阶级存在,是现代主义对村镇中的以往爱情与生存含义给出的幽默化反抗。  关键词:《伤心咖啡馆之歌》 狂欢化 人物塑造  引言  美国当代女性作家卡森·麦卡勒斯17岁时到纽约哥伦比
摘要:在信息技术高速发展的知识经济时代,EDI技术在航运市场的应用不但得到了肯定,而且已经形成了全球性的EDI网络。该文主要分析数据仓库系统的结构和建立,其次对基于EDI信息的集装箱运输市场系统进行分析。目的在于对于EDI技术如何进一步加工提炼信息增值服务,为众多港航EDI用户的日常运作提供更多的信息支持。  关键词:EDI技术;数据仓库系统;市场分析系统  中图分类号:TP311文献标识码:A文
摘要:多线程技术是提高程序并发性和效率的重要手段,在网络应用、数据库应用软件、因特网以及嵌入式系统的开发中得到广泛的应用。深入分析多线程及其同步机制、死锁问题,并将多线程技术运用到Java ME开发中的图像平滑移动、低层界面设计、无线消息接收、竞技游戏、移动电子商务开发实践中,并分析开发中会出现的死锁问题,对开发高效率的Java ME应用程序具有重要意义。  关键词:线程;同步;死锁;Java M
摘要:该文深入分析了DSP汇编语言软件的测试难点,给出DSP汇编语言软件的测试策略,对DSP汇编语言软件测试具有重要的应用意义。   关键词:DSP;汇编语言;测试  中图分类号:TP313文献标识码:A文章编号:1009-3044(2008)23-963-02  DSP Assembly Language Software Testing Method   HU Qing-xia, LIU Qi
摘要:应用系统整体性能欠佳,可能导致系统在大业务量时出现功能、效率和安全性问题。现代的信息系统中新型软件架构层出不穷,软硬件和网络通讯之间的相互关联作用日益复杂,加大了系统性能瓶颈查找的难度。探讨如何通过多智能代理技术等方法,截取、分析和回放网络数据流来评价软件系统的性能。  关键词:性能测试;网络数据流分析;多智能代理   中图分类号:TP311文献标识码:A文章编号:1009-3044(200
摘要:中职计算机专业课程的教学是一项非常复杂的活动,其有效性的提高涉及到教学过程中的众多因素。文章以计算机专业课《计算机组装与维修》课程教学为例,探讨教师如何执行有效教学策略,优化地组织实施教学,从而实现既定的教学目标。  关键词:有效教学、计算机专业课、计算机组装与维修、中职教育  中图分类号:G642文献标识码:A文章编号:1009-3044(2012)09-2165-04  Research
摘要:由于学生用户数量大,使用Serv-U 提供的管理软件创建大量学生账户工作量巨大。该文介绍了如何将Serv-U的账户信息保存ODBC数据库中。论文详细讨论了数据库结构的设计、相关参数的设置及大批量账号管理程序的实现。  关键词:Serv-U;数据库;账号管理;网络存储  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)33-1347-02  File Network
摘要:随着3G时代来临和移动通讯技术的迅速发展,基于3G通信技术的移动GIS的开发和应用已经成为重点关注的焦点。该文首先介绍了Windows Mobile移动通信设备操作系统,然后分析了WIMAX通信技术的特点,最后一个实例阐述了基于WIMAX技术的移动GIS的开发。  关键词:Windows Mobile;移动GIS;WIMAX  中图分类号:TN929文献标识码:A文章编号:1009-3044
李红梅  四川省米易中學高级美术教师,四川省中小学美术创作研究协会会员,攀枝花市书法家协会会员,米易县美术家协会副主席。
摘要:该文采用以LPC2210微处理器的嵌入式系统作为硬件平台。深入分析了嵌入式实时操作系统UC/OS-Ⅱ内核。实现了在ARM7处理器上的操作系统移植,并以UC/OS-Ⅱ实时内核作为软件开发平台实现了基于C/S结构的远程监控系统。  关键词:嵌入式操作系统;ARM7;UC/OS-Ⅱ;移植  中图分类号:TP216 文献标识码:A 文章编号:1009-3044(2010)31-8912-02