01-嵌入式系统基础教程讲解.ppt

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 嵌入式系统基础 RT-Thread RT-Thread RTOS是中国的开源实时操作系统,由国内一些专业开发人员开发、维护。 实时内核,也是一套面向嵌入式系统的软件平台,覆盖了全抢占式的实时操作系统内核; 小巧而与底层具体实现无关的文件系统; 轻型的TCP/IP协议栈; 轻型的多窗口多线程图形用户界面; 开源,免费。 / 嵌入式系统基础 其它的嵌入式操作系统 QNX Nucleus .tw/embedded/nuc_rtos.html LynxOS free RTOS ThreadX RTOS 嵌入式系统基础 1.4 实时操作系统的内核 实现任务管理、任务间的通信与同步、存储器管理、定时器管理、中断管理等功能。 1.4.1 任务管理 uC/OS-II的任务管理 获得CPU控制权 等待系统实时事件的发生而被唤醒,从而转为就绪态。 任务完成或因错误等原因被清除 进入任务等待队列,通过调度转为运行状态。 任务的CPU使用权被剥夺 中断 嵌入式系统基础 1.基于优先级的抢占式调度算法 调度:决定该轮到哪个任务运行; 多数实时内核是基于优先级调度法的,每个任务根据其重要程度的不同被赋予一定的优先级。 基于优先级的调度法:CPU总是让处在就绪态的优先级最高的任务先运行。 究竟何时让高优先级任务掌握CPU的使用权,有两种不同的情况,这要看用的是什么类型的内核,是抢占式调度还是非抢占式调度。 嵌入式系统基础 非抢占式调度 非抢占式调度要求每个任务自我放弃CPU的所有权; 在非抢占式调度中,各个任务共享一个CPU; 异步事件由中断服务来处理; 中断服务可以使一个高优先级的任务由挂起状态变为就绪状态; 但中断服务完成以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃CPU的使用权时,高优先级的任务才能获得CPU的使用权。 嵌入式系统基础 非抢占式调度运行原理 任务正在运行 中断到来,中断原来任务 执行中断服务子程序,使一个高优先级任务就绪 由于是非抢占式调度,低优先级任务未执行完毕,高优先级任务不能立即执行 中断返回 继续执行原来任务 任务执行完毕,控制权交给 高优先级、已就绪的任务 高优先级任务开始执行 低优先级任务 低优先级任务 ISR 高优先级任务 嵌入式系统基础 抢占式调度 当系统响应时间很重要时,要使用抢占式调度内核; 最高优先级的任务一旦就绪,总能得到CPU的控制权; 当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了CPU的控制权; 如果是中断服务子程序使一个高优先级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高的那个任务开始运行。 嵌入式系统基础 抢占式调度运行原理 低优先级任务正在运行 中断到来,中断当前任务 中断服务完成,退出中断进入新的优先级更高的任务 新任务执行 新任务执行完毕,控制权还给原来的任务 继续执行原来的任务 执行中断服务,把另一个任务 置为高优先级,立即就绪 低优先级任务 低优先级任务 ISR 高优先级任务 嵌入式系统基础 抢占式调度算法的特点: 任务级响应时间得到最优化,而且是确定的,快速的中断响应。 任务不能直接使用不可重入函数,对共享数据需要互斥和信号量的保护。 目前绝大多数的实时内核都是基于优先级的抢占式调度算法。 存在问题: 优先级反转。 解决办法: 优先级继承、优先级封顶。 嵌入式系统基础 优先级反转问题 任务1 时间T 优先级 优先级反转 S 共享资源 高 中 低 任务3 任务1 任务2 不使用共享资源 任务3开始执行 任务3就绪 嵌入式系统基础 优先级反转问题的解决——优先级继承 任务3 时间T 优先级 S 共享资源 高 中 低 任务1 优先级反转 任务3 任务1 任务2 任务3开始执行 任务3就绪 嵌入式系统基础 优先级反转问题的解决——优先级封顶 任务3 时间T 优先级上限 S 共享资源 高 中 低 任务1 任务3 任务2 任务3开始执行 任务3就绪 嵌入式系统基础 优先级继承和优先级封顶的比较 优先级继承只是在占有资源的低优先级任务阻塞了高优先级任务的运行时,才动态地更改低优先级的任务到高优先级,对应用中的任务流程影响小。 优先级封顶则不论低优先级任务是否阻塞高优先级任务的运行,只要任务访问该资源,都会提升任务的优先级到可访问这个资源的所有任务的最高优先级。 嵌入式系统基础 2. 同一优先级的时间片轮转调度算法 对于复杂的、高性能的多任务实时内核(如VxWorks),由于多个任务允许共用一个优先级,实时内核提供了同一优先级的

文档评论(0)

三沙市的姑娘 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档