- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 基于ARM9和ucos-ii嵌入式操作系统设计
第五章 基于ARM9和uC/OS-II嵌入式系统设计 5.1 uC/OS-II 简介 u C / O S 是一种公开源代码、结构小巧、具有可剥夺实时内核的实时操作系统,商业应用需要付费。 用户只要有标准的ANSI 的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS-II嵌人到开发的产品中。μC/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点, 最小内核可编译至 2KB 。μC/OS-II 已经移植到了几乎所有知名的CPU 上。 严格地说uC/OS-II只是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全可以由用户自己根据需要分别实现。 uC/OS-II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。 5.2 uC/OS-II的内核结构 uC/OS_II应用软件 (用户程序) uC/OS-II与处理器无关代码 OS_CORE.C OS_SEM.C OS_FLAG.C OS_TASK.C OS_MBOX.C OS_TIME.C OS_MUTEX.C uCOS_II.C OS_Q.C uCOS_II.H uC/OS-II配置文件 (与应用程序有关) OS_CFG.H INCLUDES.H 移植uCOS-II与处理器类型有关代码 OS_CPU.H OS_CPU_A.ASM OS_CPU_C.C CPU 定时器 软件 ---------------------------------------------------------------------------------------------------------------------------------------- 硬件 图5.1 uCOS-II的文件结构与硬件关系 5.2.1 任务 在μC/OS-Ⅱ中,一个任务通常是一个无限的循环。一个任务看起来像其他c语言的函数一样,有函数返回类型,有形式参数变量,但任务是决不会返回的。故返回参数必须定义成void,例如: Void YourTask(void *pdata) { for(;;) { /*用户代码*/ /*调用μC/OS-II的某种系统服务:*/ /*用户代码*/ } } 事件驱动的编程模型:每个用户的任务都必须符合事件驱动的编程模型,即uC/OS-II的应用程序都必须是“事件驱动的编程模型”。 一个任务首先等待一个事件的发生,事件可以是系统中断发出的,也可以是其它任务发出的,又可以是任务自身等待的时间片。当一个事件发生了,任务再作相应处理,处理结束后又开始等待下一个事件的发生。 事件驱动模型也涵盖了中断驱动模型,uC/OS-II事件归根结底来自三个方面:(1)中断服务函数发送的事件(2)系统延时时间到所引起的(3)其它任务发送的事件。??? 其中“中断服务函数发送的事件”就是指每当有硬件中断发生,那么中断服务程序就会以事件的形式告诉任务,而等待该事件的最高优先级任务就会马上得以运行; “系统延时时间到所引起的”事件其实也是硬件中断导致的,那就是系统定时器中断。 而“其它任务发送的事件”则是由任务代码自身决定的,这是完全的“软事件”。不管“软事件”还是“硬事件”,反正引起uC/OS-II任务切换的原因就是“事件”,所以用户编写应用代码的时候一定要体现出“事件驱动的编程模型”。 5.2.2 任务状态 在任一给定的时刻,任务的状态一定是一下5种状态之一: 睡眠态(task dormat):任务驻留于程序空间(rom或ram)中,暂时没交给ucos-ii处理。 就绪态(task ready):任务一旦建立,这个任务就进入了就绪态。 运行态(task running):调用OSStart()可以启动多任务。OSStart()函数只能调用一次,一旦调用,系统将运行进入就绪态并且优先级最高的任务。 等待状态(task waiting):正在运行的任务,通过延迟函数或pend(挂起)相关函数后,将进入等待状态。 中断状态(ISR running):正在运行的任务是可以被中断的,除非该任务将中断关闭或者ucos-ii将中断关闭。 5.2.3 任务的调度 uCOS II提供最简单的实时内核任务调度,算法简单,因此也只支持优先级抢占任务调度,不支持时间片轮训调度算法,不支持优先级逆转。 为了使μC/OS-II能管理用户任务,用户必须在建立一个任务的时候,将任务的
您可能关注的文档
- 第二节二、小学儿童感觉的发展.ppt
- 第二节_果园土肥水管理.ppt
- 第二讲 矢量分析与场论基础.ppt
- 第二讲咳嗽与咳痰.ppt
- 第二讲 走进动物世界.ppt
- 第二课 多变的价格.ppt.ppt
- 第二课 金色的草地PPT精品课件.ppt
- 第二语言教学法 -自然法.ppt
- 第二讲市场经济.ppt
- 第二讲:学习23个声母.ppt
- 2025年氯系漂白助剂项目规划申请报告.docx
- 2025年vb程序设计试题及答案.doc
- 2025年党史知识竞赛试题及答案.doc
- 2025年秘密花园测试题及答案.doc
- 解析卷-苏科版九年级物理上册《机械能和内能》综合测评试卷(含答案详解版).docx
- 难点解析-苏科版九年级物理上册《机械能和内能》难点解析试题(含解析).docx
- 考点解析-苏科版九年级物理上册《机械能和内能》综合练习练习题(含答案详解).docx
- 考点解析苏科版九年级物理上册《机械能和内能》专题测评试卷(含答案详解版).docx
- 苏科版九年级物理上册《机械能和内能》定向攻克试题(含详解).docx
- 2025年河北省邢台市行政职业能力测验模拟试题及参考答案.docx
最近下载
- 欧洲EN50129-2018培训讲义.pdf VIP
- 基层糖尿病微血管疾病筛查与防治专家共识(2024).pptx VIP
- 清科-我国引导基金与区域及产业经济发展专题研究报告-36页.pdf VIP
- 新22J05 公用卫生间、住宅厨房及卫生间.docx VIP
- 陕09J05、陕09J06-1、陕09J06-2 卫生间、盥洗室及洗池、木门、塑钢门窗.docx VIP
- 统编版(2024)道德与法治七年级上册 第四单元 追求美好人生 单元测试(含答案).doc VIP
- 《跨境直播运营》课件——跨境直播的内容组织.pptx VIP
- 人工智能语音助手实施方案.docx VIP
- 2024精选衍纸教案节课.pptx VIP
- 陕09J06-2塑钢门窗-标准图集.docx VIP
文档评论(0)