ucos-ii操作系统习题(嵌入式方向)

合集下载

ucos-ii嵌入式操作系统复习选择题

ucos-ii嵌入式操作系统复习选择题

01、删除任务,是说任务将返回并处于(),任务的代码不再被µC/OS-II调用。

【A】休眠状态【B】等待状态【C】就绪态【D】中断状态02、任务一旦建立,这个任务就进入了()【A】睡眠状态【B】等待状态【C】就绪态【D】运行态03、µC/OS-II中,下列哪个系统函数不能够引起任务调度()【A】OSStart()【B】OS_TASK_SW()【C】OSTaskSuspend()【D】OSTaskResume()04、任务是一个无返回的无穷循环,µC/OS-II总是进入就绪态的()的任务【A】最高优先级【B】最低优先级【C】第二高优先级【D】任意优先级05、ANSI C中,可以用malloc()和free()两个函数动态地分配和释放内存,下面关于这两个函数,说法正确的是()【A】嵌入式实时操作系统中,调用这两个函数却是安全的【B】多次调用这两个函数,不会产生大量内存碎片【C】malloc()和free()函数的执行时间是确定的【D】可能使得内存无法再分配使用06、以下哪个部分不属于µC/OS-II的任务的组成部分()【A】函数【B】任务堆栈【C】任务控制块【D】线程07、当___时由运行状态转为就绪状态?()【A】任务的CPU使用权被剥夺【B】等待某一事件的运行【C】任务获得了CPU的使用权【D】任务响应中断申请08、μCOS-II操作系统不属于()。

【A】RTOS【B】抢占式实时操作系统【C】分时操作系统【D】嵌入式实时操作系统09、对于μCOS-II操作系统,以下说法不正确的是()【A】任务可以有类型说明【B】任务可以返回一个数值【C】任务可以有形参变量【D】任务是一个无限循环10、在μC/OS-II系统中,OSTimeTick()函数只被以下()函数或过程所调用。

【A】OSTickISR【B】OSShed【C】OSCtxSw【D】OSIntCtxSw11、下面临界区概念论述正确的是()【A】临界区是指进程中用于实现进程互斥的那段程序代码【B】临界区是指进程中用于实现进程同步的那段程序代码【C】临界区是指进程中用于实现进程通信的那段程序代码【D】临界区是指进程中用于访问临界资源的那段程序代码12、多道程序设计是指()。

嵌入式考试题库及答案

嵌入式考试题库及答案

嵌入式考试题库及答案一、单项选择题(每题2分,共20分)1. 在嵌入式系统中,通常采用哪种类型的处理器?A. 通用处理器B. 精简指令集处理器(RISC)C. 复杂指令集处理器(CISC)D. 专用处理器答案:B2. 以下哪个不是嵌入式系统的典型特点?A. 实时性B. 可扩展性C. 资源受限D. 专用性答案:B3. 在嵌入式系统中,以下哪个不是常用的存储介质?A. ROMB. RAMC. 硬盘D. Flash答案:C4. 嵌入式操作系统与通用操作系统的主要区别是什么?A. 嵌入式操作系统更复杂B. 嵌入式操作系统更简单,资源占用少C. 嵌入式操作系统价格更高D. 嵌入式操作系统运行速度更快答案:B5. 以下哪个不是嵌入式系统的应用领域?A. 消费电子B. 工业控制C. 航空航天D. 办公自动化答案:D6. 在嵌入式系统中,通常使用哪种类型的编程语言?A. 汇编语言B. 高级语言C. 机器语言D. 以上都是答案:D7. 以下哪个不是嵌入式系统的开发工具?A. 编译器B. 调试器C. 项目管理软件D. 文字处理软件答案:D8. 在嵌入式系统中,以下哪个不是常用的通信协议?A. TCP/IPB. USARTC. I2CD. USB答案:D9. 嵌入式系统的功耗通常与什么因素有关?A. 处理器速度B. 存储容量C. 系统复杂度D. 以上都是答案:D10. 以下哪个不是嵌入式系统的开发流程?A. 需求分析B. 系统设计C. 编码实现D. 产品发布答案:D二、多项选择题(每题3分,共15分)1. 嵌入式系统的开发过程中,以下哪些是必须考虑的因素?A. 系统性能B. 成本控制C. 系统安全性D. 用户体验答案:ABCD2. 在嵌入式系统中,以下哪些是常见的输入设备?A. 触摸屏B. 键盘C. 鼠标D. 传感器答案:ABD3. 以下哪些是嵌入式系统开发中常用的软件工具?A. 集成开发环境(IDE)B. 版本控制系统C. 项目管理工具D. 数据库管理系统答案:ABC4. 在嵌入式系统中,以下哪些是常见的输出设备?A. 显示器B. 扬声器C. 打印机D. LED灯答案:ABD5. 嵌入式系统的测试通常包括哪些方面?A. 功能测试B. 性能测试C. 安全性测试D. 稳定性测试答案:ABCD三、填空题(每题2分,共20分)1. 嵌入式系统通常由、、和四个部分组成。

嵌入式系统开发测试题(含答案)

嵌入式系统开发测试题(含答案)

嵌入式系统开发测试题(含答案)一、单选题(共100题,每题1分,共100分)1、Make预置了一些内部宏,其中$@表示A、以上都不是B、没有扩展名的当前目标文件C、当前目标文件最近更新的文件名正确答案:A2、关于U-Boot,下列说法错误的是()A、支持的处理器有ARM、MNPSB、是遵循GPL条款的开放源码项目C、支持的操作系统有LINUX、QNX正确答案:A3、Makefile是()A、调试器B、编辑器C、项目管理器正确答案:C4、C语言文件预处理生成哪个后缀的文件A、iB、SC、o正确答案:A5、直接编译进内核,又称()。

A、下载文件B、静态连接C、动态连接正确答案:B6、实时在线仿真是一种用于替代目标上()的设备A、CPUB、GPUC、NOU正确答案:A7、GDB软件是()。

