《嵌入式实时操作系统复习资料》_第1页
《嵌入式实时操作系统复习资料》_第2页
《嵌入式实时操作系统复习资料》_第3页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、填空题(请将答案填入题后括号中):共10小题,每小题2分,满分20分。1、一般而言,嵌入式系统的构架可以分为4个部分:分别是(处理器)、存储器 输入/输出和软件,一般软件亦分为操作系统相关和(应用软件)两个主要部分。2、根据嵌入式系统使用的微处理器,可以将嵌入式系统分为嵌入式微控制器,(嵌入式微处理器)(嵌入式DSP处理器)以及片上系统。3、操作系统是联接硬件与应用程序的系统程序,其基本功能有(任务管理)、任务间通信、( 内存管理)和I/O资源管理。4 实时系统:指系统能够在限定的(响应)时间内提供所需水平的服务5. ucos-ii 最多管理(64 )个任务6. ucos-ii 中,OS_

2、TaskStat任务的优先级占(62 ) , OS_Taskldle任务的优先级是 (63 )7 ucos-ii 中,OSRdyTbl就绪表的大小是由宏定义:OS_RDY_TBL_SIZ来定义,由全局宏(OS_LOWEST_PRIO 来决定的,& TCB 中的四个成员变量:INT8U OSTCBX INT8U OSTCBY INT8U OSTCBBitX; INT8U OSTCBBitY ,用于(加速)任务就绪态的计算过程。9. TCB内部最重要的元素放在第一个单元叫(OSTCBStkPtr),因此,这个变量是惟个能用汇编语言处置的变量,将其放在结构最前面,使得在汇编语言中处理这个变量

3、时较为容易。10 . uC/OS-II是一个简洁、易用的基于优先级的嵌入式(抢占式)多任务实时内核。11 .任务是一个无返回的无穷循环。uc/os-ii总是运行进入就绪状态的(最高优先级)的任务。12. 因为uc/os-ii总是运行进入就绪状态的最高优先级的任务。所以,确定哪个任务优先级最高,下面该哪个任务运行,这个工 作就是由调度器(scheduler来完成的。13. (不可剥夺型)内核要求每个任务自我放弃CPU的所有权。不可剥夺型调度法也称作合作型多任务,各个任务彼此合作共享一个CPU14. 当系统响应时间很重要时,要使用(可剥夺型)内核。最高优先级的任务一旦就绪, 总能得到CPU的控制权

4、。15. (可重入型)函数是可以被一个以上的任务调用,而不必担心数据的破坏。16. 每个任务都有其优先级。任务越重要,赋予的优先级应(越高)。17. 卩C/OSH初始化是通过调用系统函数(OSlint()实现的,完成卩C/OS- n所有的变量 和数据结构的初始化。18 .多任务的启动是用户通过调用(OSStartO )实现的。然而,启动 卩C/OS- n之前,用户至少要建立一个(任务)。19. 删除任务,是说任务将返回并处于(休 眠状态),并不是说任务的代码被删除了,只是任务的代码不再被卩/os- n调用。20. 卩c/osn要求用户提供( 定时中断)来实现延时与超时控制等功能。21. 卩c/

5、osn中,定时中断也叫做(时钟节拍),在低速系统中,它应该每秒发生10至100 次。OSTaskCtr )。 OSR unning )。22. 时钟节拍的实际频率是由用户的应用程序决定的。时钟节拍的频率越高,系统的负荷 就(越重)。23. 卩C/OSI中表示当前已经创建的任务数全局变量名为:(24. 卩C/OSI中表示当前内核运行的标记全局变量名为:(25. 卩C/OSI操作系统使用 OSSchedLock()函数和OSSchedUnlock()函数进行锁定(不允许任务级调度)和解锁(重新允许任务级调度)调度器,在用户应用程序中,OSSchedLock() 和OSSchedUnlock()必须

6、是(成对出现的)。否则,有可能出错。二、选择题(请将答案填入题后括号中):共10小题,每小题2分,满分20分。1、要使 卩C/OSI能够正常工作,下列哪个条件不是处理器必须满足的。(D )(A) 处理器的编译器能够产生可重入代码(B) 在程序中可以找开或者关闭中断(C) 处理器支持中断,并且能产生定时中断(D) 有大量的存储空间2、下面哪种操作系统最方便移植到嵌入式设备中。( D )(A) DOS(B) UNIX(C) Windows xp(D) LINUX3、下面哪个选项不是 USB设备的特点。(B )(A)串行通信方式(B)不可热拨插(C)分 HOST DEVICE和 HUB ( D)通信

7、速率比 RS232快4、下面哪种嵌入式操作系统很少用于手机终端设备上。(C )(A) Symbian(B) WINCE(C) uc/os(D) LINUX5、 以下哪项关于 SRAM和 DRAM的区别是不对。(A)(A)SRAM 比 DRAM慢( B) SRAIU匕 DRAM耗 电多(C)DRAM存储密度比SRAM高得多 (D) DRAM需要周期性刷新6、UCOS5包含哪些状态(A)运行 (B) 挂起(C) 退出(D)休眠7、0X07 & 0X11的运算结果是。(A)(A)0X01(B) 0X11(C)0X17(D) 0X078、以下哪种方式不是 UC/OS操作系统中任务之间通信方式。

8、(C )(A)信 号量 (B)消息队列(C)邮件(D)邮箱9、 以下哪种方式不是文件系统的格式。(B )(A) F AT( B)DOS(C) NTFS( D)EXT10、在将UC/OS操作系统移植到 ARM处理器上时,以下哪些文件不需要修改。(A )(A)OS_CORE.C ( B)INCLUDE.H(C)OS_CPU.H( D)OSTASKINIT三、简答题:共2小题,每小题10分,满分20分。1、根据嵌入式系统的特点,写出嵌入式系统的定义。答:以应用为中心,以计算机技术为基础,软硬件可裁减,功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。2、试分析实时操作系统的工作状态特点及相互之

9、间的转换。运行:获得CPU控制权就绪:进入任务等待队列,通过调度中转为运行状态挂起:任务发生阻塞,出任务等待队列,等待系统实时事件的发生而被唤醒从而转为就绪或者运行休眠:任务完成或者错误等原因被清除的任务,也可以认为是系统中不存在任务2、试写抢占式和非抢占式的区别。答:执行的过程中对中断处理方式不一样,抢占式:某一中断执行完成后,如果有更高优先级的任务处于就绪状态,将执行更高优先级任务,而非抢占式不一样,一个任务只有主动放弃CPU的控制权,其它任务才能够获得CPU控制权。4、 从嵌入式系统底层到上层应用软件,试分析嵌入式计算系统的组成主要分为哪几个部分, 并写出各部分所完成的功能。答:(1)硬

10、件层(2)中间层(嵌入式系统初始化,硬件相关的驱动程序)(3) 软件层(操作系统。文件系统。GUI,网络及通用组件)(4)功能层5、专业 名 词解释(写出以下英文简写对应的中文名称及解释(1)RTOS :实时操作系统(2)CISC :复杂指令集(3)Kernel :内核(4)Scheduler :调度(5)non-preemptive: 非抢占式6 就绪表中完整的数据结构描述答:就绪表中有 2个变量,OSRdyGrp和OSRdyTbl 。OSRdyGrp中任务按优先级分组, 8个任务为一组。OSRdyGrp的每一位表示8组任务中每一组是否有进入就绪态的任务。任 务进入就绪态时,就绪表OSRdy

11、Tbl中相应的元素的相应位被置 1。7、什么是任务上下文切换时间?任务上下文切换时间受哪些因素的影响?答:在多任务操作系统中,任务上下文切换指 CPU的控制权由当前运行的任务转移到另外一个就绪任务这一过程。这个阶段所花费的时间中,保存退出运行的任务的上下文所花费的时间与恢复将投入运行的任务的上下文所花费的时间主要取决于处理器的速度和任务上下文的数量。处理器 的速度高,任务上下文少,保存和恢复上下文所花费的时间就短,反之保存和恢复上下文所 花费的时间就长。选择将投入运行的任务所花费的时间则主要取决于操作系统的调度程序所 采用的任务选择算法。3. 描述建立任务 OSTaskCreate()的函数原

12、型。答:建立任务OSTaskCreate()的函数原型为:INT8U OSTaskCreate (void (*task)(void *pd), void *pdata, OS_STK *ptos, INT8U prio)其中,task:任务代码的指针;pdata:当任务开始执行时传递给任务的参数的指针;ptos:分配给任务的堆栈的栈顶指针;prio:分配给任务的优先级。2.简述uC/OS-ll的任务框架答:void task_xxx(void *pData) -/*该任务的初始化工作*/*进入该任务的死循环*/while(1)四、编程题1. 举例说明COS-I I可移植型数据类型的定义方式答

13、:因为不同的微处理器有不同的字长,uC/OS-ll的移植文件包括很多类型定义以确保可移植性。(iCO S-1 I不使用C语言中的short,int,long等数据类型的定义,因为它们与处 理器类型有关,隐含着不可移植性。Q/OS-II代之以移植性强的整数数据类型,这样,既直观又可移植(该数据类型不依赖于编译),举例如下:typedefun sig nedcharBOOLEAN;typedefun sig nedchar INT8U;typedef sig nedcharINT8S;typedef un sig ned int INT16U;typedefsignedint IN T 1 6S;

14、typedef un sig ned long INT32U; typedefsig nedlong INT32S;2. 试写出OSStartHighRdy()函数的示意代码void OSStartHighRdy() 调用用户定义的 OSTaskSwHook();OSR uning = TRUE;得到将要恢复运行任务的堆栈指针:Stack poi nter = OSTCBHighRdy->OSTCBStkPtr;从新任务堆栈中恢复处理器的所有寄存器;执行中断返回指令;2. 试写出函数OSCtxSw()的示意性代码:void OSCtxSw()保存处理器寄存器;在当前任务的任务控制块中保存

15、当前任务的堆栈指针OSTCBCur->OSTCBStkPtr = stack poi nter; OSTaskSwHook();OSTCBCur=OSTCBHighRdy; OSPrioCur=OSPrioHighRdy;得到将要开始运行的任务的堆栈指针:Stack poi nter = OSTCBHighRdy->OSTCBStkPtr;从新任务的任务堆栈中恢复处理器所有寄存器的值;执行中断返回指令;3、试写出函数OSIntCtxSw()函数的示意性代码:void OSIn tCtxSw()调用用户定义的OSTackSwHook();OSTCBCur=OSTCBHighRdy;

16、OSPrioCur=OSPrioHighRdy;得到将要重新执行的任务的堆栈指针:Stackpoi nter= OSTCBHighRdy->OSTCBStkPtr;从新任务堆栈中恢复所有寄存器;执行中断返回指令;4、试写出函数 OSTicklSR()函数的示意性代码:void OSTickISR()保存处理器寄存器;调用 OSInitEnter()或者 OSInitNesting 力口 1;if(OSI ni tNest ing =1)OSTCBCur->OSTCBStkPtr=stack poi nter;给产生中断的设备清中断;重新允许中断;OSTimeTick();OSI ni tExit();恢复处理器寄存器;执行中断返回指令;5、编写使任务进入就绪态代码:OSRdyGrp |=OSMapTblprio>>3;OSRd

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论