第6章 嵌入式操作系统概述.ppt
《第6章 嵌入式操作系统概述.ppt》由会员分享,可在线阅读,更多相关《第6章 嵌入式操作系统概述.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章 嵌入式操作系统概述20082008年年1111月月2323日星期日日星期日1 1目 录6.1 嵌入式操作系统简介嵌入式操作系统简介6.2 嵌入式操作系统的基本原理嵌入式操作系统的基本原理20082008年年1111月月2323日星期日日星期日2 26.1 嵌入式操作系统简介20082008年年1111月月2323日星期日日星期日3 3为什么要使用嵌入式操作系统早期的嵌入式系统开发,一般都是由一个工程师完早期的嵌入式系统开发,一般都是由一个工程师完成的,软件开发工作只占全部工作的成的,软件开发工作只占全部工作的5%5%10%10%;随着科技的发展,随着科技的发展,8080年代软件开发工作
2、已经占到全年代软件开发工作已经占到全部工作的部工作的5050;近几年,随着硬件复杂性、多样性和应用复杂性的近几年,随着硬件复杂性、多样性和应用复杂性的增加,软件开发工作急剧增长,经常达到全部工作增加,软件开发工作急剧增长,经常达到全部工作的的70708080。传统的开发模式已经不能适应系统复杂性的增长,传统的开发模式已经不能适应系统复杂性的增长,而嵌入式操作系统的引入,极大的方便了嵌入式软而嵌入式操作系统的引入,极大的方便了嵌入式软件的开发和维护件的开发和维护 20082008年年1111月月2323日星期日日星期日4 4RTOS嵌入式系统开发平台 嵌入式操作系统体现了一种新的系统设计思想和一
3、嵌入式操作系统体现了一种新的系统设计思想和一个开放的软件框架,软件工程师只做少量改动,就个开放的软件框架,软件工程师只做少量改动,就可以添加或删除一个系统模块。可以添加或删除一个系统模块。通过操作系统所提供的应用程序编程接口(通过操作系统所提供的应用程序编程接口(APIAPI)访问系统资源,使得应用软件工程师能够将精力集访问系统资源,使得应用软件工程师能够将精力集中于所要解决的问题,而不是烦琐的系统底层操作,中于所要解决的问题,而不是烦琐的系统底层操作,提高了开发效率。提高了开发效率。它解决了嵌入式软件开发标准化的问题,更好地支它解决了嵌入式软件开发标准化的问题,更好地支持了系统协同开发。持了
4、系统协同开发。基于嵌入式操作系统开发出的程序,具有较高的可基于嵌入式操作系统开发出的程序,具有较高的可移植性,能实现移植性,能实现90%90%以上设备独立。以上设备独立。20082008年年1111月月2323日星期日日星期日5 5嵌入式操作系统的特点嵌入式操作系统的特点.高效的任务管理高效的任务管理 1.1.支持多任务支持多任务 2.2.优先级管理优先级管理 3.3.任务调度:基于优先级的抢占式调度、时间片轮转调任务调度:基于优先级的抢占式调度、时间片轮转调度的算法度的算法 4.4.支持快速而确定的上下文切换支持快速而确定的上下文切换 快速灵活的任务间通信快速灵活的任务间通信 1.1.信号量
5、:二进制、互斥、计数器信号量:二进制、互斥、计数器 2.2.通信机制:消息队列、管道等通信机制:消息队列、管道等 高度的可剪裁性高度的可剪裁性 动态链接与部件增量加载动态链接与部件增量加载 快速有效的中断和异常事件处理快速有效的中断和异常事件处理 优化的浮点支持优化的浮点支持 动态内存管理动态内存管理 系统时钟和定时器系统时钟和定时器20082008年年1111月月2323日星期日日星期日6 6几种最常见的RTOS 软实时软实时RTOSRTOS 嵌入式嵌入式Linux Linux Win CEWin CE Palm OS Palm OS SybianSybian 硬实时硬实时RTOSRTOS
6、VxWorksVxWorks NuclearNuclear 著名的著名的open RTOSopen RTOS ucOSucOS/IIRTEMS/IIRTEMS 自主知识产权的自主知识产权的RTOSRTOS HOPENHOPEN Delta OS Delta OS ASIX OSASIX OS20082008年年1111月月2323日星期日日星期日7 7TRON联盟1999年底2000年初关于使用RTOS的主要困难 20082008年年1111月月2323日星期日日星期日8 8TRON联盟2001年关于使用RTOS的主要困难 20082008年年1111月月2323日星期日日星期日9 9使用实时
7、操作系统最大的问题 缺少熟悉缺少熟悉RTOSRTOS技术的工程师,这个问题几乎是技术的工程师,这个问题几乎是32323333左右用户的最大困难;左右用户的最大困难;另外另外RTOSRTOS价格较高也是一个非常重要的因素,这价格较高也是一个非常重要的因素,这一点占一点占10101515;第三个困难是缺乏开发环境和工具的支持,大概占第三个困难是缺乏开发环境和工具的支持,大概占9 91414左右。左右。这三个主要困难中,以熟悉这三个主要困难中,以熟悉RTOSRTOS技术工程师为最技术工程师为最大,而且在大,而且在4 4年中几乎没有任何改变!年中几乎没有任何改变!20082008年年1111月月232
8、3日星期日日星期日10106.2 嵌入式操作系统的基本原理20082008年年1111月月2323日星期日日星期日1111堆栈的作用编译器利用堆栈 传递调用参数(传递调用参数(ARMARM会优先采用寄存器传参)会优先采用寄存器传参)保存返回地址(对于中断还需要保存程序状态字)保存返回地址(对于中断还需要保存程序状态字)保存被调函数(保存被调函数(CalleeCallee)中需要用到的寄存器的初始值中需要用到的寄存器的初始值 被调函数(被调函数(CalleeCallee)中使用到的临时(局部)变量中使用到的临时(局部)变量一般把这种调用栈组织叫做调用栈帧(Stack Frame)堆栈保存了系统运
9、行过程中程序之间的调用顺序(关系)!堆栈保存了系统运行过程中程序之间的调用顺序(关系)!堆栈保存了系统运行过程中程序之间的调用顺序(关系)!堆栈保存了系统运行过程中程序之间的调用顺序(关系)!20082008年年1111月月2323日星期日日星期日1212调用栈帧(Stack Frame)不同的编译器对栈帧的处理不完全相同,但是大同不同的编译器对栈帧的处理不完全相同,但是大同小异小异一般一般CISCCISC处理器的参数完全靠堆栈传递,而处理器的参数完全靠堆栈传递,而RISCRISC处理器的参数可以靠专门的寄存器传递处理器的参数可以靠专门的寄存器传递在不同的编译器中往往规定的不同寄存器的不同用在
10、不同的编译器中往往规定的不同寄存器的不同用途(返回值,返回地址,参数,临时变量),有些途(返回值,返回地址,参数,临时变量),有些被调函数可以直接使用,有些必须在使用前保存原被调函数可以直接使用,有些必须在使用前保存原值,并在函数返回前恢复。值,并在函数返回前恢复。ARMARM的栈帧规则:的栈帧规则:ATPCSATPCS注意:注意:注意:注意:ATPCSATPCS规定规定规定规定SPSP的规则是满递减堆栈,即堆栈指针指向的规则是满递减堆栈,即堆栈指针指向的规则是满递减堆栈,即堆栈指针指向的规则是满递减堆栈,即堆栈指针指向最后压入的数据,且由高地址向低地址生成(最后压入的数据,且由高地址向低地址
11、生成(最后压入的数据,且由高地址向低地址生成(最后压入的数据,且由高地址向低地址生成(SPSP)20082008年年1111月月2323日星期日日星期日1313调用栈帧(Stack Frame)U32 Func1(U32 arg1,void*U32 Func1(U32 arg1,void*ptrptr,U16 arg3);,U16 arg3);Main()Main()I=func1(a,p,c);I=func1(a,p,c);U32 func1(U32 arg1,void*U32 func1(U32 arg1,void*ptrptr,U16 arg3),U16 arg3)U32 x;U32 x
12、;Return x;Return x;cpaReturn AddrSPSaved RegsLocal varsHighLow20082008年年1111月月2323日星期日日星期日1414中断的分类 硬件中断硬件中断 (Hardware Interrupt):(Hardware Interrupt):一般是由外部(相对一般是由外部(相对CPUCPU内核而言)的硬件引起的事件,比如串口来数据,键盘击内核而言)的硬件引起的事件,比如串口来数据,键盘击键等;键等;软件中断(软件中断(Soft InterruptSoft Interrupt):):通过在程序中执行的中断指通过在程序中执行的中断指令引起
13、的中断,又叫软陷;令引起的中断,又叫软陷;80X8680X86:intint 指令指令 6800068000:trap trap 指令指令 ARMARM:SWI SWI 指令指令 软中断指令一般用于操作系统的系统调用入口;软中断指令一般用于操作系统的系统调用入口;异常(异常(ExceptionException):):由于由于CPUCPU内部在运行过程中引起的内部在运行过程中引起的事件,比如指令预取错,数据中止,未定义指令等等,异事件,比如指令预取错,数据中止,未定义指令等等,异常事件一般由操作系统接管。常事件一般由操作系统接管。20082008年年1111月月2323日星期日日星期日1515
14、中断的处理过程 虽然中断产生的原因不同,但是中断响应的硬件过程基本上是相同的。虽然中断产生的原因不同,但是中断响应的硬件过程基本上是相同的。拷贝拷贝CPSRCPSR到到SPSR_SPSR_ 设置正确的设置正确的CPSRCPSR位位 切换到切换到ARMARM状态状态 切换到异常模式切换到异常模式 禁止中断禁止中断 保存返回地址在保存返回地址在LR_LR_ 设置设置PCPC到异常向量地址到异常向量地址 中断服务程序可能保存需要使用的寄存器(堆栈中)中断服务程序可能保存需要使用的寄存器(堆栈中)用户服务程序可以打开中断,以接受中断嵌套用户服务程序可以打开中断,以接受中断嵌套 恢复保存的寄存器恢复保存
15、的寄存器 通过调用通过调用RetiReti(或其他相应指令)指令将或其他相应指令)指令将PSRPSR和和PCPC出栈,从而恢复原来的执出栈,从而恢复原来的执行流程。行流程。硬件完成硬件完成硬件完成硬件完成中断服务中断服务中断服务中断服务程序完成程序完成程序完成程序完成20082008年年1111月月2323日星期日日星期日1616中断的重要性!理解处理器对中断的管理以及这其中的堆栈管理对理解处理器对中断的管理以及这其中的堆栈管理对于理解操作系统是至关重要的!于理解操作系统是至关重要的!中断是操作系统的入口,用户访问操作系统提供的中断是操作系统的入口,用户访问操作系统提供的服务的唯一途径是依靠中
16、断来实现的。服务的唯一途径是依靠中断来实现的。实时系统对异步事件的处理,依靠的是中断!实时系统对异步事件的处理,依靠的是中断!任务的调度靠的是中断任务的调度靠的是中断系统调用的实现靠的是中断系统调用的实现靠的是中断在有在有MMUMMU的系统中,虚存的管理也是依靠中断!的系统中,虚存的管理也是依靠中断!中断是理解操作系统的入口!中断是理解操作系统的入口!如何强调中断的重要性都如何强调中断的重要性都如何强调中断的重要性都如何强调中断的重要性都不过份,我们将在内核的不过份,我们将在内核的不过份,我们将在内核的不过份,我们将在内核的实现中详细介绍!实现中详细介绍!实现中详细介绍!实现中详细介绍!200
17、82008年年1111月月2323日星期日日星期日1717调用栈和中断栈的不同Last argFirst argReturn AddressAutomatic or Scratch VarsAutomatic or Scratch VarsSaved RegsHighLowReturn AddressPSRSaved RegsHighLow调用栈中断栈20082008年年1111月月2323日星期日日星期日1818实时操作系统的概念实时系统:系统的正确运行要同时满足特定的逻辑和时间关系。实时操作系统RTOS(real time operation system):是指能支持实时控制系统工作的操
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第6章 嵌入式操作系统概述 嵌入式 操作系统 概述
限制150内