A、调试器B、编译器C、文本编辑器正确答案:A8、嵌入式系统设计的重要特点是()多样化A、技术B、应用C、操作正确答案:A9、ARM的工作模式有?A、非特权模式和特权模式B、特权模式C、非特权模式正确答案:A10、嵌入式操作系统的特点不包括()。

A、有一定的实时性B、强交互性C、可裁剪正确答案:B11、TCP/IP参考模型不包括()A、表示层B、应用层C、传输层正确答案:A12、Linux内核的功能不包含下面哪种()A、处理机管理B、内存管理C、进程管理正确答案:A13、下列CPSR寄存器标志位的作用说法错误的是A、V:借位B、C:进位C、Z:零正确答案:A14、()显示屏是利用有机电致发光二极管制成的显示屏。

A、OLEDB、ABCDC、EFGH正确答案:A15、动态链接是指程序运行时需要调用共享库文件,其后缀为()A、aB、cC、so正确答案:C16、MCU偏重于()A、信号处理B、控制正确答案:B17、()是指:在宿主机上进行软件编辑、编译、链接等,并生成能够在目标机上运行的可执行程序的过程。

A、交叉编辑B、交叉开发C、交叉编译正确答案:C18、Flash程序烧写时,需准备好的软件不包括()。

嵌入式系统UCOS2学习

嵌入式系统UCOS2学习

嵌入式系统UCOS2学习/s/blog_5f0bed160100tqnv.html20113、非空闲任务控制块双向链表ucos-II的任务状态l 睡眠态(Dormant):指任务驻留在程序空间之中,还没有交给μC/OS-Ⅱ管理。

把任务交给μC/OS-Ⅱ是通过调用下述两个函数之一:OSTaskCreate()或OSTaskCreateExt()。

一个任务可以通过调用OSTaskDel()返回到睡眠态,或通过调用该函数让另一个任务进入睡眠态。

l 就绪态:当任务一旦建立,这个任务就进入就绪态准备运行。

l 运行态:调用OSStart()可以启动多任务。

OSStart()函数运行进入就绪态的优先级最高的任务。

就绪的任务只有当所有优先级高于这个任务的任务转为等待状态,或者是被删除了,才能进入运行态。

l 等待状态:正在运行的任务可以通过调用两个函数之一将自身延迟一段时间,这两个函数是OSTimeDly()或OSTimeDlyHMSM()。

这个任务于是进入等待状态。

正在运行的任务期待某一事件的发生时也要等待,手段是调用以下几个函数之一:OSFlagPend()、OSSemPend()、OSMutexPend()、OSMboxPend(),或OSQPend()。

如果某事件未发生,调用后任务进入了等待状态(WAITING)。

l 中断服务态:正在运行的任务是可以被中断的,除非该任务将中断关了,或者μC/OS-Ⅱ将中断关了。

被中断了的任务就进入了中断服务态(ISR)。

任务控制块TCB的管理1、任务块数组定义(OS_EXT OS_TCB OSTCBTbl[OS_MAX_TASKS+OS_N_SYS_TASKS];)应用程序中可以有的最多任务数(OS_MAX_TASKS)是在文件OS_CFG.H中定义的。

这个最多任务数也是μC/OS-Ⅱ分配给用户程序的最多任务控制块OS_TCBs的数目。

将OS_MAX_TASKS的数目设置为用户应用程序实际需要的任务数可以减小RAM的需求量。

嵌入式实时操作系统ucos期末考试题

嵌入式实时操作系统ucos期末考试题

一、名词解释:1、OS:操作系统2、MCU:微控制器3、ISR:中断服务子程序4、FIFO:先进先出5、TCB:Task Control Block,任务控制块6、API:应用程序接口7、RTOS:实时操作系统8、UART:通用异步收发传输器9、MMU:内存管理单元10、JTAG:边界调试接口二、填空题1、( 优先级抢占和时间片轮转)是一种运行时间一到就剥夺进程处理器使用权的剥夺式调度。

2、实时系统的两个基本要求:( 逻辑或功能正确)、时间正确。

所谓时间正确是指(实时系统的计算必须在预定的时间内完成)。

3、临界区是指( 处理时不可分割的代码、每个进程中访问临界资源的那段程序)4、UCOS调用系统延时最小时间单位( 毫秒)5、UCOS配置文件中OS_TICKS_PER_SEC的数值定义为32,含义是(时钟频率为32 hz)6如果某一个任务不是必须的监控任务,我们一般采用( 动态内存管理)的机制来创建该任务所需要的变量内存空间,要想能使用这种机制,必须首先将内存交给(操作系统)来统一管理7、如果系统中某一个资源属于独占资源,n个任务都需要使用,标准的做法是使用(互斥信号量)来解决8、在UCOS中,优先级用一个数字表示,数字越大表示任务的优先级别越(低)9、优先级调度的( 任务就绪表)标志进程抢占处理器的权利大小。

10、(任务控制块)主要用来记录任务的堆栈指针,任务的当前状态,任务的优先级别等一些与任务管理有关的属性的表。

11、临界区是指( 保证共享资源的完整性和可靠性的代码段)。

12、可重入指的是(是一段代码(如一个函数)可以被多个任务同时调用,而不必担心会破坏数据)。

13、某事件周期不确定,持续时间较短,处理容忍度较长,通常我们采取在(任务就绪表)中发现该事件,在(任务调度)中处理该事件。

14、如果系统中有2个资源,n个任务都需要使用,标准的做法是使用(互斥信号量)来解决。

15、在UCOS中,最低优先级自动赋给( 空闲任务)这个系统任务。

11嵌入式系统试题附答案

11嵌入式系统试题附答案

一、选择题1、以下说法不正确的是( B )。

A、任务可以有类型说明B、任务可以返回一个数值C、任务可以有形参变量D、任务是一个无限循环2 下列描述不属于RISC 计算机的特点的是(C)。

A.流水线每周期前进一步。

B.更多通用寄存器。

C.指令长度不固定,执行需要多个周期。

D.独立的Load和Store指令完成数据在寄存器和外部存储器之间的传输。

3 存储一个32位数0x2168465到2000H~2003H四个字节单元中,若以大端模式存储,2000H 则存储单元的内容为( D )。

