chap01-嵌入式操作系统简介.ppt
page12023/3/16嵌入式实时操作系统嵌入式实时操作系统 C/OS-IIpage2023/3/162第1章 嵌入式操作系统简介page32023/3/16第第1章章 目录目录n1、计算机操作系统n2、嵌入式系统和嵌入式操作系统n3、嵌入式 RTOS uC/OS-II 简介page42023/3/16第第1章章 目录目录n1、计算机操作系统n2、嵌入式系统和嵌入式操作系统n3、嵌入式 RTOS uC/OS-II 简介page52023/3/161.1 计算机操作系统(Operating System,OS)n 操作系统是一种为应用程序提供服务的系统软件,是一个完整计算机系统的有机组成部分。n 从层次来看,操作系统位于计算机硬件之上,应用软件之下。所以也把它叫做应用软件的运行平台。1.什么是计算机操作系统什么是计算机操作系统 简而言之,简而言之,OS 就是一个屏蔽层,屏就是一个屏蔽层,屏蔽了计算机的具体硬件,向使用者提供蔽了计算机的具体硬件,向使用者提供了一台虚拟的计算机开发、使用环境。了一台虚拟的计算机开发、使用环境。page62023/3/16n 它在计算机应用程序与计算机硬件系统之间,屏蔽了计算机硬件工作的一些细节,并对系统中的资源进行有效的管理。n 通过提供函数(应用程序接口(API),从而使应用程序的设计人员得以在一个友好的平台上进行应用程序的设计和开发,大大地提高了应用程序的开发效率。2.2.计算机操作系统的作用计算机操作系统的作用从用户的角度来看,它就是一大堆函数(API 和系统函数),用户可以调用(普通调用或系统调用)它们来对系统资源进行操作。计算机硬件用汇编语言编写的硬件抽象层高级语言的接口应用软件操作系统page72023/3/16操作系统3 3、计算机操作系统的功能、计算机操作系统的功能处理器的管理存储管理网络和通信的管理I/O设备管理文件管理任务管理任务表存储分配表文件目录设备表 总之,需要许多的表和数据结构 page82023/3/16第1章 目录n1、计算机操作系统n2、嵌入式系统和嵌入式操作系统n3、嵌入式 RTOS uC/OS-II 简介page92023/3/16n嵌入式系统基本概念1.2 嵌入式系统和嵌入式操作系统 目前,对嵌入式系统的定义多种多样,没有一个权威的定义。下面给出两种比较通用的定义:n 从技术的角度定义:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。n 从系统的角度定义:嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。术语嵌入式反映了这些系统通常是更大系统中的一个完整的部分,称为嵌入的系统。嵌入的系统中可以共存多个嵌入式系统。page102023/3/16n嵌入式系统的特点1.2 嵌入式系统和嵌入式操作系统n 专用性-为特定应用定制的计算机系统。n 裁减性-软、硬件小而精,够用即可。n 实时性-程序和数据都在存储器中,既满足逻 辑正确性,也要满足时间正确性。n 可靠性-无人值守、自动化设备的使用要求。n 低功耗-便携式应用的要求。n 高性价-家用的应用要求。page112023/3/16n嵌入式操作系统的特点1.2 嵌入式系统和嵌入式操作系统n 必要性-嵌入式系统软硬件愈加庞大复杂。n 微型化、可裁减-软、硬件小而精,够用即可。n 实时性-抢占式管理策略,满足时间正确性。n 可靠性-无人值守、自动化设备的使用要求。n 易移植-便于应用到多种的硬件平台。n 微内核-完成OS主要功能的代码很小(附加功能需另挂)。page122023/3/16n嵌入式操作系统的基本功能1.2 嵌入式系统和嵌入式操作系统n 多任务管理-丰富的多任务管理函数供目标系统设计者容易完成多任务应用设计。n 内存管理-动态内存管理充分利用硬件资源。n 外设管理-例如I2C、UART、Timer、SPI等设备的驱动。page132023/3/16n实时操作系统 VS 分时操作系统1.2 嵌入式系统和嵌入式操作系统n 实时性-即及时性,能够在要求的时间内相应 并处理完系统事件。n 实时系统的正确性-既要逻辑正确,还要时间 正确。n RTOS-多采用抢占式管理策略,满足时间正确性。n 分时OS-多采用时间片轮换调度策略。page142023/3/16142023/3/16n嵌入式操作系统的发展1.2 嵌入式系统和嵌入式操作系统page152023/3/16152023/3/16152023/3/16n常见的嵌入式操作系统1.2 嵌入式系统和嵌入式操作系统实时嵌入式操作系统的种类繁多,大体上可分为两种,商用型和免费型。n商用型的实操作系统功能稳定、可靠,有完善的技术支持和售后服务,但往往价格昂贵,如Vxworks、QNX、WinCE、Palm OS等。n免费型的实时操作系统在价格方面具有优势,目前主要有Linux,C/OS是一种源码开放的商业RTOS;C/OS是商业操是商业操作系统作系统page计算机发展的三大阶段n第一阶段:始于五十年代的由IBM,Burroughs,Honeywell等公司率先研制的大型机。n第二阶段:始于七十年代的个人计算机。n第三阶段:计算机正迈入下一个充满机遇的阶段“后PC时代”或“无处不在的计算机”阶段。后PC时代是指将计算机、通信和消费产品的技术结合起来,以3C产品的形式(因为以上三者英文都是以“C”字母开头的)通过Internet进入家庭。16page嵌入式系统无处不在彼此互连17page即使远在火星面对面对6 6万年才有一次的机万年才有一次的机会,科学家们积极行动会,科学家们积极行动起来起来从从6 6月开始,月开始,先后有欧洲的先后有欧洲的“火星快火星快车车”、美国、美国“勇气号勇气号”和和“机遇号机遇号”等三颗火等三颗火星探测器飞往火星,而星探测器飞往火星,而日本一颗本已在太空日本一颗本已在太空“迷失方向迷失方向”的火星探测的火星探测器也在关键时刻及时器也在关键时刻及时“醒醒”来,开始了久违的来,开始了久违的火星之旅。火星之旅。火星与地球,这一对在星空中遥火星与地球,这一对在星空中遥遥相望的遥相望的“兄弟兄弟”,迎来,迎来6 6万年来万年来“最亲密的接触最亲密的接触”,在,在20032003年年8 8月月2727日这一天,火星距离地球最近日这一天,火星距离地球最近达到达到55756622(555756622(5千多万千多万)公里。公里。勇气号勇气号18page自自19971997年年1010月月1515日发射以来,日发射以来,经历了经历了7 7年年3535亿公里航程的卡亿公里航程的卡西尼号太空船在西尼号太空船在20042004年年7 7月月1 1日日1010时时3030分进入土星轨道,开始分进入土星轨道,开始进行人类有史以来对土星及其进行人类有史以来对土星及其3131颗已知卫星最详尽的探测。颗已知卫星最详尽的探测。土星探测土星探测19page“哥伦比亚哥伦比亚”号,整个系统的起飞号,整个系统的起飞重量达重量达20002000吨,高吨,高5656米。米。20page“小鹰小鹰”号标准排水量为号标准排水量为6010060100吨,满载排水量达吨,满载排水量达8112381123吨,舰长吨,舰长323.6323.6米,舰米,舰宽宽39.639.6米,吃水米,吃水11.411.4米,是世界上最大的常规动力航空母舰。舰员米,是世界上最大的常规动力航空母舰。舰员29302930名,其名,其中军官中军官155155名;航空人员名;航空人员24802480名,其中军官名,其中军官320320名。飞机:名。飞机:F-14DF-14D战斗机战斗机2020架,架,F/A-18F/A-18战斗机战斗机3636架,架,E-2CE-2C预警机和预警机和EA-6BEA-6B电子干扰机各电子干扰机各4 4架,架,6 6架架S-3BS-3B反潜机,反潜机,6 6架直升机,架直升机,2 2架架ES-3AES-3A。21pageWearable ComputingWearable Computing22page嵌入式设备无处不在,嵌入式设备无处不在,但桌面系统还依然有用但桌面系统还依然有用l无处不在的计算机是计无处不在的计算机是计算机与使用者的比率达算机与使用者的比率达到和超过到和超过100:1100:1的阶段的阶段 l无处不在的计算机包括无处不在的计算机包括通用计算机通用计算机和和嵌入式计嵌入式计算机系统算机系统l在在100:1100:1比例中比例中95%95%以上以上都是嵌入式计算机系统,都是嵌入式计算机系统,并非通用计算机并非通用计算机23page嵌入式系统的发展历程n嵌入式系统的出现和兴起(1960-1970)n嵌入式系统开始走向繁荣,软件和硬件日臻完善(1971-1989)n嵌入式系统应用走向纵深(1990年-现在)24pageMicroprocessorCCD preprocessorPixel coprocessorA2DD2AJPEG codecDMA controllerMemory controllerISA bus interfaceUARTLCD ctrlDisplay ctrlMultiplier/AccumDigital camera chiplensCCDA Digital CameraA Digital Camera实例25page软件体现价值M9iPhone426page272023/3/16第1章 目录n1、计算机操作系统n2、嵌入式系统和嵌入式操作系统n3、嵌入式 RTOS uC/OS-II 简介page282023/3/161.3 嵌入式 RTOS uC/OS-II 简介C/OSMicro Controller OS,微控制器操作系统C/OS简介n美国人Jean Labrosse 1992年完成n应用面覆盖了诸多领域,如照相机、医疗器械、音响设备、发动机控制、高速公路电话系统、自动提款机等n1998年mC/OS-II,目前的版本mC/OS-II V2.61,2.72n2000年,得到美国航空管理局(FAA)的认证,可以用于飞行器中n网站www.ucos-II.com()page292023/3/16292023/3/16uC/OS-II 的性能特点n公开源代码n可移植性(Portable)绝大部分C/OS-II的源码是用移植性很强的ANSI C写的。和微处理器硬件相关的那部分是用汇编语言写的。汇编语言写的部分已经压到最低限度,使得m C/OS-II便于移植到其他微处理器上。C/OS-II可以在绝大多数8位、16位、32位以至64位微处理器、微控制器、数字信号处理器(DSP)上运行。n可固化(ROMable)C/OS-II是为嵌入式应用而设计的,这就意味着,只要读者有固化手段(C编译、连接、下载和固化),C/OS-II可以嵌入到读者的产品中成为产品的一部分。page302023/3/16302023/3/16302023/3/16uC/OS-II 的性能特点n可裁剪(Scalable)可以只使用C/OS-II中应用程序需要的那些系统服务。也就是说某产品可以只使用很少几个C/OS-II调用,而另一个产品则使用了几乎所有C/OS-II的功能,这样可以减少产品中的C/OS-II所需的存储器空间(RAM和ROM)。这种可剪裁性是靠条件编译实现的。n占先式(Preemptive)n多任务C/OS-II可以管理64个任务,然而,目前这一版本保留8个给系统。应用程序最多可以有56个任务。n可确定性全部C/OS-II的函数调用与服务的执行时间具有可确定性。page312023/3/16312023/3/16312023/3/16uC/OS-II 的性能特点n任务栈每个任务有自己单独的栈,C/OS-II允许每个任务有不同的栈空间,以便压低应用程序对RAM的需求。n系统服务C/OS-II提供很多系统服务,例如邮箱、消息队列、信号量、块大小固定的内存的申请与释放、时间相关函数等。n中断管理中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达255层。n稳定性与可靠性page322023/3/16全世界有数百种产品在应用全世界有数百种产品在应用:AvionicsMedicalCell phonesRouters and switchesHigh-end audio equipmentWashing machines and dryersUPS(Uninterruptible Power Supplies)Industrial controllersGPS Navigation SystemsMicrowave RadiosInstrumentationPoint-of-sale terminals更多page西安邮电学院 计算机系332023/3/16page342023/3/16C/OS-II中的数据类型备注:这些类型定义在备注:这些类型定义在 ARMOS_CPU.H 文件中。文件中。page操作系统中经常使用的数据结构(数组)数组1.同一数据类型数据的集合;2.占用连续内存空间;3.其中的所有元素名称都相同,但每个元素都有一个编号;4.元素名去掉编号(下标),得到的是数组名,数组名是个指针。int a10a0a1a2a3a9aa+1使用上的特点:1.分类存放;2.检索速度快且恒定;3.缺点:占用连续空间大a+2a+3a+9应用:记录同类事物的表page362023/3/16操作系统中经常使用的数据结构(位图)位图是数组的一种特殊应用a10(可以记录80个事物的状态)a0a1a2a3a9aa+1a+2a+3a+9应用:登记表1/0D7 D6 D5 D4 D3 D2 D1 D0page372023/3/16操作系统中经常使用的数据结构(结构)1.不同数据类型数据的集合;2.占用连续内存空间;struct Student int age;char*name;char sex;使用上的特点:1.不分类存放,但用来描述同一事物;2.检索速度快且恒定;应用:通讯录中的一条记录等等page382023/3/16next next 两个元素的链表操作系统中经常使用的数据结构(链表)struct Student Student*next int age;char*name;char sex;1.同数据类型数据的集合;2.不占用连续内存空间。使用上的特点:1.分类存放,但空间上不连续(不需要大量的连续存储空间);2.检索速度慢,且耗费的时间不固定;应用:存放大量的较大的表,类似档案柜page392023/3/16操作系统中经常使用的数据结构(队列)按照先进先出的规则组织的数据结构可以用数组也可以用链表来实现主要用于对象的排队page402023/3/16操作系统中经常使用的数据结构(堆栈)按照先进后出规则组织的数据结构主要用数组来实现主要用于程序模块的嵌套运行