- 1、本文档共115页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
μC/OS-Ⅱ的任务管理的原理与实现方法 μC/OS-Ⅱ的9个核心任务管理函数 μC/OS-Ⅱ的9个用户任务管理函数。 3.1 核心任务管理 3.1.1 临界区的处理(Critical Sections) 什么是“宏定义” 简单地说,宏定义就是定义一种符号来代替另外一种符号。 特点: 宏定义只是在编译前做一个简单的替换,它不进行错误检查。要等到编译开始后,才能对替换的字符串进行错误检查。 宏定义又分为两类: 不带参数的宏定义,格式:#define 标识符 字符串 带参数的宏定义 , 格式: #define 标识符(参数) 字符串 宏定义的取消: 格式:#undef 标识符 例: #define PI 3.14 不带参数 #define S(R) PI*R*R 带参数 #define S1(R) PI*(R)*(R) 带参数 #undef PI 取消宏定义 # undef S(R) OS_CRITICAL_METHOD = 1 直接开关,优点:最简单;缺点:可能会破坏中断原来的状态 例如: #define OS_ENTER_CRITICAL() EA = 0 // 关中断 #define OS_EXIT_CRITICAL() EA = 1 // 开中断 关(原状态)→处理临界段代码→关(现在)→处理完毕→开 结果:中断被打开→原始状态被破坏 OS_CRITICAL_METHOD = 2 用堆栈保存中断开关状态 优点:保护了原始中断状态,缺点:必须使用汇编代码,如果某些编译器对嵌入汇编代码优化得不好将导致严重错误。 例如: #define OS_ENTER_CRITICAL() asm(“ PUSH PSW”) asm(“DI”) #define OS_EXIT_CRITICAL() asm(“POP PSW”) OS_CRITICAL_METHOD = 3 用局部变量保存中断开关状态 例如: OS_CPU_SR cpu_sr; #define ENTER_CRITICAL() cpu_sr = get_processor_psw(); Disable_interrupt(); #define OS_EXIT_CRITICAL set_processor_psw(cpu_sr); 3.1.2 任务的形式 void MyTask(void *ppdata) reentrant { *ppdata = *ppdata;// 使用一次形式参量,避免出现编译错误 用户代码; OSTaskDel(OS_PRIO_SELF); } μC/OS-Ⅱ可以管理多达64个任务,但目前版本的μC/OS-Ⅱ有两个任务已经被系统占用了。 必须给每个任务赋以不同的优先级,优先级可以从0到OS_LOWEST_PR10-2。建议保留8个优先级以备将来使用: 0、1、2、3、 OS_LOWEST_PRIO-3、OS_LOWEST_PRI0-2,OS_LOWEST_PRI0-1以及OS_LOWEST_PRI0。 优先级号越低,任务的优先级越高。 μC/OS-Ⅱ总是运行进入就绪态的优先级最高的任务。 目前版本的μC/OS-Ⅱ中,任务的优先级号就是任务编号(ID)。 优先级号(或任务的ID号)也被一些内核服务函数调用,如改变优先级函数OSTaskChangePrio(),以及任务删除函数OSTaskDel()。 为了使μC/OS-Ⅱ能管理用户任务,用户必须在建立一个任务的时候,将任务的起始地址与其它参数一起传给:OSTastCreat或OSTaskCreatExt()。 3.1.3 任务的状态 3.1.4 任务控制块(Task Control Blocks, OS_TCB) 任务控制块是一个数据结构,其功能如下: 一旦任务建立了,任务控制块OS_TCB将被赋值 ; 当任务的CPU使用权被剥夺时,μC/OS-Ⅱ用它来保存该任务的状态 ; 当任务重新得到CPU使用权时,任务控制块能确保任务从当时被中断的那一点丝毫不差地继续执行。 OS_TCB全部驻留在RAM中。 OS_TCB数据结构中的一些成员变量使用了条件编译语句定义,为的是便于用户裁剪不需要的功能,以减少对资源的需求。 文件OS_CFG.H定义了应用程序中最多任务数量(OS_MAX_TASKS),每个任务都有一个单独的任务控制块,所以最多任务数也是μC/OS-Ⅱ分配给用户程序任务控制块的最大数量。 最多任务数OS_MAX_TASKS不能
您可能关注的文档
- 秦兵马俑优秀ppt讲述.ppt
- 第8章可编程接口芯片详解.ppt
- 秦统一中国(1顺序)讲述.ppt
- 秦始皇陵兵马俑-演讲稿讲述.pptx
- 秦汉时期建讲述.ppt
- 秦岭盛夏自驾游总讲述.ppt
- 秩序来自规则教学用讲述.ppt
- 第8章庆典后勤准备详解.pptx
- 积分宝PPT讲述.ppt
- 秦晓飞系列-单片机原理及应用-第3章指令系统讲述.ppt
- 2025中国冶金地质总局所属在京单位高校毕业生招聘23人笔试参考题库附带答案详解.doc
- 2025年01月中国人民大学文学院公开招聘1人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2024黑龙江省农业投资集团有限公司权属企业市场化选聘10人笔试参考题库附带答案详解.pdf
- 2025汇明光电秋招提前批开启笔试参考题库附带答案详解.pdf
- 2024中国能建葛洲坝集团审计部公开招聘1人笔试参考题库附带答案详解.pdf
- 2024吉林省水工局集团竞聘上岗7人笔试参考题库附带答案详解.pdf
- 2024首发(河北)物流有限公司公开招聘工作人员笔试参考题库附带答案详解.pdf
- 2023国家电投海南公司所属单位社会招聘笔试参考题库附带答案详解.pdf
- 2024湖南怀化会同县供水有限责任公司招聘9人笔试参考题库附带答案详解.pdf
- 2025上海烟草机械有限责任公司招聘22人笔试参考题库附带答案详解.pdf
最近下载
- 2024新沂市中小学教师招聘考试题库及答案.docx VIP
- 新人教版三年级数学上册教学课件《因数中间有0的乘法》.pptx VIP
- 田家四季歌教案.doc VIP
- 《GB 27955-2020过氧化氢气体等离子体低温灭菌器卫生要求》(2025版)深度解析.pptx
- 高级碳排放监测员理论考试复习题库资料(含答案).pdf VIP
- 外科学(总论) 清创术 清创术.pptx VIP
- 《文献检索》课程教学大纲.pdf VIP
- 前置胎盘临床诊断与处理指南课件.ppt VIP
- 事业单位考试公共基础知识考试试题精选3000题.pdf VIP
- 人教版四年级上册数学《平行四边形》(说课课件).pptx VIP
文档评论(0)