A 、 0x21B、 0x68C、 0x65D、 0x024 ?COS-II中对关键代码段由于希望在执行的过程中不被中断干扰,通常采用关中断的方式,以下X86汇编代码正确而且不会改变关中断之前的中断开关状态的是(D)A. 先 CLI 、执行关键代码、再STIB. 先 STI 、执行关键代码、再CLIC.先 POPF、 CLI 、执行关键代码、再 PUSHFD.先 PUSHF、 CLI 、执行关键代码、再 POPF。

5 RS232-C串口通信中,表示逻辑1的电平是(D)。

A 、 0vB、 3.3vC、+ 5v~+ 15vD、- 5v~- 15v6 ARM 汇编语句“ ADD R0, R2, R3, LSL#1”的作用是(A)。

A.R0=R2+(R3<<1)B. R0 =( R2<< 1) + R3C. R3= R0+ (R2 << 1)D. (R3 << 1)= R0+ R27 IRQ中断的入口地址是( C )。

FIQ 的入口地址为0x0000001CA、 0x00000000B 、 0x00000008C、 0x00000018D、 0x000000148 S3C2420X I/O口常用的控制器是(D)。

A、端口控制寄存器(GPACON-GPHCON)。

B 、端口数据寄存器(GPADAT-GPHDAT)。

嵌入式习题集(含答案)

嵌入式习题集(含答案)

1、 ARM 微处理器有 7种工作模式,它们分为两类 非特权模式 、 特权模式 。

其中用户模式属于 非特权模式ARM 处理器有两种总线架构,数据和指令使用同一接口的是 冯诺依曼 ,数据和指令分开使用不同接口的是 哈佛结4、 ARM 微处理器复位后,PC 的地址通常是 0x0 ,初始的工作模式是Supervisor 。

5、 编译链接代码时,有两种存储代码和数据的字节顺序,一种是 小端对齐 ,另一种是大端对齐计算机有CISC 和RISC 两种类型,以ARM 微处理器为核心的计算机属于 RISC 类型,其指令长度是 定长的1、 目前使用的嵌入式操作系统主要有哪些?请举出六种较常用的。

Windows CE/Windows Mobile 、VxWork 、Linux 、uCos 、Symbian 、QNX 任选六2、ARM 系统中的堆栈有四种,如下图。

请按图标出四种堆栈的类型。

A TPCS 编程规范约定使用的堆栈是哪一种?答:FD 、FA 、ED 、EA 。

A TPCS 编程规范约定使用的堆栈是FD3、Boot Loader 在嵌入式系统中主要起什么作用?完成哪些主要的工作?答:Boot Loader 是在嵌入式系统复位启动时,操作系统内核运行前,执行的一段程序。

通过Boot Loader ,初始化硬件设备,建立内存和I/O 空间映射图,为最终加载操作系统内核调整好适当的系统软硬件环境。

4、搭建嵌入式开发环境,连接目标板,一般使用什么通信接口连接?在Windows 主机上使用什么软件建立连接?在Linux 主机上使用什么软件建立连接?1、 答:RS-232,以太网口、并口在Windows 主机上使用超级终端软件在Linux 主机上使用Minicom 软件5嵌入式开发环境主要包括哪些组件?嵌入式系统开发需要交叉编译和在线调试的开发环境,主要包括● 宿主机● 目标机(评估电路板)● 基于JTAG 的ICD 仿真器、或调试监控软件、或在线仿真器ICE● 运行于宿主机的交叉编译器和链接器、以及开发工具链或软件开发环境● 嵌入式操作系统7 目前使用的嵌入式操作系统主要有哪些?请举出六种较常用的。

嵌入式实时操作系统题库1

嵌入式实时操作系统题库1

嵌入式实时操作系统题库一、填空题1. uC/OS-II是一个简洁、易用的基于优先级的嵌入式(抢占式)多任务实时内核。

2.任务是一个无返回的无穷循环。

uc/os-ii总是运行进入就绪状态的(最高优先级)的任务。

3.因为uc/os-ii总是运行进入就绪状态的最高优先级的任务。

所以,确定哪个任务优先级最高,下面该哪个任务运行,这个工作就是由(调度器(scheduler))来完成的。

4.(任务级)的调度是由函数OSSched()完成的,而(中断级)的调度是由函数OSIntExt() 完成。

对于OSSched(),它内部调用的是(OS_TASK_SW())完成实际的调度;OSIntExt()内部调用的是(OSCtxSw())实现调度。

5.任务切换其实很简单,由如下2步完成:(1)将被挂起任务的处理器寄存器推入自己的(任务堆栈)。

(2)然后将进入就绪状态的最高优先级的任务的寄存器值从堆栈中恢复到(寄存器)中。

6.任务的5种状态。

(睡眠态(task dormat)):任务驻留于程序空间(rom或ram)中,暂时没交给ucos-ii处理。

(就绪态(task ready)):任务一旦建立,这个任务就进入了就绪态。

(运行态(task running)):调用OSStart()可以启动多任务。

OSStart()函数只能调用一次,一旦调用,系统将运行进入就绪态并且优先级最高的任务。

(等待状态(task waiting)):正在运行的任务,通过延迟函数或pend(挂起)相关函数后,将进入等待状态。

(中断状态(ISR running)):正在运行的任务是可以被中断的,除非该任务将中断关闭或者ucos-ii将中断关闭。

7.(不可剥夺型)内核要求每个任务自我放弃CPU的所有权。

不可剥夺型调度法也称作合作型多任务,各个任务彼此合作共享一个CPU。

8.当系统响应时间很重要时,要使用(可剥夺型)内核。

最高优先级的任务一旦就绪,总能得到CPU的控制权。

嵌入式实时操作系统μCOSII原理及应用习题答案(第四版)

嵌入式实时操作系统μCOSII原理及应用习题答案(第四版)

第一章1.什么是计算机的操作系统?它应具备什么功能?操作系统:操作系统是控制其他程序运行,管理系统资源并为用户提供操作界面的系统软件的集合。

