嵌入式操作系统复习资料
- 格式:doc
- 大小:34.50 KB
- 文档页数:4
嵌入式复习资料1、嵌入式系统是指以应用为中心,以计算机技术为基础,并且软硬件可裁减,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
2、嵌入性、专用性与计算机系统是嵌入式系统的3个基本要素。
3、嵌入式系统的特点:专用的计算机系统;满足系统应用环境的要求;满足对象系统的控制要求;是一个知识集成应用系统;具有较长的应用生命周期;软件固化在非易失性存储器中;多数嵌入式系统具有实时性要求;设计需专用的开发环境和工具.3、嵌入式系统发展的4个阶段1)以单片机为核心的低级嵌入式系统2)以嵌入式微处理器为基础的初级嵌入式系统3)以嵌入式操作系统为标志的中级嵌入式系统4)以Internet 为标志的高级嵌入式系统4、嵌入式系统的发展趋势1)嵌入式系统结构将更加复杂,硬件向集成化发展,软件将逐渐PC化2)嵌入式系统的小型化、智能化、网络化、可视化、微功耗和低成本3)不断改善人机交互的手段,提供精巧的多媒体人机界面4)云计算、可重构、虚拟化等技术被进一步应用到嵌入式系统5)嵌入式软件开发平台化、标准化、系统可升级,代码可复用将更受重视5、嵌入式系统的软件:中间层程序、嵌入式操作系统、应用软件层。
6、嵌入式处理器的种类:嵌入式微处理器(Embedded Microcomputer Unit,EMPU)嵌入式微控制器(Embedded Microcontroller Unit,EMCU)嵌入式数字信号处理器(Embedded Digital Signal Processor,EDSP)嵌入式片上系统(System On Chip,SOC)嵌入式可编程片上系统(System On a Programmable Chip,SOPC)。
7、四大流派的嵌入式处理器内核MIPS POWERPC ARM 68K/COLDFIRE。
8、嵌入式操作系统(Operating System,OS)是支持嵌入式系统工作的操作系统,它负责嵌入式系统的全部软、硬件资源分配、调度、控制和协调等活动,它是嵌入式应用软件的开发平台,用户的其它应用程序都建立在嵌入式操作系统之上。
嵌入式实时操作系统考试复习1.什么是嵌入式操作系统?嵌入式系统有什么特点?答:运行在嵌入式硬件平台上,对整个系统及其操作的部件、装置等资源进行统一协调、指控和控制的系统软件就叫嵌入式操作系统。
特点:微型化、可剪裁性、实时性、高可靠性、易移植性2.实时操作系统需要满足的条件:实时操作系统必须是多任务系统,任务的切换时间应与系统中的任务数无关,中断延迟的时间可预知并尽可能短。
3.什么是实时操作系统?答:什么是实时?实时含有立即、及时之意。
如果操作系统能使计算机系统及时响应外部事件的请求,并能及时控制所有实时设备与实时任务协调运行,且能在一个规定的事件内完成对事件的处理,那么这种操作系统就是一个实时操作系统。
4.内核的类型答:不可剥夺型内核:也叫做合作型多任务内核,在这种内核中,总是优先级别高的任务最先获得CPU的使用权。
为防止某个任务霸占CPU的使用权,这种内核要求每个任务必须能主动放弃CPU的使用权。
可剥夺型内核:CPU总是运行多任务中优先级别最高的任务,即使CPU正在某个优先级低的任务,当有高优先级别的任务准备就绪时,该高级别的任务就会剥夺正在运行的CPU的使用权,而使自己获得CPU的使用权。
5.嵌入式操作系统的三项功能:内存管理、多任务管理、外围设备管理第三章1.任务有三个部分组成:任务程序代码、任务堆栈、任务控制块2.具有自己的私有空间叫“进程”,无叫做“线程”。
一个任务不是对应一个进程。
3.任务的状态:就绪状态:最多有9个、运行状态:只能有1个、等待状态:最多有9个4.系统任务:为了与用户任务区别,这种系统自己所需要的任务就叫做系统任务。
两个系统任务:空闲任务和统计任务,空闲任务是每个应用程序必须使用的,统计任务则是应用程序可以根据实际需要来选择5.空闲任务:这个空闲任务几乎不做什么事情,只是对系统定义的一个空闲任务运行次数计数器进行加1操作。
一个用户应用程序必须使用这个空闲任务,而且这个任务不能通过程序来删除。
1、什么是嵌入式系统?它由及部分组成?嵌入式系统是指操作系统和功能软件集成于计算机硬件系统之中。
简单的说就是系统的应用软件与系统的硬件一体化,类似与BIOS的工作方式。
具有软件代码小,高度自动化,响应速度快等特点。
特别适合于要求实时的和多任务的体系。
嵌入式系统一般有3个主要的组成部分:硬件、实时操作系统以及应用软件。
2、嵌入式系统的三要素是什么?嵌入式系统的三要素是嵌入、专用、计算机;其中嵌入性指的是嵌入到对象体系中,有对象环境要求;专用性是指软、硬件按对象要求裁减;计算机指实现对象的智能化功能。
3、嵌入式系统一般由几层组成?嵌入式系统一般由硬件层、中间层、软件层和功能层组成。
4、Linux作为嵌入式系统的优势?(1)可应用于多种硬件平台。
(2)添加部件非常容易(3)支持大量硬件(4)程序源码全部公开(5)完善的开发工具5、何为虚拟内存?虚拟内存的管理有何作用?使用虚拟地址寻址整个系统的主存和辅存为虚拟内存。
可以运行体积比物理内存还要大的应用程序,也可以实现“按需调页”,既满足了程序的运行速度,又节约了物理内存。
6、进程内存区域涉及哪几种数据段?代码段:可执行的操作命令数据段:已初始化的全局变量BSS段:未初始化的全局变量堆:进程运行中被分配的内存段栈:程序临时创建的局部变量7、简述内核空间和用户空间的区别?内核空间:任何操作都可以执行用户空间:禁止处理器对硬件的直接访问和对内容的未授权访问。
两者分别引用不同的内存映射,即程序代码段使用不同的“地址空间”8、简述共享内存的作用①、共享内存区域是被多个进程共享的一部分物理内存②、进程可以直接访问该共享内存区域,并通过该区域进行通信。
③、进程间快速共享数据④、共享虚拟内存的页面出现在每一个共享该页面的进程的页表中,但它不需要所有进程的虚拟内存都有相同的虚拟地址9、简述内存管理与虚拟文件系统之间的关系内存管理利用虚拟文件系统支持交换,交换进程定期由调度程序调度,这也是内存管理依赖于进程调度的唯一原因。
一、填空题(请将答案填入题后括号中):共10小题,每小题2分,满分20分。
1、一般而言,嵌入式系统的构架可以分为4个部分:分别是(处理器)、存储器、输入/输出和软件,一般软件亦分为操作系统相关和(应用软件)两个主要部分。
2、根据嵌入式系统使用的微处理器,可以将嵌入式系统分为嵌入式微控制器,(嵌入式微处理器)(嵌入式DSP处理器)以及片上系统。
3、操作系统是联接硬件与应用程序的系统程序,其基本功能有(任务管理)、任务间通信、(内存管理)和I/O资源管理。
4.实时系统:指系统能够在限定的(响应)时间内提供所需水平的服务5.ucos-ii最多管理(64 )个任务6.ucos-ii中,OS_TaskStat任务的优先级占(62 ),OS_TaskIdle任务的优先级是( 63 )7 ucos-ii中,OSRdyTbl就绪表的大小是由宏定义:OS_RDY_TBL_SIZE来定义,由全局宏( OS_LOWEST_PRIO )来决定的,8. TCB中的四个成员变量:INT8U OSTCBX;INT8U OSTCBY;INT8U OSTCBBitX;INT8U OSTCBBitY ,用于(加速)任务就绪态的计算过程。
9.TCB内部最重要的元素放在第一个单元叫(OSTCBStkPtr),因此,这个变量是惟一一个能用汇编语言处置的变量,将其放在结构最前面,使得在汇编语言中处理这个变量时较为容易。
10.uC/OS-II是一个简洁、易用的基于优先级的嵌入式(抢占式)多任务实时内核。
11.任务是一个无返回的无穷循环。
uc/os-ii总是运行进入就绪状态的(最高优先级)的任务。
12.因为uc/os-ii总是运行进入就绪状态的最高优先级的任务。
所以,确定哪个任务优先级最高,下面该哪个任务运行,这个工作就是由调度器(scheduler)来完成的。
13.(不可剥夺型)内核要求每个任务自我放弃CPU的所有权。
不可剥夺型调度法也称作合作型多任务,各个任务彼此合作共享一个CPU。
一1.嵌入式系统定义―以应用为中心,以计算机技术为基础,软件硬件可裁剪,功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
‖2.嵌入式系统与pc和单片机的区别嵌入式系统≠ PC机●嵌入式系统一般是专用系统,而PC是通用计算平台●嵌入式系统的资源比PC少得多●嵌入式系统软件故障带来的后果比PC机大得多●嵌入式系统一般采用实时操作系统●嵌入式系统大都有成本、功耗的要求●嵌入式系统得到多种微处理体系的支持●嵌入式系统需要专用的开发工具嵌入式系统≠单片机系统●目前嵌入式系统的主流是以32位嵌入式微处理器为核心的硬件设计和基于实时操作系统(RTOS)的软件设计;●单片机系统多为4位、8位、16位机,不适合运行操作系统,难以完成复杂的运算及处理功能;●嵌入式系统强调基于平台的设计、软硬件协同设计;单片机大多采用软硬件流水设计;●嵌入式系统设计的核心是软件设计(占70%左右的工作量);单片机系统软硬件设计所占比例基本相同。
3.实时系统的定义(软、硬)实时系统:如果逻辑和时序出现偏差将会引起严重后果的系统软实时系统:系统的宗旨是使各个任务运行得越快越好,并不要求限定某一任务必须在多长时间内完成(响应时间为数十秒)硬实时系统:各任务不仅要执行无误而且要做到准时(响应时间在ms 或us级)二1. BSP的概念和特点BSP(板级支持包)是介于底层硬件和操作系统之间的软件层,它完成系统上电后最初的硬件和软件初始化,并对底层硬件进行封装,使得操作系统不再面对具体的操作。
BSP的特点:1)硬件相关性:因为嵌入式系统的硬件具有应用相关性,所以,作为高层软件与硬件之间的接口,BSP必须为操作系统提供操作和控制具体硬件的方法。
2)操作系统相关性:不同的操作系统具有各自的软件层次结构,因此,针对不同的操作系统具有特定的接口形式。
2. SoC定义SoC 就是System on Chip ,SoC嵌入式系统微处理器就是一种电路系统。
嵌入式复习重点一选择题(20分)1、计算机中最小存储单元是什么位2、当计算机突然断电时什么数据会丢失RAM3、计算机中最常使用的字符编码是什么ASCII码4、不属于计算机特点的是5、关于病毒说法6、计算机在汽车工业生产应用属于什么7、32位中32指的是什么32是指数据位数二、填空题1、ARM处理器模式用户模式(usr):ARM处理器正常的程序执行状态。
快速中断模式(fiq):用于高速数据传输或通道处理。
外部中断模式(irq):用于通用的中断处理。
管理模式(svc):操作系统使用的保护模式。
数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
系统模式(sys):运行具有特权的操作系统任务。
定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
2、典型嵌入式分为哪四个层次引导加载程序。
包括固化在固件(firmware)中的boot代码(可选),和BootLoader两大部分。
Linux内核。
特定于嵌入式板子的定制内核以及内核的启动参数。
文件系统。
包括根文件系统和建立于Flash内存设备之上文件系统。
通常用ramdisk来作为rootfs。
用户应用程序。
特定于用户的应用程序。
有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。
常用的嵌入式GUI有:MicroWindows和MiniGUI,QT、GTK。
3、ARM存储系统ARM体系结构所支持的最大寻址空间为4GB(32位)。
两种存储格式:大端格式小端格式ARM支持的异常复位未定义指令软件中断指令预取中止数据中止IRQ(外部中断请求)FIQ(快速中断请求)三名词解释1、JTAG 联合测试行为组织在硬件结构上JTAG接口包括两部分JTAG端口和控制器JTAG主要应用于:电路的边界扫描测试和可编程芯片的在系统编程。
2、ROM(Read only Memory)只读存储器RAM(Random access Memory)随机存取存储器PROM(programmable ROM)可编程只读存储器EPROM(Erasable Programmable)可改写只读存储器SRAM(Static RAM)静态随机存取存储器DRAM(Dynamic RAM)动态随机存取存储器SDRAM(Synchronization Dynamic RAM )同步动态随机存储器3、TAP控制器TAP控制器是边界扫描测试的核心,它是一个具有16个状态的状态机。
嵌入式系统复习提纲第一章1,什么是嵌入式系统?IEEE(国际电气和电子工程师协会)的定义是什么?一般定义是什么?根据IEEE(国际电气和电子工程师协会)的定义:嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置一般定义:“以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
”●广义上讲,凡是带有微处理器的专用软硬件系统都可称为嵌入式系统。
●从狭义上讲,我们更加强调那些使用嵌入式微处理器构成独立系统,具有自己操作系统,具有特定功能,用于特定场合的嵌入式系统。
这里所谓的嵌入式系统是指狭义上的嵌入式系统。
2,嵌入式系统有哪些重要的特征?(1)系统内核小●由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多。
●比如ENEA公司的OSE分布式系统,内核只有5K,而Windows的内核则要大得多。
(2)专用性强●嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植。
●即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改。
●同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的“升级”是完全不同的概念。
(3)系统精简●嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。
(4)高实时性OS● 这是嵌入式软件的基本要求,而且软件要求固态存储,以提高速度。
软件代码要求高质量和高可靠性、实时性。
3, 实时系统的定义是什么?答:实时系统的正确性依赖于运行结果的逻辑正确性和运行结果产生的时间正确性,即实时系统必须在规定的时间范围内正确地响应外部物理过程的变化。
4,在典型的嵌入式系统组成中,可以分为哪四层?每一层具体是通常包含哪些单元?中间层BSP 有哪些基本功能? 答:硬件层,中间层,软件层,功能层● 中间层BSP 功能之一:硬件初始化 ● 片级初始化:主要完成CPU 的初始化,把CPU 从上电时的缺省状态逐步设置成为系统所要求的工作状态。
嵌⼊式复习资料(精)第⼀章嵌⼊式系统基础知识1.嵌⼊式系统基础知识计算机系统的两个发展分⽀通⽤计算机与嵌⼊式计算机嵌⼊式系统的⼀般定义、IEEE定义⼀般定义:以应⽤为中⼼、以计算机技术为基础,软硬件可裁剪,应⽤系统对功能、可靠性、成本、体积、功耗和应⽤环境有特殊要求的专⽤计算机系统。
是将应⽤程序、操作系统和计算机硬件集成在⼀起的系统。
(技术⾓度)嵌⼊式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在⼀起的计算机系统。
(系统⾓度)⼴义定义:任何⼀个⾮计算机的计算系统。
IEEE(国际电⽓和电⼦⼯程师协会)定义:嵌⼊式系统是“⽤于控制、监视或者辅助操作的机器、设备或装置”。
嵌⼊式系统4个组成部分嵌⼊式微处理器、外围硬件设备、嵌⼊式操作系统、⽤户应⽤程序嵌⼊式系统的三个基本要素嵌⼊性、专⽤性、计算机系统嵌⼊式系统的软硬件特点硬件⽅⾯:稳定性、低功耗、体积受限、看门狗电路、成本低、系统资源少软件⽅⾯:实时性、可裁剪性、精简性、⼈机界⾯要求不⾼嵌⼊式系统的硬件架构以嵌⼊式处理器为中⼼,配置存储器、I/0设备、通信模块以及电源等必要的辅助接⼝组成。
嵌⼊式系统的硬件核⼼嵌⼊式微处理器嵌⼊式处理器的种类嵌⼊式微处理器、嵌⼊式微控制器、嵌⼊式DSP、嵌⼊式SOCS0CSOC是指在单芯⽚上集成数字信号处理器、微控制器、存储器、数据转换器、接⼝电路等电路模块,可以直接实现信号采集、转换、存储、处理等功能。
2.嵌⼊式系统硬件嵌⼊式微处理器的体系结构冯诺依曼结构:单⼀的程序和数据总线。
哈佛结构:独⽴的程序和数据总线。
RISC(精简指令集计算机)的概念及思想精华1979年,美国加州伯克利分校提出了RISC的概念,基本思想是尽量简化计算机指令功能,只保留那些功能简单,能在⼀个节拍内执⾏完成的指令,⽽把较复杂的功能⽤⼀段⼦程序实现。
RISC思想的精华就是通过简化计算机指令功能、简化计算机指令格式,使指令的平均执⾏周期减少,同时⼤量使⽤通⽤寄存器来提⾼计算机的⼯作主频,提⾼程序的速度。
嵌入式LINUX操作系统知识点复习1、背)嵌入式系统是以应用为中心、以计算机技术为基础、软硬件可裁剪,对功能、可靠性、成本、体积和功耗有严格要求的专用计算机系统。
2、通常把进行嵌入式系统开发的PC机称为宿主机,把嵌入式系统的机器称为H标机。
3、)在目标机上嵌入某种功能较强且占用内存较少的操作系统,用户程序在该操作系统支持下运行,这种操作系统称为嵌入式操作系统。
4、带操作系统的嵌入式系统,在编制较为复杂和高端应用程序时,用户程序会显得比较简单,而不带操作系统的嵌入式系统,在系统稳定性、实时性等方面要髙于带操作系统的, 但不太适用于编制较为复杂的用户程序。
5、目前的嵌入式操作系统主要有Linux、WindowsCE、eCos、VXWorks等几种。
6、ARM处理器是一种低功耗、高性能的32位RISC处理器。
7、在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。
8、shell脚本是一个包含一系列命令序列的文本文件。
9、X ) shell脚本编程与C语言编程的区别。
10、vi是一个Linux系统下的文本编辑器,可通过它来编写程序代码。
11、gcc是Linux下的程序编译工具,它可将C语言源程序编译链接成可执行文件。
12、gcc通过后缀来区别输入文件的类别,默认的输岀文件名为a.outo13、在Linux下,gcc进行编译链接的缺省操作是链接成动态库,要链接成静态库需要加上“-static”的参数。
14、动态库链接与静态库链接的区别。
15、gdb是Linux下的程序调试工具,它可启动被调试程序、让被调试程序在断点处停住、可检査程序状态。
16、需要用gdb调试的程序,在用gcc编译时需要加上"-g”的参数。
17、MakeFile文件描述了整个工程的编译、链接等规则,它是make文件执行时所必需的文件。
18、X )分析一个具体的MakeFile文件。
19、在Linux中的文件编程可使用系统调用和C语言库函数两种方法。
1.什么是“多道程序设计”技术?它对操作系统的形成起到什么作用?让多个计算问题同时装入一个计算机系统的主存储器并行执行;作用:提高了CPU的利用率,提高了内存和I/O设备的利用率,改变了系统的吞吐率,充分发挥系统的并发性2.什么是“原语”、“特权指令”、“系统调用命令”和“访管指令”?它们之间有无一定的联系?原语:是由若干多机器指令构成的完成某种特定功能的一段程序,具有不可分割性特权指令:指具有特殊权限的指令。
这类指令只用于操作系统或其他系统软件,一般不直接提供给用户使用。
系统调用命令:系统调用是用户程序请求操作系统为其服务的惟一形式,在UNIX中把系统调用称为程序员接口访管指令:访管指令是一条可以在目态下执行的指令,用户程序中凡是要调用操作系统功能时就安排一条访管指令。
3.操作系统是如何处理源程序中出现的系统调用命令的?编译程序总是把程序中的系统调用命令改写成一条访管指令和相应的参数。
这样在程序实际被执行时,就通过访管指令进入操作系统,达到调用操作系统功能子程序的目的4.什么是操作系统的基本功能?操作系统的基本功能包括处理机管理、存储管理、设备管理、信息管理、作业管理。
5.信号量上的P、V操作只是对信号量的值进行加1或减1操作吗?在信号量上还能够执行除P、V操作外的其他操作吗?答:根据信号量的定义可知,P、V操作并非只是对信号量进行减1或加1操作,更重要的是在减1或加1后,还要判断运算的结果。
对于P操作,判定后调用进程自己有可能继续运行,也可能阻塞等待。
对于V 操作,判定后调用进程自己最后总是继续运行,但之前可能会唤醒在信号量队列上等待的进程。
6.一个计算机有6台磁带机,有n个进程竞争使用,每个进程最多需要两台。
那么n为多少(n<=5)时,系统才不存在死锁的危险?n*(x-1)+1<=mn :进程数x:最多使用的资源数m:资源总数由于每个进程最多需要两台磁带机,考虑极端情况:每个进程已经都申请了一台。
嵌入式操作系统课程复习(嵌入式操作系统原理)一、真空题1.根据系统中的任务获得使用CPU的权力的方式,多任务实时操作系统的内核分为可剥夺型和不可剥夺型两种类型。
2.实时操作系统需要满足的条件包括多任务、可剥夺型内核、任务切换时间固定、中断延时尽量短。
3.目前比较常见的操作系统有_WinCE_、_uCLinux_、_Uc/OC-II_等。
4.在ucos-ii中任务的状态包括_睡眠状态_、就绪状态_、运行状态、中断服务状态_等。
5.在ucos-ii中任务由_任务的代码_、任务控制块_、_任务堆栈_三个部分组成。
6.在ucos-ii中提供的空闲任务OSTaskIdle()的作用是完成_对OSdleCtr计数器加1_。
7.在ucos-ii中提供的统计任务OSTaskStat()的作用是完成_CPU利用率OSCPUUsage统计。
8.在ucos-ii中任务的调度主要完成_在任务就绪表中查找具有最高优先级别的就绪任务_、实现任务的切换两件事。
二、简答题1.代码的临界段?在ucos-ii中通过哪几种方式实现?在应用程序中,能够不受任何干扰而运行的代码段,称做临界段。
它主要通过开关中断技术实现。
用户可通过定义移植文件OS_CPU.H中的常数OS_CRITICAL_METHOD 来实现选择开关中断的实现方法分三种:1)直接用处理器指令2)在堆栈中保存中断的开关状态,然后再关中断。
3)通过编译器提供的c函数来保存处理器状态字的值。
#if OS_CRITICAL_METHOD == 1#define OS_ENTE R_CRITICAL() asm ("DI") //关中断#define OS_EXIT_CRITICAL() asm ("EI") //开中断#endif#if OS_CRITICAL_METHOD == 2#define OS_ENTER_CRITICAL() asm ("PUSH PSW,DI") //保存CPU状态,关中断#define OS_EXIT_CRITICAL() asm ("POP psw) //恢复中断允许标志#endif#if OS_CRITICAL_METHOD == 3#define OS_ENTER_CRITICAL() ("cpu_sr = get_processor_psw(),DI") //保存CPU状态,关中断#define OS_EXIT_CRITICAL() ("Set_processor_psw(cpu_sr)) //恢复中断允许标志#endif2.调度?在ucos-ii中其调度算法是什么?在多任务系统中,令CPU中止当前正在运行的任务转而去运行另一个任务的工作叫任务切换,而按某种规则进行任务切换的工作叫做任务的调度。
uCOS II总是运行进入就绪态任务中优先级最高的那一个。
3.可剥夺型内核?在可剥夺型内核中,CPU总是运行多个任务中优先级别最高的那个任务,即使CPU正在运行某个低优先级别的任务,当有高优先级别的任务准备就绪时,该高级别的任务就会剥夺正在运行任务的CPU的使用权,而使自己获得CPU的使用权。
4.时钟节拍的作用及实现方式?任何计算机系统都应该有一系统时钟,UCOS的系统时钟是通过硬件定时器产生中断来实现的,这个中断会产生一个时钟中断服务程序,时钟中断服务程序也叫做节拍服务。
各个任务运行都需要一个周期性的信号指示,即每一个任务允许运行的时间片是多少,必须规定好。
这个时间片就是系统时钟节拍。
5.什么是嵌入式操作系统?其特征是?运行在嵌入式硬件平台上,对整个系统及其所操作的部件、装置等资源进行统一协调、指挥和控制的系统软件就叫做嵌入式操作系统。
其特征包括:微型化、可裁剪性、实时性、高可靠性、易移植性。
6.解释构成uc0s-ii操作系统的16个文件的所属种类及用途?(1)移植时需要修改的与处理器相关的代码1)OS_CPU.HOS_CPU.H包括了用#defines定义的与处理器相关的常量,宏和类型定义。
2)OS_CPU_A.ASMOSStartHighRdy() //启动最高优先级就绪任务运行OSCtxSw() //任务切换OSIntCtxSw() //中断级任务切换OSTickISR() //时钟节拍服务3)OS_CPU_C.C主要完成任务堆栈初始化功能OSTaskStkInit()(1)与应用程序相关代码OS_CFG.H,INCLUDES.H(3)与处理器无关的代码OS_CORE.C;OS_Q.C;OS_FLAG.C;OS_SEM.C;OS_MBOX.C;OS_TASK.C;OS_MEM.C;OS_TIME.C;OS_MUTEX.C;uCOS_II.C;uCOS_II.H三、分析程序1.完成ucos-ii主函数注释。
void main (void){OSInit(); //___初始化ucos-ii_____PC_DOSSaveReturn(); //__保存DOS环境________PC_VectSet(uCOS, OSCtxSw); //_安装任务切换中断向量____OSTaskCreate(MyTask, //__创建任务MyTask______(void*)0, //__给任务传递参数______&TaskStartStk[TASK_STK_SIZE - 1],//__设置任务堆栈栈顶指针___0); //____MyTask任务的优先级别为0_OSStart(); //___启动多任务管理_____}2.完成ucos-ii启动多任务函数OSStart()注释。
void OSStart (void){INT8U y;INT8U x;if (OSRunning == FALSE) {_ //如果操作系统未运行,则进行一次调度,既运行优先级最高的任务y = OSUnMapTbl[OSRdyGrp]; //取出优先级最高的任务所在的任务组(行)_x = OSUnMapTbl[OSRdyTbl[y]]; //取出优先级最高的任务所在任务组(行)对应的列OSPrioHighRdy = (INT8U)((y << 3) + x); //__取得就绪态的最高优先级任务的优先权_ OSPrioCur = OSPrioHighRdy; //__将OSPrioHighRdy 指向当前运行任务优先级_ OSTCBHighRdy = OSTCBPrioTbl[OSPrioHighRdy]; //_最高优先级任务所对应的任务控制块OSTCBCur = OSTCBHighRdy; //_将OSTCBHighRdy赋予当前运行的任务控制块__ OSStartHighRdy(); //__启动最高优先级任务运行____}}3.完成ucos-ii时钟节拍中断服务程序OSTickISR()示意性代码的注释。
V oid OSTickISR(void){保存CPU寄存器;调用OSIntEnter(); //进入中断函数,实现OSIntNesting加1,用于记录中断嵌套层数If(OSIntNesting==1){ OSTCBCur->OSTCBStkPtr=SP;} //在任务控制块中保存堆栈指针调用OSTimeTick(); //节拍处理,完成OSTime+1、OSTCBDly-1,使到了延时时限的非挂起//任务进入就绪状态_清除中断;开中断;调用OSIntExit(); //_退出中断函数,实现OSIntNesting-1,并进行中断级任务切换_恢复CPU寄存器;中断返回;}四、计算题(共10分)已知某一已经就绪任务的优先级prio=30,试计算应该在就绪表的哪一位上置1。
答:30的二进制形式为0001.1110,低6位为011,110,于是可知应该在OSRdyTbl[3]的D6位上置1,同时把变量OSRdyGrp的D3位置1。
五、编程题写出任务级调度器OSSched()的核心代码,其中包括任务级切换OSCtxSw()的示意性代码。
(1)任务级调度器OSSched()主要代码如下:void OSSched(void){ INT8U y;OS_ENTER_CRITICAL();if ((OSLookNesting|OSIntNesting)==0){ y=OSUnMapTbl[OSRdyGrp];OSPrioHighRdy=(INT8U)((y<<3)+UnMapTbl[OSRdyTbl[y]]);//获取最高优先级任务if (OSPrioHighRdy!=OSPrioCur){ OSTCBHighRdy=OSTCBPrioTbl[OSPrioHighRdy];//获得任务控制块指针OSCtxSwCtr++; //统计任务切换次数计数器加1OS_TASK_SW(); //执行任务切换宏}}}(2)任务级切换OSCtxSw()的示意性代码void OSCtxSw(void){用压栈指令把CPU通用寄存器R1、R2、……压入堆栈;OSTCBCur->OSTCBStkPtr=SP;在中止任务控制块中保存SPOSTCBCur=OSTCBHighRdy; //任务控制块切换OSPrioCur=OSPrioHighRdy; //任务优先权切换SP=OSTCBHighRdy->OSTCBStkPtr; //使SP指向待运行任务堆栈用出栈指令把R1、R2….弹入CPU通用寄存器RETI; //中断返回,使PC指向待运行任务}。