已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于实时操作系统基于实时操作系统 的程序设计技术的程序设计技术 信息科学与技术学院信息科学与技术学院 2010 2010 年年 9 9 月月 3 3 日日 第第 2 2 次课次课 汪汪 海海 鹰鹰 Email: Email: 课程回忆 嵌入式操作系统的特点? 1 2 3 4 什么是嵌入式操作系统? 有哪些常用的嵌入式操作系统? 你对该课程有何理解? 觉得该如何学习? Windows CE3.0:一种针对小容量、移动式、 智能化、32位、连接设备的模块化实时嵌入式 操作系统; Windows NT Embedded 4.0:一种针对基于 PC体系结构解决方案的全功能嵌入式操作系统 ; 带有Server Appliance的Windows 2000:为建 立能够利用Windows 2000强大功能的专用服 务器设备,提供了一种快捷方式。 嵌入式操作系统简介 Windows Embedded 4 原属于ISI公司产品,已被WindRiver公司兼并 模块化、高性能的实时嵌入式操作系统 Palm OS 3COM旗下的Palm Computing掌上电脑公司的产品 在PDA市场上占有很大的市场份额 Palm Os的特点 处理速度快 耗电量低,使用时间长 具备执行低内存需求应用程序的能力 与PC间的数据交换容易 应用软件的开发性高 嵌入式实时操作系统简介 pSOS 5 开发工具很多 GNU C、Codewarrior以及 Pocket C; 专业程序设计者可使用C/C+来开发,而一般 人则可使用程序产生器来完成; Codewarrior是Palm程序设计领域中功能最强 大的开发工具. 嵌入式实时操作系统简介 Palm OS的开发工具 6 自由免费产品 开放源代码,不存在黑箱技术 内核小、功能强大、运行稳定、系统健壮、效率高 易于定制剪裁,在价格上极具有竞争力 不仅支持x86CPU,还可以支持其他数十种CPU芯片 有大量的且不断增加的开发工具 沿用Unix的发展方式,遵循国际标准,可以方便地获 得众多第三方软硬件厂商的支持 内核的结构在网络方面是非常完整的。提供了对十兆 、百兆、千兆以太网、无线网络、令牌网、光纤网、 卫星等多种联网方式的全面支持 嵌入式实时操作系统简介 嵌入式Linux(CLinux) 7 美国的Jean J. Labrosse先生业余时间,自 己编写的。 1992年初发表了C/OS ,1999年出版了介 绍C/OS-的书籍,为v2.0的版本。2002 年出版了v2.52的版本。 2000年得到了美国联邦航空管理局对商用 飞机的、符合RTCA DO178B标准的认证 。 嵌入式实时操作系统 C/OS- 8 公开的源代码:http:/www.uCOS -II.com 可移植性:绝大部分代码使用ANSI C编 写,可移植性较强 向上兼容:从C/OS 升级到 C/OS - 很方便 可固化 可裁减 占先式:总是运行就绪条件下的优先级 最高的任务 C/OS-的主要特点 9 多任务:可以管理64个任务,其中保留 8个给系统 可确定性:函数调度与任务的执行时间 是可知的 任务栈:每个任务都有自己独立的栈, 降低应用程序对RAM的要求 中断管理:中断可以使正在执行的程序 挂起,终端嵌套层达255层 系统服务:提供很多的系统服务,邮箱 、消息队列、信号量等 C/OS-的主要特点 续 10 C/OS-系统框图 11 第二章 C/OS- 中的任务 任务的基本概念; 用户任务和系统任务; 任务代码、任务控制块和任务堆栈; 任务的优先权及任务优先权的参数 优先级别; 12 任务就绪表结构及其操作; 任务切换及任务调度; 任务的创建、删除、挂起、恢复和查询; C/OS-II的初始化和启动 13 2.1 任务的基本概念 C/OS-II就是一个能对小任务的运行进行管理 和调度的多任务操作系统。 C/OS-II任务的组成: 任务程序代码: 任务的执行部分 任务堆栈: 保存任务工作环境 任务控制块: 保存任务的属性 14 C/OS-II的任务有两种: 用户任务:由应用程序设计者编写的任务 为解决应用问题而编写的 系统任务:系统提供的任务 为应用程序提供某种服务 uC/OS-II最多可以对64个任务进行管理 15 2.1.1 任务的状态 睡眠状态: 就绪状态 运行状态 等待状态(时间、事件、手工挂起) 中断服务状态 16 17 2.1.2 用户任务代码的一般结构 1、用户任务代码的一般结构 void MyTask(void *pdata) for (;) 可以被中断的用户代码; OS_ENTER_CRITICAL(); /进入临界段(关中断) 不可以被中断的用户代码; OS_EXIT_CRITICAL();/退出临界段(开中断) 可以被中断的用户代码; 18 2、用户应用程序的一般结构 void MyTask1(void *pdata) /定义用户任务1 for(;) void MyTask2(void *pdata) /定义用户任务2 for(;) 19 void MyTask3(void *pdata) /定义用户任务3 for(;) void main() OSInit(); /初始化uC/OS-II OSTaskCreate(MyTask1,); /创建用户任务1 OSTaskCreate(MyTask2,); /创建用户任务2 OSTaskCreate(MyTask3,); /创建用户任务3 OSStart();/启动任务 20 2.1.3 系统任务 空闲任务(OSTaskIdle()) 在多任务系统运行时,系统经常会在某个时间 内无用户任务可运行而处于空闲状态,为使 CPU在没有用户任务可执行时有事可做,提供 了空闲任务(代码) 21 统计任务(OSTaskStat()) 每秒计算一次CPU在单位时间内被使用的时间 ,并把计算结果以百分比的形式存放在变量 OSCPUsage中,以便应用程序通过访问它来 了解CPU的利用率 如果用户应用程序要使用统计任务,则必须把 定义在系统头文件OS_CFG.H中的系统配置常 数OS_TASK_STAT_EN设置为1,并且必须在 创建统计任务之前调用函数OSStatInit()对系统 任务进行初始化 22 2.1.4 任务的优先权及优先级别 每个任务都必须具有一个唯一的优先级别 063共64个优先级别,总共不大于64个任 务 23 在文件OS_CFG.H中常数 OS_LOWEST_PRIO指明程序中任务优先 级别的个数 优先级别:0,1,2, OS_LOWEST_PRIO 任务个数: OS_LOWEST_PRIO1 其中: OS_LOWEST_PRIO自动赋给空闲任务 OS_LOWEST_PRIO1自动赋给统计任务 24 如果希望应用程序中任务的优先级别为28 个,则表示最低优先级别的常数 OS_LOWEST_PRIO值应该是多少?如果 应用程序中使用了系统提供的空闲任务和 统计任务,则应用程序最多可以安排多少 任务? 25 2.2 任务堆栈 堆栈: 存储器中按数据“后进先出(LIFO)”的原则组 织的连续存储空间。 任务堆栈: 任务的重要组成部分 每个任务都配有自己的堆栈 满足切换和响应中断时保护CPU寄存器中的内 容及存储任务私有数据的需要 26 2.2.1 任务堆栈的创建 在文件OS_CPU.H中的数据类型OS_STK typedef unsigned int OS_STK; 在应用程序中定义OS_STK类型的一个数组 # define TASK_STK_SIZE 512 /定义堆栈长 度 OS_STK TaskStkTASK_STK_SIZE /定义数 组 27 使用: 当调用函数OSTaskCreate()来创建一个任务时 ,把数组的指针传递给函数OSTaskCreate()中 的堆栈栈顶参数ptos,就可以把该数组与任务 关联起来而成为该任务的任务堆栈 创建任务函数的原型 任务代码 28 堆栈的增长方向是随系统所使用的处理器不同而 不同 29 2.2.2 任务堆栈的初始化 CPU启动运行一个任务时,各寄存器需要 预置一些数据,如:指向任务的指针、 PSW程序状态字 任务堆栈初始化函数OSTaskStkInit() 30 OS_STK *OSTaskStkInit( void (* task)(void *pd), void *pdata, OS_STK *ptos, INT16U opt ); 31 2.3 任务控制块及 任务控制块链表 任务控制块(OS_TCB): 用来记录任务的堆栈指针、任务的当前状态、 任务的优先级别等一系列与任务管理有关的属 性的表 32 2.3.1 任务控制块的结构 是一个结构类型数据 用户应用程序调用OSTaskCreate()函数创建一 个用户任务时,这个函数就会对任务控制块中 的所有成员赋予与该任务相关的数据,并驻留 在RAM中 任务控制块结构的定义 33 成员OSTCBStat用来放置任务的当前状态, 可能的置值 值说明 OS_STAT_RDY表示任务处于就绪状态 OS_STAT_SEM表示任务处于等待信号量状态 OS_STAT_MBOX表示任务处于等待消息邮箱状态 OS_STAT_Q表示任务处于等待消息队列状态 OS_STAT_SUSPEN D 表示任务处于被挂起状态 OS_STAT_MUTEX表示任务处于等待互斥型信号量状 态 34 2.3.2 任务控制块链表 用两条链表来管理任务控制块 空任务块链表 应用程序调用函数OSInit()对C/OS-II系统进行初始 化时建立的 任务块链表 应用程序调用OSTaskCreate()创建任务时建立的 35 2.3.3 任务控制块链表的管理 当应用程序调用函数OSTaskcreate()创建一个 任务时,这个函数会调用系统函数OSTCBInit() 来为任务控制块进行初始化。 首先为被创建任务从空任务控制块链表获取一个任 务控制块 然后用任务的属性对任务控制块各个成员进行赋值 最后再把这个任务控制块链入到任务控制块链表的 头部 36 为什么要对TCB进行初始化? 使任务堆栈中存放任务初始运行时的状态数据, 以便CPU将这些数据拷贝到寄存器中,进行任务 的执行 OSTCBPrioTbl的作用:建立空任务链表 初始化任务控制块函数OSTCBInit()的原型 37 2.4 任务就绪表及任务调度 调度 通过一个算法在多个任务中确定哪个任务来运 行 调度器 做任务调度工作的函数 C/OS-II进行调度的思想 每时每刻总是让优先级最高的就绪任务处于运 行状态 调用调度器来确定应该运行的任务并运行它 38 2.4.1 任务就绪表的结构 任务就绪表 (OSRdyTbl ): C/OS-II进行任务 调度的依据 C/OS-II在RAM中 设立了一个记录表 ,系统中的每个任 务都在这个表中占 据一个位置,并用 这个位置的状态(1 或0)来表示任务是 否处于就绪状态。 39 40 如何根据优先级查找就绪表具体位置? 只用6位2进制数表示063,64个任务 用高3位表示OSRyGrp的具体数据位,即数组元素的下 标; 低3位表示具体数组元素的具体数据位! 例:已知某一个已经就绪的任务的优先级别prio=49, 试判断应该在就绪表的哪一位置上置1。 49的二进制形式为00110001,其低6位为110001,于是可知 应该在OSRdyTbl6的D1位上置1,同时要把变量OSRdyGrp 的D6位置1 思考题:分析这种查找方法的思想? 41 C/OS-任务的一个小例子 演示C/OS-的多任务处理能力 在屏幕上随机的位置显示一个09的数字 10个任务,应用程序任务 #define TASK_STK_SIZE 512 /* Size of each tasks stacks (# of WORDs) */ #define N_TASKS 10 /* Number of identical tasks */ 42 1、在网站/和 /上浏览最新 的关于C/OS-II操作系统的新闻和应 用范例。 2、安装Borland C/C+ V4.51,调试程 序。 43 嵌入式操作系统的种类 商业产品 WindRiver公司的VxWorks、pSOS 微软公司的Windows CE 手持设备嵌入式操作系统 如:Plam OS、 、Win CE、 EPOC 源码开放的免费产品 CLinux C/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年安庆师范大学单招综合素质考试题库及答案解析(夺冠系列)
- 2026年厦门东海职业技术学院单招职业倾向性测试题库带答案解析
- 2026年宁波城市职业技术学院单招职业倾向性测试题库及答案解析(夺冠系列)
- 2026年安徽商贸职业技术学院单招职业倾向性考试题库及答案解析(夺冠系列)
- 2026年台州职业技术学院单招职业适应性测试必刷测试卷及答案解析(名师系列)
- 2026年太原城市职业技术学院单招职业技能考试必刷测试卷带答案解析
- 房屋抵押养老协议书
- 房屋改建施工协议书
- 房屋暂时过户协议书
- 房屋破坏协议书模板
- 2025年四川省成都市中考道德与法治试题及参考答案
- 2025贵州贵安商业资产运营管理有限公司招聘11人考试笔试备考题库及答案解析
- 山东发展投资控股集团有限公司权属企业招聘笔试
- 学堂在线医学英语词汇进阶(首医)作业单元测验答案
- 烟花爆竹零售点考试题库及答案2025
- GB/T 25052-2024连续热浸镀层钢板和钢带尺寸、外形、重量及允许偏差
- 副处面试题一百套
- 苏教版科学五年级上册全册教案(含反思)
- 抗凝血药分类及作用机制(附示意图)
- 汽动给水泵.pptx
- CTO病变治疗策略PPT课件
评论
0/150
提交评论