功能:计算机资源的管理,包括处理器管理、存储器存储空间管理、外部输入输出(/o)设备管理、文件管理、网络和通信管理、提供用户接口。

2.简述嵌入式系统与普通操作系统的区别。

嵌入到对象体系中,为实现对象体系智能化控制的计算机系统,简称嵌入式系统。

嵌入式系统应具有的特点是:高可靠性;在恶劣的环境或突然断电的情况下,系统仍然能够正常工作;许多嵌入式应用要求实时性,这就要求嵌入式操作系统具有实时处理能力;嵌入式系统和具体应用有机地结合在一起,它的升级换代也是具体产品同步进行;嵌入式系统中的软件代码要求高质量、高可靠性,一般都固化在只读存储器中或闪存中,也就是说软件要求固态化存储,而不是存储在磁盘等载体中。

4.什么是实时系统?如果一个系统能及时响应外部事件的请求,并能在规定的时间内完成对事件的处理,这种系统称为实时系统。

第二章1.什么是可剥夺型内核?可剥夺型内核采用与不可剥夺型不同的调度策略,最高优先级的任务一旦就绪,就能获得CPU的控制权而得以运行,不管当前运行的任务处于何种状态。

可剥夺型内核采用的抢占式的调度策略,总是让优先级最高的任务运行,直到其阻塞或任务完成,响应时间因此优化。

2.一个应用程序为什么一定要使用空闲任务?在多任务系统运行时,系统经常会在某个时间内无用户任务运行而处于空闲状态,为了使CPU在此时有事可作,uC/OS-提供了空闲任务OSTaskldle。

空闲任务是不能被软件删除的。

3.统计任务是必须使用的吗?用户应用程序可根据实际需要来选择是否使用统计任务。

其功能是每秒计算一次CPU在单位时间内被使用的时间,并把计算结果以百分比的形式存放在变量OSCPUsage中,以便应用程序通过访问它来了解CPU的利用率。

4.什么是任务的优先权?UC/oS-ll是用什么来描述任务的优先权的。

嵌入式实时操作系统ucos期末考试题

嵌入式实时操作系统ucos期末考试题

:一、名词解释:1、OS:操作系统2、MCU:微控制器3、ISR:中断服务子程序4、FIFO:先进先出5、TCB:Task Control Block,任务控制块6、API:应用程序接口7、RTOS:实时操作系统;8、UART:通用异步收发传输器9、MMU:内存管理单元10、JTAG:边界调试接口二、填空题1、( 优先级抢占和时间片轮转)是一种运行时间一到就剥夺进程处理器使用权的剥夺式调度。

2、实时系统的两个基本要求:( 逻辑或功能正确)、时间正确。

所谓时间正确是指(实时系统的计算必须在预定的时间内完成)。

3、临界区是指( 处理时不可分割的代码、每个进程中访问临界资源的那段程序);4、UCOS调用系统延时最小时间单位( 毫秒)5、UCOS配置文件中OS_TICKS_PER_SEC的数值定义为32,含义是(时钟频率为32 hz)6如果某一个任务不是必须的监控任务,我们一般采用( 动态内存管理)的机制来创建该任务所需要的变量内存空间,要想能使用这种机制,必须首先将内存交给(操作系统)来统一管理7、如果系统中某一个资源属于独占资源,n个任务都需要使用,标准的做法是使用(互斥信号量)来解决8、在UCOS中,优先级用一个数字表示,数字越大表示任务的优先级别越(低)9、优先级调度的( 任务就绪表)标志进程抢占处理器的权利大小。

10、(任务控制块)主要用来记录任务的堆栈指针,任务的当前状态,任务的优先级别等一些与任务管理有关的属性的表。

11、临界区是指( 保证共享资源的完整性和可靠性的代码段)。

~12、可重入指的是(是一段代码(如一个函数)可以被多个任务同时调用,而不必担心会破坏数据)。

13、某事件周期不确定,持续时间较短,处理容忍度较长,通常我们采取在(任务就绪表)中发现该事件,在(任务调度)中处理该事件。

14、如果系统中有2个资源,n个任务都需要使用,标准的做法是使用(互斥信号量)来解决。

15、在UCOS中,最低优先级自动赋给( 空闲任务)这个系统任务。

嵌入式实时操作系统μCOSII原理及应用习题答案(第四版)

嵌入式实时操作系统μCOSII原理及应用习题答案(第四版)

嵌入式实时操作系统μCOSII原理及应用习题答案(第四版)嵌入式实时操作系统μCOSII原理及应用习题答案(第四版)嵌入式操作系统是一种特殊的操作系统,用于控制和管理嵌入式系统。

实时操作系统(RTOS)是一种在给定的时间约束下,能够及时响应外部事件的操作系统。

μC/OS-II是一种广泛应用于嵌入式系统的实时操作系统。

本文将介绍μC/OS-II的原理及应用,并提供第四版的习题答案。

一、μC/OS-II原理1. 任务(Task)管理:μC/OS-II采用优先级抢占式调度算法,支持多任务。

每个任务具有自己的任务控制块(TCB),用于记录任务的状态、优先级、堆栈等信息。

任务之间可以通过任务切换进行调度,具有不同的优先级来确保系统的实时性。

2. 信号量(Semaphore)机制:信号量用于任务之间的同步和互斥操作。

μC/OS-II提供了两种信号量机制:二值信号量和计数信号量。

二值信号量用于任务之间的互斥操作,而计数信号量用于任务之间的同步操作。

3. 事件标志组(Event Flag Group)机制:事件标志组用于任务之间的同步和通信操作。

一个事件标志组中可以包含多个事件标志位,每个标志位都可以独立设置或清除。

任务可以等待一个或多个事件标志位的发生,并在发生时得到通知。

4. 消息邮箱(Mailbox)机制:消息邮箱用于任务之间的通信。

每个消息邮箱中可以存放一个或多个消息,任务可以通过发送和接收消息来进行通信。

消息邮箱还支持阻塞和非阻塞两种方式。

5. 定时器(Timer)管理:μC/OS-II提供了软件定时器的功能,可以设置定时器来触发任务或其他操作。

