2013年1月嵌入式系统A卷 下载本文

内容发布更新时间 : 2024/5/19 3:04:15星期一 下面是文章的全部内容请认真阅读。

2013年1月嵌入式操作系统A卷

一、选择题(共10分,每小题1分)

1.下面操作系统中,哪一个最适合工业实时控制的操作系统______。 A. VxWorks

B. Linux

C. ucos-2

D. WinCE

2. 下面的操作系统中,哪个操作系统的内核占用存储空间最小______。 A. WindowsX

B. Linux

C. ucos-2

D. WinCE

3. 下面的调试方法中,哪种方法不是嵌入式系统的调试方法的是______。 A. 模拟调试

B. 软件调试

C. BDM/JTAG调试

D. 单独调试

4. 在嵌入式ARM处理器中,中断方式优先级最高的是______。 A. Reset

B. 数据中止

C. FIQ

D. IRQ

5. 在实时操作系统中,两个任务并发执行,一个任务要等待另一个任务发来消息,或建立某个条件后才能向前执行,这种制约性合作关系被称为任务的______。

A. 同步 B. 互斥 C. 调度 D. 异步 6. 下面的嵌入式操作系统中,哪个很少用在手机上______。 VxWorks

7、下面4个选项中,不属于嵌入式系统软件的是______。

A. 系统内核 B. FPGA 编程软件 C. 驱动程序 D. 不同平台的中间件 8、以下方式不属于文件系统格式的是______。

A. Symbian B. linux

C. Win CE D.

1

A. FAT B. DOS C. NTFS D. txt

9、在将ucos-II操作系统移植到ARM处理器上时,不需要修改的文件是______。 A. OS_CORE.C B. include.h C. OS_CPU.H

D. OSTaskInit

10、下面的函数中,哪个函数不属于时间或时间延时的函数___________。 A. OSTimeDly( ) B. OSTimeGet( ) C. OSIntNesting( ) D. OSTimeDlyHMSM( ) 得分

二、填空题(共10分,每空1分)

11-13.uCOS-II的任务结构由3个部分构成:_________、_______、_______ 14. ____________叫系统任务;

15.任务控制块中_________两个变量使任务能构成双向链表;

16-17.内核负责管理各个任务,或者为每个任务分配CPU时间,并且负责任务之间的___________,内核的基本服务是___________;

18.可剥夺型内核型的定义是_________;

19-20.为了实现不同层次的管理,系统提供了基于段或页的存储器访问方式。段由___________B 的存储器块构成;小页由___________B 的存储器块构成; 得分

2

三、判断题(共8分,每题1分,正确的打√,不正确的打×) 21.嵌入式系统开发环境和运行环境一致。( )

22.不需将软件引导到RAM中而是让其直接在NorFlash上运行,这种方式启动最快。( ) 23.ARM采用的体系结构是冯.诺依曼结构。( )

24.嵌入式系统可以采用提供不同的时钟频率技术来降低功效。 ( ) 25.嵌入式系统是嵌入到对象体系内部的专用计算机系统。( )

26.ARM指令集和Thumb指令集均有切换处理器状态的指令,并可在两种工作状态之间切换,在开始执行代码时,应该处于ARM状态。( )

27.所有的电子设备都属于嵌入式设备。( ) 28.CISC将被RISC所取代。( )

四、简答题(答案写在试卷背面,小题每小题5分,共50 分) 29.当异常出现后,ARM微处理器会执行的操作是什么。 30.简述嵌入式软件设计和调试流程。 31.什么是JTAG。

32.在基于ARM的嵌入式系统中, bootloader的作用是什么。 33.ARM处理器的七种模式是什么,并简述各自特点。

34.叙述在任务就绪表中,查找最高优先级的算法和过程,写出示意代码。

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

36.已知任务B的优先级是prio1,已在就绪表中,将其脱离就绪态的算法和过程,写出示意代码。 37.如何在中断服务程序中激活一个任务?

3

38.uc/os-II任务转换图如图4.1所示,写出图中A、B、C、D、E各状态的名称。 得分

五、实验和程序分析题(答案写在试卷背面,共22分) 39.说明“ac_key”的作用(5分) 40.写出程序执行的过程(5分)

41.在程序执行的过程中,解释实验结果(4分) 42.写出标号处的说明文档(每空1分,共8分)

图4.1 uc/os-II任务转换图 #include “includes.h”

#define TASK_STK_SIZE 512 OS_STK MyTaskStk[TASK_STK_SIZE]; OS_STK YouTaskStk[TASK_STK_SIZE];

4

INT16S key; INT8U y1=0,y2=0; BOOLEAN ac_key; char *s=”原始数据”; void MyTask(void *data); void YouTask(void *data); void main(void)

{ OSInit();

ac_key=1; //(1) PC_DOSSaveReturn(); //(2) PC_VectSet(uCOS,OSCtxSw); //(3) OSTaskCreate(MyTask,

(void*)0, & MyTaskStk[TASK_STK_SIZE -1], 0); OSStart(); }

void MyTask(void *pdata) {

INT8U err; pdata= pdata;

5