[化学]第7章 uCOS-II及应用开发.ppt

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[化学]第7章 uCOS-II及应用开发

一、μC/OS-Ⅱ简介   μC/OS-Ⅱ读作“micro controller OS 2”,意为“微控制器操作系统版本2”。   系统特征之一是:结构小巧。包含全部功能的核心部分代码只占用8.3K字节,同时由于μC/OS-Ⅱ是可裁剪的,所以用户系统中实际的代码最少可达2.7K字节。       系统特征之二:是一个真正的实时操作系统。 实时操作系统一般定义为: “一个能够在指定的或者确定的时间内,完成系统功能和对外部或内部、同步或异步事件做出响应的系统”。     实时操作系统在实现时通常采用的是基于优先级的任务调度策略 只有基于优先级的可剥夺型的操作系统才是真正的实时操作系统。    在可剥夺型内核中,当有更高优先级的任务就绪时,总能得到CPU的控制权。 也就是说可剥夺型内核总是让就绪态的高优先级的任务先运行。μC/OS-Ⅱ以及绝大多数商业实时内核都是可剥夺型内核。     系统特征之三是:μC/OS-Ⅱ是一个实时操作系统内核。 只包含了任务调度、任务管理、时间管理、内存管理和任务间的通信与同步等基本功能。 二、μC/OS-Ⅱ的特点 1.? 有源代码 μC/OS-Ⅱ源代码是开放的,用户可以下载针对不同微处理器的移植代码。 二、μC/OS-Ⅱ的特点 2.?????? 可移植性(portable) μC/OS-Ⅱ的源代码中,除了与微处理器硬件相关的部分是使用汇编语言编写的,其绝大部分是使用移植性很强的ANSI C编写的。 二、μC/OS-Ⅱ的特点 3.?可固化(ROMable) μC/OS-Ⅱ是为嵌入式应用而设计的操作系统,只要具备合适的软硬件工具,就可以将μC/OS-Ⅱ嵌入到产品中成为产品的一部分。 二、μC/OS-Ⅱ的特点 4.??可剪裁(scalable) 用户可根据应用的需要来剪裁系统功能。 5.??可剥夺型(preemptive) μC/OS-Ⅱ是完全可剥夺型的实时内核。它总是运行就绪条件下优先级最高的任务。 6.?多任务 μC/OS-Ⅱ可以管理64个任务,在目前的版本中,系统保留了最高的4个优先级和最低的4优先级任务,所以用户实际上最多可以拥有56个任务。注意:系统赋给每个任务的优先级必须不同。 7.?? 任务栈 μC/OS-Ⅱ的每个任务都有自己单独的栈和栈空间。 二、μC/OS-Ⅱ的特点 8.??系统服务 μC/OS-Ⅱ提供了很多系统服务,例如信号量、互斥信号量、消息邮箱、事件标志、数据队列、内存块的申请与释放及时间管理函数等。 二、μC/OS-Ⅱ的特点 9. 中断管理 中断可以使正在执行的任务暂时挂起。如果优先级更高的任务被中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行。 10.?? 稳定性与可靠性   μC/OSII自1992年以来已经有数百个商业应用,可以说μC/OS-Ⅱ的每一种功能、每一个函数及每一行代码都已经经过了考验与测试。 三、μC/OS-Ⅱ的内核 μC/OS-Ⅱ其实只有一个内核,提供任务管理、内存管理、时间管理和任务间的通信与同步等基本功能。 1.?????? 任务管理 (1)编写形式     每一个任务必须被写成一个无限循环的函数。 一个任务就像其他C函数一样,有返回值类型和参数,但因为任务函数是一个无限循环,所以它绝不会返回任何的数据,故返回类型应该定义为void。 void task ( void* pdata ) {  //任务初始化代码  For( ;; )  {  … //应用程序代码  OSTimeDly(1); // 可选  } } (2) 任务数 μC/OS-Ⅱ最多可以管理64个任务,在目前的版本中,作者保留了最高的4个优先级和最低的4优先级任务,所以用户实际上最多可以拥有56个任务。 ?注意:μC/OS-Ⅱ中任务的优先级数越高,优先级别越低,因此0优先级的任务具有最高的优先级别。 (3)任务调度    优先级最高的任务一旦准备就绪,则就拥有cpu的所有权并开始投入运行。 (基于优先级的可剥夺型实时多任务内核) 任务调度是由函数OSSched(void)调用OSCtxSw( )实现的。其作用就是:从就绪队列中查找最高优先级的任务并进行上下文切换。    系统初始化时会自动产生两个任务: 一是空闲任务OSTaskIdle(),它的优先级最低为OS_LOWEST_PRIO,该任务只是不停地给一个32位的整型变量加1; 另一个是统计任务OSTaskStat(

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档