定时器可以基于时间片、滴答定时器或硬件定时器实现。

二、μC/OS-II应用1. 实时任务调度:μC/OS-II可以在多个任务之间进行优先级调度,保证任务的及时执行。

通过设置任务的优先级和时间片,可以确保高优先级任务优先执行,从而满足实时性要求。

同时,μC/OS-II还提供了任务切换和上下文切换机制,确保任务之间的切换及时有效。

第10章 嵌入式实时操作系统UCOS-II(第2版)

第10章 嵌入式实时操作系统UCOS-II(第2版)

第10章从µC/OS 升级到µC/OS-II本章描述如何从µC/OS 升级到µC/OS-II。

如果已经将µC/OS移植到了某类微处理器上,移植µC/OS-II所要做的工作应当非常有限。

在多数情况下,用户能够在1个小时之内完成这项工作。

如果用户熟悉µC/OS的移植,可隔过本章前一部分直接参阅10.05节。

10.0 目录和文件用户首先会注意到的是目录的结构,主目录不再叫\SOFTWARE\uCOS。

而是叫\SOFTWARE\uCOS-II。

所有的µC/OS-II文件都应放在用户硬盘的\SOFTWARE\uCOS-II目录下。

面向不同的微处理器或微处理器的源代码一定是在以下两个或三个文件中:OS_CPU.H, OS_CPU_C.C,或许还有OS_CPU_A.ASM.。

汇编语言文件是可有可无的,因为有些C编译程序允许使用在线汇编代码,用户可以将这些汇编代码直接写在OS_CPU_C.C.中。

与微处理器有关的特殊代码,即与移植有关的代码,在µC/OS 中是放在用微处理器名字命名的文件中的,例如,Intel 80x86的实模式(Real Mode),在大模式下编译(Large Modle)时,文件名为Ix86L.H,Ix86L_C.C,和Ix86L_A.ASM.。

表 L10.1在µC/OS-II中重新命名的文件.新的文件名,这比重新建立一些新文件要容易许多。

表10.2给出来几个与移植有关的新旧文件名命名法的例子。

表L10.2对不同微处理器从µC/OS到µC/OS-II,要重新命名的文件.10.1INCLUDES.H用户应用程序中的INCLUDES.H文件要修改。

以80x86 实模式,在大模式下编译为例,用户要做如下修改:•变目录名µC/OS 为µC/OS-II•变文件名IX86L.H为OS_CPU.H•变文件名UCOS.H为uCOS_II.H新旧文件如程序清单 L10.1和 L10.2所示10.2OS_CPU.HOS_CPU.H文件中有与微处理器类型及相应硬件有关的常数定义、宏定义和类型定义。

嵌入式简答题题目

嵌入式简答题题目

1、叙述已知任务A的优先级是prio,将其置为就绪态的算法和过程,写出示意代码。

答:设Prio=00D5 D4 D3 D2 D1 D0OSRdyGrp中的第y位(D5 D4 D3位)‘或’1(不管原来是1或0,该位置1);第y组即元素OSRdyTbl[y](第y行)的第x位(D2D1D0位)置即1;首先使OSRdyGrp中的第y位置1:OSRdyGrp|=OSMapTbl[Prio>>3];OSRdyTbl[Prio>>3] |=OSMapTbl[Prio&0x07];2、uc/os-II任务转换图如图4.1所示,写出图中A、B、C、D、E各状态的名称。

图4.1 uc/os-II任务转换图答:A、睡眠态;B、就绪态;C、运行态;D、中断服务态;E、等待状态3、在ucos-II.H中定义INT8U const OSMapTbl[],在OS_CORE.C中定义OSMapTal[]的内容是什么?答:INT8U const OSMapTbl[]= {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};4、在ucos-II.H中定义OSRdyGrp,在OS_CORE.C中用OSRdyGrp做什么用?答:为了便于对任务就绪表的查找,UC/OS-II有定义了OSRdyGrp,其一位都对应就绪表里的一个任务组,若某一任务组有任务就绪,其对应OSRdyGrp的位置为1,否则为0.5、在ucos-II.H中定义OSRdyTbl[OS_RDY_TBL_SIZE],在OS_CORE.C中用OSRdyTbl[OS_RDY_TBL_SIZE]做什么用?其中OS_RDY_TBL_SIZE含义是什么?答:OSRdyTbl[OS_RDY_TBL_SIZE]是任务就绪表,是用来记录系统中任务是否就绪的表,系统每一个任务在就绪表中对应一位,并用这个位置的状态来表示任务是否就绪(1为就绪,0为未就绪)OS_RDY_TBL_SIZE含义是表示就绪列表字节6、简述uCOS-II的中断响应过程答:中断请求、关中断、转到中断向量、保存CPU寄存器、通知内核进入ISR、通知内核退出ISR、恢复CPU寄存器、中断返回。

嵌入式系统试题带答案

嵌入式系统试题带答案

《嵌入式系统》课程研级试题一、填空题(每空1分,共30分)1、嵌入式操作系统旳内核构成涉及:任务管理、时间管理、中断服务解决。

2、嵌入式系统旳设计可以提成辨认需求、提出解决方案、执行项目和结束项目四个阶段。

3、目前使用旳嵌入式操作系统重要有WinCE 、Symbian 、Nucleus 、μCOSII 、Linux 。

4、微解决器有两种总线架构,使用数据和指令使用同一接口旳是冯诺依曼,分开旳指令和数据接口、取指和数据访问可以并行进行旳是哈佛构造。

5、ARM微解决器有7 种工作模式,它们分为非特权模式、特权模式两类。

其中顾客模式属于非特权模式。

6、冯诺依曼体系构造旳特点之一是系统内部数据和指令都存储在统一存储器中,而哈佛构造则是分开储存。

7、一般嵌入式系统开始启动时,将存有启动代码旳Nor Flash地址空间映射到0x000000。

嵌入式系统旳中断向量和异常向量表在启动时也从0号地址寄存。

