单片机与嵌入式系统原理第11章-嵌入式操作系统及软件开发课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《单片机与嵌入式系统原理第11章-嵌入式操作系统及软件开发课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 嵌入式 系统 原理 11 操作系统 软件 开发 课件
- 资源描述:
-
1、11.1 嵌入式操作系统的概述嵌入式操作系统的概述11.2 嵌入式操作系统内核基础嵌入式操作系统内核基础11.3 嵌入式操作系统嵌入式操作系统C/OS简介简介11.4 嵌入式操作系统嵌入式操作系统C/OS在在ARM上的移植上的移植11.5嵌入式系统软件开发嵌入式系统软件开发11.1 嵌入式操作系统的概述嵌入式操作系统的概述(1)嵌入式操作系统的特点)嵌入式操作系统的特点 可移植;可移植;强调实时性能;强调实时性能;内核精简,所占空间小;内核精简,所占空间小;抢占式内核;抢占式内核;可配置;可配置;可裁剪;可裁剪;高可靠性。高可靠性。(2)嵌入式操作系统的分类)嵌入式操作系统的分类 按照源代码分
2、类,可分为商用型和开源型按照源代码分类,可分为商用型和开源型按照实时性能分类,可分为强实时型和普通实时型按照实时性能分类,可分为强实时型和普通实时型 按照内核结构分类,可分为单内核型和微内核型按照内核结构分类,可分为单内核型和微内核型b)微内核操作系统的模块架构)微内核操作系统的模块架构a)单内核操作系统的模块架构)单内核操作系统的模块架构基于微内核结构的操作系统和传统操作系统相比,具有五个突出的特点:基于微内核结构的操作系统和传统操作系统相比,具有五个突出的特点:内核小巧内核小巧 接口一致接口一致 各个功能模块之间松散耦合各个功能模块之间松散耦合 基于客户基于客户/服务器体系结构。服务器体系
3、结构。微内核功能扩充方便,但是各个功能之间的切换而引起的开销非常大微内核功能扩充方便,但是各个功能之间的切换而引起的开销非常大 属于微内核的典型嵌入式操作系统有属于微内核的典型嵌入式操作系统有VxWorks、QNX、Hopen、C/OSII、Symbian等。等。(3)使用嵌入式操作系统的必要性)使用嵌入式操作系统的必要性 嵌入式实时操作系统提高了系统的可靠性。嵌入式实时操作系统提高了系统的可靠性。提高了开发效率,缩短了开发周期。提高了开发效率,缩短了开发周期。嵌入式实时操作系统充分发挥了嵌入式实时操作系统充分发挥了32位位CPU的多任务潜力。的多任务潜力。但是,使用嵌入式实时操作系统还需要额
4、外的但是,使用嵌入式实时操作系统还需要额外的ROM/RAM开销、开销、2%5%的的CPU额外负荷以及内核的费用。额外负荷以及内核的费用。(4)常见的嵌入式操作系统)常见的嵌入式操作系统 嵌入式嵌入式Linux 它是专门针对没有它是专门针对没有MMU的的CPU,高度优化的、代码紧凑的嵌入式操,高度优化的、代码紧凑的嵌入式操作系统作系统Windows CE Windows CE是微软公司开发的一个开放、可升级的是微软公司开发的一个开放、可升级的32位嵌入式操作位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,是精简的系统,是基于掌上型电脑类的电子设备操作系统,是精简的Windows 95。V
5、xWorks VxWorks操作系统是美国操作系统是美国WindRiver公司于公司于1983年设计开发的一种嵌入年设计开发的一种嵌入式实时操作系统(式实时操作系统(RTOS)。并以其良好的可靠性和卓越的实时性被广泛)。并以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如卫星通信、军事演习、弹道制导及飞机导航等如卫星通信、军事演习、弹道制导及飞机导航等。OSE OSE支持容错,适用于可从硬件和软件错误中恢复的应用,其独特的消息支持容错,适用于可从硬件和软件错误中恢复的应用,其
6、独特的消息传输方式使其能方便地支持多处理机之间的通信。它的客户深入到电信、数据、传输方式使其能方便地支持多处理机之间的通信。它的客户深入到电信、数据、工控及航空等领域,尤其在电信方面,该公司已经有了十余年的开发经验。工控及航空等领域,尤其在电信方面,该公司已经有了十余年的开发经验。Nucleus Nucleus PLUS是源码公开的抢先式多任务操作系统内核,易于移植。采用是源码公开的抢先式多任务操作系统内核,易于移植。采用了软件组件的方法,功能模块丰富,易学易用。了软件组件的方法,功能模块丰富,易学易用。eCOS eCos是是RedHat公司开发的源代码开放的嵌入式公司开发的源代码开放的嵌入式
7、RTOS产品,是一个可配置、产品,是一个可配置、可移植的嵌入式实时操作系统。可移植的嵌入式实时操作系统。eCos的关键技术是操作系统可配置性。的关键技术是操作系统可配置性。C/OSII 一个源码公开、可移植、可固化、可裁剪及占先式的实时多任务操作系统,一个源码公开、可移植、可固化、可裁剪及占先式的实时多任务操作系统,其绝大部分源码是用其绝大部分源码是用ANSIC写的写的。C/OS通过了联邦航空局(通过了联邦航空局(FAA)商)商用航行器认证,符合用航行器认证,符合RTCA(航空无线电技术委员会)(航空无线电技术委员会)DO178B标准。标准。11.2 嵌入式操作系统内核基础嵌入式操作系统内核基
8、础(1)多进程和多线程)多进程和多线程 一个进程可以简单地认为是一个程序的唯一执行。一个进程可以简单地认为是一个程序的唯一执行。进程是顺序执行的。进程是顺序执行的。CPU一次只能执行一个进程。一次只能执行一个进程。当确定了一个进程的完成状态后,就可当确定了一个进程的完成状态后,就可以强制以强制CPU停止执行当前进程而执行另一个进程,实现进程的切换这样。停止执行当前进程而执行另一个进程,实现进程的切换这样。能够使多个进程同时存在于能够使多个进程同时存在于CPU中。中。在嵌入式系统中,在嵌入式系统中,一个进程的常用形式是线程。一个进程的常用形式是线程。线程在线程在CPU的寄存器的寄存器中有各自不同
9、的值集合,但是共存于一个主存储空间中中有各自不同的值集合,但是共存于一个主存储空间中。线程普遍应用于线程普遍应用于嵌入式系统中(即任务)。嵌入式系统中(即任务)。(2)任务)任务 在嵌入式系统中,一个任务也称作一个线程,是一个程序。在嵌入式系统中,一个任务也称作一个线程,是一个程序。该程序在该程序在运行时可以认为运行时可以认为CPU完全只属于该程序自己。完全只属于该程序自己。在实时应用程序的设计过程中,在实时应用程序的设计过程中,要考虑如何将应用功能合理地划分为多个任务,让每个任务完成一定的功能,要考虑如何将应用功能合理地划分为多个任务,让每个任务完成一定的功能,成为整个应用的一部分。成为整个
10、应用的一部分。每个任务都被赋予一定的优先级,有自己的一套每个任务都被赋予一定的优先级,有自己的一套CPU寄存器和栈空间。寄存器和栈空间。任务越重要,赋予的优先级越高。就大多数内核而言,任务越重要,赋予的优先级越高。就大多数内核而言,任务的优先级由用户决定。任务的优先级由用户决定。多任务堆栈与多任务堆栈与CPU寄存器寄存器 一般的,每一个任务都是一个无限的循环,可以处在以下五种状态之一:一般的,每一个任务都是一个无限的循环,可以处在以下五种状态之一:休眠态(休眠态(Dormant):是指任务驻留在内存的程序空间中,并未被多任务):是指任务驻留在内存的程序空间中,并未被多任务内核所调度。内核所调度
11、。就绪态(就绪态(Ready):是指任务已经准备好,可以运行,但是由于该任务):是指任务已经准备好,可以运行,但是由于该任务的优先级比正在运行的任务的优先级低,还暂时不能运行。的优先级比正在运行的任务的优先级低,还暂时不能运行。运行态(运行态(Running):是指任务获得了):是指任务获得了CPU的控制权,正在运行中。基于的控制权,正在运行中。基于优先级调度的实时内核总是让处于就绪态的优先级最高的任务运行。优先级调度的实时内核总是让处于就绪态的优先级最高的任务运行。挂起态(挂起态(Pending):也叫作等待事件态():也叫作等待事件态(waiting),是指任务在等待某一),是指任务在等待
12、某一事件的发生(如等待某外设的事件的发生(如等待某外设的I/O操作、等待定时脉冲的到来、等待超时信号操作、等待定时脉冲的到来、等待超时信号的到来以结束目前的等待,等等)。正在运行的任务由于调用了延时函数或等的到来以结束目前的等待,等等)。正在运行的任务由于调用了延时函数或等待某事件发生而将自身挂起,就处于挂起态。待某事件发生而将自身挂起,就处于挂起态。被中断态(被中断态(Intermpt):是指发生中断时,):是指发生中断时,CPU提供相应的中断服务,原来提供相应的中断服务,原来正在运行的任务暂不能运行,而进入了被中断状态。正在运行的任务暂不能运行,而进入了被中断状态。(3)任务切换)任务切换
13、 任务切换(任务切换(Context Switch)是指)是指CPU寄存器内容切换。寄存器内容切换。当多任务内核决定运行另外的任务时,它保存正在运行的任务的当前状态,当多任务内核决定运行另外的任务时,它保存正在运行的任务的当前状态,即当前即当前CPU寄存器中的全部内容;寄存器中的全部内容;内核将这些内容保存在该任务的当前状内核将这些内容保存在该任务的当前状态保存区,也就是该任务自己的栈区之中(这个过程称为态保存区,也就是该任务自己的栈区之中(这个过程称为“入栈入栈”)。)。把将把将要运行的任务的当前状态从该任务的栈中装入要运行的任务的当前状态从该任务的栈中装入CPU寄存器(这个过程称为寄存器(
14、这个过程称为“出栈出栈”),并开始这个任务的运行。这样,就完成了一次任务切换。),并开始这个任务的运行。这样,就完成了一次任务切换。任务切换过程增加了应用程序的额外负荷,任务切换过程增加了应用程序的额外负荷,CPU的内部寄存器越多,额外的内部寄存器越多,额外负荷就越重。任务切换所需要的时间取决于负荷就越重。任务切换所需要的时间取决于CPU有多少寄存器要入栈。有多少寄存器要入栈。(4)内核)内核 多任务系统中,内核负责管理各个任务,为每个任务分配多任务系统中,内核负责管理各个任务,为每个任务分配CPU的使用的使用时间,并且负责任务间的通信时间,并且负责任务间的通信。内核提供的基本服务是任务切换,
展开阅读全文