由于Flash ROM旳读出速度慢,因此需要采用地址重映射把SDRAM地址空间迁移到0地址开始处,把Flash ROM旳地址空间迁移到系统存储器旳高品位地址。

8、异常向量是异常服务程序旳入口,在某些ARM旳应用中,容许异常向量旳位置由32位地址空间低端旳正常位置,既0x00000000~0x0000001C,移到地址空间高品位旳另一地址范畴0xFFFF0000~0xFFFF001C。

这些变化后旳地址位置称为高品位向量。

目旳系统可通过输入硬件配备来选择是使用正常向量还是高品位向量。

9、ARM微解决器复位后,PC(R15)旳地址一般是0X0 ,初始旳工作模式是supervisor 。

10、ARM指令集和Thumb指令集分别是32 和16 位旳。

11、总线定期方式有三种,分别为同步定期、异步和半同步定期。

二、选择题(在备选答案中有一种或多种是对旳旳,将它选出填入空格中,每题2分,共20分)1.下列描述不属于RISC计算机旳特点旳是_____C______。

uCOS-II嵌入式操作系统介绍与移植

uCOS-II嵌入式操作系统介绍与移植

OSStartHighRd
1、该函数是在OSStart函数中调用 2、负责从最高优先级任务的TCB中获得该任务的堆
栈指针sp,并依次将cpu现场恢复,这时系统就将 控制权交给用户创建的该任务进程,直到该任务被 阻塞或者被其他更高优先级的任务抢占cpu 3、该函数仅在多任务启动时被执行一次,用来启 动之前创建的第一个,也就是最高优先级的任务执 行
3、可从网站上获 得全部源码及其在各种体系结构平 台上的移植范例。
uC/OS-II特点
1、uC/OS-II内核具有可抢占的实时 多任务调度功能
2、提供了许多系统服务,如信号量、 消息队列、邮箱、内存管理、时间 函数等
3、这些功能可以根据不同的需求进 行裁减。
uC/OS-II的移植
ARM处理器相关宏定义
1、退出临界区
#defineOS_ENTER_CRITICAL() ARMDisableInt()
2、进入临界区
#defineOS_EXIT_CRITICAL() ARMEnableInt()
堆栈增长方向
1、堆栈由高地址向低地址增长,这个也 是和编译器有关的,当进行函数调用时, 入口参数和返回地址一般都会保存在当 前任务的堆栈中,编译器的编译选项和 由此生成的堆栈指令就会决定堆栈的增 长方向。
#define OS_STK_GROWTH 1
OS_CPU.c的移植
1、任务堆栈初始化 2、系统hook函数 3、中断级任务切换函数
任务堆栈初始化OSTaskStkInit
1、由OSTaskCreate或OSTaskCreateExt调用 2、用来初始化任务的堆栈并返回新的堆栈指针stk。
退出/进入临界区函数 ARMDisableInt/ARMEnableInt

ucos-ii嵌入式操作系统复习选择题

ucos-ii嵌入式操作系统复习选择题

ucos-ii嵌入式操作系统复习选择题01、删除任务,是说任务将返回并处于(),任务的代码不再被μC/OS-II调用。

【A】休眠状态【B】等待状态【C】就绪态【D】中断状态02、任务一旦建立,这个任务就进入了()【A】睡眠状态【B】等待状态【C】就绪态【D】运行态03、μC/OS-II中,下列哪个系统函数不能够引起任务调度()【A】OSStart()【B】OS_TASK_SW()【C】OSTaskSuspend()【D】OSTaskResume()04、任务是一个无返回的无穷循环,μC/OS-II总是进入就绪态的()的任务【A】最高优先级【B】最低优先级【C】第二高优先级【D】任意优先级05、ANSI C中,可以用malloc()和free()两个函数动态地分配和释放内存,下面关于这两个函数,说法正确的是()【A】嵌入式实时操作系统中,调用这两个函数却是安全的【B】多次调用这两个函数,不会产生大量内存碎片【C】malloc()和free()函数的执行时间是确定的【D】可能使得内存无法再分配使用06、以下哪个部分不属于μC/OS-II的任务的组成部分()【A】函数【B】任务堆栈【C】任务控制块【D】线程07、当___时由运行状态转为就绪状态?()【A】任务的CPU使用权被剥夺【B】等待某一事件的运行【C】任务获得了CPU的使用权【D】任务响应中断申请08、μCOS-II操作系统不属于()。

【A】RTOS【B】抢占式实时操作系统【C】分时操作系统【D】嵌入式实时操作系统09、对于μCOS-II操作系统,以下说法不正确的是()【A】任务可以有类型说明【B】任务可以返回一个数值【C】任务可以有形参变量【D】任务是一个无限循环10、在μC/OS-II系统中,OSTimeTick()函数只被以下()函数或过程所调用。

【A】OSTickISR【B】OSShed【C】OSCtxSw【D】OSIntCtxSw11、下面临界区概念论述正确的是()【A】临界区是指进程中用于实现进程互斥的那段程序代码【B】临界区是指进程中用于实现进程同步的那段程序代码【C】临界区是指进程中用于实现进程通信的那段程序代码【D】临界区是指进程中用于访问临界资源的那段程序代码12、多道程序设计是指()。

ucos-ii操作系统习题(嵌入式方向)

ucos-ii操作系统习题(嵌入式方向)

ucos-ii操作系统习题一.填空题1.uC/OS-II是一个简洁、易用的基于优先级的嵌入式【抢占式】多任务实时内核。

2.任务是一个无返回的无穷循环。

uc/os-ii总是运行进入就绪状态的【最高优先级】的任务。

3.因为uc/os-ii总是运行进入就绪状态的最高优先级的任务。

所以,确定哪个任务优先级最高,下面该哪个任务运行,这个工作就是由【调度器(scheduler)】来完成的。

4.【任务级】的调度是由函数OSSched()完成的,而【中断级】的调度是由函数OSIntExt() 完成。

对于OSSched(),它内部调用的是【OS_TASK_SW()】完成实际的调度;OSIntExt()内部调用的是【OSCtxSw() 】实现调度。

5.任务切换其实很简单,由如下2步完成:(1)将被挂起任务的处理器寄存器推入自己的【任务堆栈】。

(2)然后将进入就绪状态的最高优先级的任务的寄存器值从堆栈中恢复到【寄存器】中。

6.任务的5种状态。

【睡眠态(task dormat) 】:任务驻留于程序空间(rom或ram)中,暂时没交给ucos-ii处理。

【就绪态(task ready)】:任务一旦建立,这个任务就进入了就绪态。

【运行态(task running)】:调用OSStart()可以启动多任务。

OSStart()函数只能调用一次,一旦调用,系统将运行进入就绪态并且优先级最高的任务。

【等待状态(task waiting)】:正在运行的任务,通过延迟函数或pend(挂起)相关函数后,将进入等待状态。

【中断状态(ISR running)】:正在运行的任务是可以被中断的,除非该任务将中断关闭或者ucos-ii将中断关闭。

7.【不可剥夺型】内核要求每个任务自我放弃CPU的所有权。

不可剥夺型调度法也称作合作型多任务,各个任务彼此合作共享一个CPU。

8.当系统响应时间很重要时,要使用【可剥夺型】内核。

最高优先级的任务一旦就绪,总能得到CPU的控制权。

嵌入式实时操作系统ucos期末考试题

嵌入式实时操作系统ucos期末考试题

嵌入式及时操作系统ucos期末考试题一、名词解说:1、OS:操作系统2、MCU:微控制器3、ISR:中断服务子程序4、FIFO:先进先出5、TCB:TaskControlBlock,任务控制块6、API:应用程序接口7、RTOS:及时操作系统8、UART:通用异步收发传输器9、MMU:内存管理单元10、JTAG:界限调试接口二、填空题1、(优先级抢占和时间片轮转)是一种运转时间一到就剥夺进度办理器使用权的剥夺式调换。

2、及时系统的两个基本要求:(逻辑或功能正确)、时间正确。

所谓时间正确是指(及时系统的计算一定在预约的时间内完成)。

3、临界区是指(办理时不行切割的代码、每个进程中接见临界资源的那段程序)4、UCOS调用系统延时最小时间单位( 毫秒)5、UCOS配置文件中OS_TICKS_PER_SEC的数值定义为32,含义是(时钟频率为32hz)6假如某一个任务不是一定的监控任务,我们一般采纳(动向内存管理)的体系来创立该任务所需要的变量内存空间,要想能使用这类体系,一定第一将内存交给(操作系统)来一致管理7、假如系统中某一个资源属于独占资源,n个任务都需要使用,标准的做法是使用(互斥信号量)来解决8、在UCOS中,优先级用一个数字表示,数字越大表示任务的优先级别越(低)9、优先级调换的( 任务就绪表)标记进度抢占办理器的权益大小。

10、(任务控制块)主要用来记录任务的货仓指针,任务的当前状态,任务的优先级别等一些与任务管理相关的属性的表。

11、临界区是指( 保证共享资源的完好性和靠谱性的代码段) 。

12、可重入指的是(是一段代码(如一个函数)可以被多个任务同时调用,而不用担忧会破坏数据)。

13、某事件周期不确立,连续时间较短,办理容忍度较长,平时我们采纳在(任务就绪表)中发现该事件,在(任务调换)中办理该事件。

14、假如系统中有2个资源,n个任务都需要使用,标准的做法是使用(互斥信号量)来解决。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ucos-ii操作系统习题一.填空题1.uC/OS-II是一个简洁、易用的基于优先级的嵌入式【抢占式】多任务实时内核。

2.任务是一个无返回的无穷循环。

uc/os-ii总是运行进入就绪状态的【最高优先级】的任务。

3.因为uc/os-ii总是运行进入就绪状态的最高优先级的任务。

所以,确定哪个任务优先级最高,下面该哪个任务运行,这个工作就是由【调度器(scheduler)】来完成的。

4.【任务级】的调度是由函数OSSched()完成的,而【中断级】的调度是由函数OSIntExt() 完成。

对于OSSched(),它内部调用的是【OS_TASK_SW()】完成实际的调度;OSIntExt()内部调用的是【OSCtxSw() 】实现调度。

5.任务切换其实很简单,由如下2步完成:(1)将被挂起任务的处理器寄存器推入自己的【任务堆栈】。

(2)然后将进入就绪状态的最高优先级的任务的寄存器值从堆栈中恢复到【寄存器】中。

6.任务的5种状态。

【睡眠态(task dormat) 】:任务驻留于程序空间(rom或ram)中,暂时没交给ucos-ii处理。

【就绪态(task ready)】:任务一旦建立,这个任务就进入了就绪态。

【运行态(task running)】:调用OSStart()可以启动多任务。

OSStart()函数只能调用一次,一旦调用,系统将运行进入就绪态并且优先级最高的任务。

【等待状态(task waiting)】:正在运行的任务,通过延迟函数或pend(挂起)相关函数后,将进入等待状态。

【中断状态(ISR running)】:正在运行的任务是可以被中断的,除非该任务将中断关闭或者ucos-ii将中断关闭。

7.【不可剥夺型】内核要求每个任务自我放弃CPU的所有权。

不可剥夺型调度法也称作合作型多任务,各个任务彼此合作共享一个CPU。

8.当系统响应时间很重要时,要使用【可剥夺型】内核。

最高优先级的任务一旦就绪,总能得到CPU的控制权。

9.使用可剥夺型内核时,应用程序不应直接使用不可重入型函数。

调用不可重入型函数时,要满足互斥条件,这一点可以用【互斥型信号量】来实现。

10.【可重入型】函数可以被一个以上的任务调用,而不必担心数据的破坏。

11.可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。

可重入型函数或者只使用【局部变量】,即变量保存在CPU寄存器中或堆栈中。

如果使用全局变量,则要对全局变量予以【保护】。

12.每个任务都有其优先级。

任务越重要,赋予的优先级应【越高】。

13.μC/OS-Ⅱ初始化是通过调用系统函数【OSIint()】实现的,完成μC/OS-Ⅱ所有的变量和数据结构的初始化。

14.多任务的启动是用户通过调用【OSStart()】实现的。

然而,启动μC/OS-Ⅱ之前,用户至少要建立一个应用【任务】。

15. μC/OS-Ⅱ的参数配置文件名为【OS_CFG.H】。

16.删除任务,是说任务将返回并处于【休眠状态】,并不是说任务的代码被删除了,只是任务的代码不再被µC/OS-Ⅱ调用。

17.µC/OS-Ⅱ要求用户提供【定时中断】来实现延时与超时控制等功能。

18.定时中断也叫做【时钟节拍】,它应该每秒发生10至100次。

19. 时钟节拍的实际频率是由用户的应用程序决定的。

时钟节拍的频率越高,系统的负荷就【越重】。

20.µC/OS-II中的信号量由两部分组成:一个是信号量的【计数值】,它是一个16位的无符号整数(0 到65,535之间);另一个是由等待该信号量的任务组成的【等待任务表】。

用户要在OS_CFG.H中将OS_SEM_EN开关量常数置成【1 】,这样µC/OS-II才能支持信号量。

21. µC/OS-II中表示当前已经创建的任务数全局变量名为:【 OSTaskCtr 】。

21. µC/OS-II中表示当前内核运行的标记全局变量名为:【 OSRunning 】。

22.在使用OSTaskCreate创建任务时,若需要TaskData作伪参数传递给任务Task,并从任务Task中获得传入的字符参数值,请在下面【】填上合适的代码。

char TaskData=’A’;OSTaskCreate(Task, 【(void *)& TaskData 】, &TaskStk[0][TASK_STK_SIZE - 1], 1);void Task (void *pdata){char value = 【*(char *)pdata】;for (;;) {OSSemPend(RandomSem, 0, &err);y = (int) (*(char *)pdata - 'A');OSSemPost(RandomSem);PC_DispChar(10, 25, value, DISP_FGND_WHITE +DISP_BGND_BLUE);OSTimeDly(1);}}23. 在µC/OS-II在任务Task1中使用邮箱函数OSMboxPost()发送字符;而在Task2中接收OSMboxPost()字符, 请在下面【】填上合适的代码。

void Task1 (void *data){char txmsg;INT8U err;…txmsg = 'A';for (;;) {OSMboxPost(TxMbox,【(void *)&txmsg】); /* Send message to Task2*/OSMboxPend(AckMbox, 0, &err);txmsg++;if (txmsg == 'Z') {txmsg = 'A';}}}void Task5 (void *data){char *rxmsg;INT8U err;data = data;for (;;) {rxmsg = 【(char *)】OSMboxPend(TxMbox, 0, &err);PC_DispChar(70, 18, *rxmsg, DISP_FGND_YELLOW +DISP_BGND_BLUE);OSMboxPost(AckMbox, (void *)1);}}24. 在Task1中使用消息队列OSQPend()函数接收消息“Hello World!”,而在Task2中使用消息队列OSQPost()函数发送消息“Hello World!”, 请在下面【】填上合适的代码.void Task1 (void *pdata){char *msg;INT8U err;pdata = pdata;for (;;) {msg = 【(char *)】OSQPend(MsgQueue, 0, &err);PC_DispStr(70, 13, msg, DISP_FGND_YELLOW +DISP_BGND_BLUE);OSTimeDlyHMSM(0, 0, 0, 100);}}void Task2 (void *pdata){char msg[20];pdata = pdata;strcpy(&msg[0], " Hello World!");for (;;) {OSQPost(MsgQueue, 【(void *)】&msg[0]);OSTimeDlyHMSM(0, 0, 0, 500);}}25. µC/OS-II操作系统使用OSSchedLock()函数和OSSchedUnlock()函数进行锁定(不允许任务级调度)和解锁(重新允许任务级调度)调度器,在用户应用程序中OSSchedLock()和OSSchedUnlock()是【成对出现的】,否则系统有可能出错。

26.OSTaskSuspend(self)可把正在运行的任务【(____挂起____)】,参数self指【(__任务本身____)】。

用此函数挂起的任务可通过【(OSTaskResume )】函数唤醒。

27.创建信号量OSSemCreat(0)函数中,参数0表示【(信号量的初始值)】。

二.名词解释1.代码的临界段代码的临界段也称为临界区,指处理时不可分割的代码。

2.资源任何为任务所占用的实体都可称为资源。

资源可以是输入输出设备;资源也可以是一个变量,一个结构或一个数组等。

3.共享资源可以被一个以上任务使用的资源叫做共享资源。

4.任务一个任务,也称作一个线程,是一个简单的程序,该程序可以认为CPU完全只属该程序自己。

典型地、每个任务都是一个无限的循环。

5.任务切换指Context Switch,其含义是CPU寄存器内容切换。

当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态(Context),即CPU寄存器中的全部内容。

6.内核多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通讯。

内核提供的基本服务是任务切换。

7.调度(Scheduler)内核的主要职责之一,就是要决定该轮到哪个任务运行了。

多数实时内核是基于优先级调度法的。

8.可剥夺型内核最高优先级的任务一旦就绪,总能得到CPU的控制权。

当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了CPU的控制权。

如果是中断服务子程序使一个高优先级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高的那个任务开始运行。

三.简答题1.举例说明µCOS-II可移植型数据类型的定义方式答:因为不同的微处理器有不同的字长,µC/OS-II的移植文件包括很多类型定义以确保可移植性。

µCOS-II不使用C语言中的short,int,long等数据类型的定义,因为它们与处理器类型有关,隐含着不可移植性。

µC/OS-II代之以移植性强的整数数据类型,这样,既直观又可移植(该数据类型不依赖于编译),举例如下: typedef unsigned char BOOLEAN;typedef unsigned char INT8U;typedef signed char INT8S;typedef unsigned int INT16U;typedef signed int INT16S;typedef unsigned long INT32U;typedef signed long INT32S;2.µCOS-II如何定义全局变量?答:众所周知,全局变量应该是得到内存分配且可以被其他模块通过C语言中extern关键字调用的变量。

相关文档
最新文档