2013年1月嵌入式系统B卷.doc

上传人:小** 文档编号:4472357 上传时间:2021-09-24 格式:DOC 页数:12 大小:53.50KB
返回 下载 相关 举报
2013年1月嵌入式系统B卷.doc_第1页
第1页 / 共12页
2013年1月嵌入式系统B卷.doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《2013年1月嵌入式系统B卷.doc》由会员分享,可在线阅读,更多相关《2013年1月嵌入式系统B卷.doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、,2013年1月嵌入式操作系统B卷一、选择题(共10分,每小题1分)1 在uCOS-II操作系统中,下面的选项_可以做任务的标识。A. 任务的优先级B. 控制块链表C. 空控制块链表D. 中断号2. 下面的操作系统中,占用存储空间最小的操作系统是_。A. WindowsXB. LinuxC. ucos-2D. WinCE3. ARM系列微处理器堆栈的增长方向是_。A. 向上 B. 向下 C. 不变D. 由SP决定4. 在嵌入式ARM处理器中,中断方式优先级最高的是_。A. Reset B. 数据中止C. FIQ D. IRQ5. 在uCOS-II操作系统中,定义变量OSRdydGrp,通过OS

2、RdydGrp再访问任务就绪表,是为了查询就绪表中任何一个任务的状态时_。A.时间相等;B. 延长查询时间;C. 快速查询; D. 增加调度可靠性 6. 下面的嵌入式操作系统中,哪个很少用在手机上_。A. Symbian B. linuxC. Win CED. VxWorks7、在uCOS-II操作系统中,下面4个选项中,不正确答案是_。A. 先分区,区内分块;B. 先分块,块内分区; C. OS_MEM定义内存分区分块数据结构;D.内存控制块链表记录内存使用情况8、在uCOS-II操作系统中,要申请一个内存块,正确函数是_。A. OSMemCreat() ; B. OSMemGet(); C

3、. OSMemPut();D. OSMemQuery()9、在将ucos_II操作系统移植到ARM处理器上时,不需要修改的文件是_。 A. OS_CORE.C B. include.h C. OS_CPU.HD. OSTaskInit10、在uc/os操作系统中,下面哪个函数与时间无关_。A. OSTimeDly( ) B. OSTimeGet( ) C. OSIntNesting( ) D. OSTimeDlyHMSM( )得分二、填空题(共10分,每空1分)11_ _叫ucos_II的系统时钟;12_叫时钟节拍;13_叫任务控制块链表;14任务的定义是_。15-17在uC/OS-II中,使

4、用_、_和_这些被称作事件的中间环节来实现任务之间的通信。18-20嵌入式操作系统按实时性要求分有3类,它们是_、_和_。得分三、判断题(共10分,每题2分,正确的打,不正确的打)21嵌入式系统的开发环境和运行环境一致。( )22不需将软件引导到RAM中而是让其直接在NorFlash上运行,这种方式启动最快。 ( ) 23ARM采用的体系结构是冯.诺依曼结构。( )24嵌入式系统可以采用提供不同的时钟频率技术来降低功效。 ( )25ARM指令集和Thumb指令集均有切换处理器状态的指令,并可在两种工作状态之间切换,在开始执行代码时,应该处于ARM状态。( )得分四、简答题(答案写在试卷背面,每

5、小题5分,共 40 分)26简述uCOS-II的中断响应过程27简述嵌入式软件设计和调试流程。28什么是JTAG。29在基于ARM的嵌入式系统中, bootloader作用是什么。30叙述在任务就绪表中,查找最高优先级的算法和过程31叙述已知任务A的优先级是prio,将其置为就绪态的算法和过程;32已知任务B的优先级是prio1,已在就绪表中,将其脱离就绪态的算法和过程。33如何在中断服务程序中激活一个任务?得分五、实验和程序分析题(答案写在试卷背面,共30分)34详细写出程序执行的过程(15分)35在执行程序的过程中,在实验箱能够看到的现象(10分)36写出程序中带有标号语句的注释(5分)#

6、includeIncludes.h #include option.h#include 2410lib.h#include uhal.hOS_STK StackLEDSTACKSIZE= 0, ; OS_STK StackSEGSTACKSIZE= 0, ; char IdLED = 1; char IdSEG = 2; void TaskLED(void *Id); void TaskSEG(void *Id); OS_EVENT *Mbox1;void User_LED_Blink(void)static int led_status = 0;led_status += 1;if(led_

7、status % 2 = 0)Led_Display(0x0f);elseLed_Display(0x00);void User_SEG_Blink(void)static unsigned char seg_value = 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e ;static int seg_status = 0;*(unsigned char *)0x10000006) = 0x3e;*(unsigned char *)0x10000004

8、) = seg_valueseg_status;/ (5)seg_status += 1;if(seg_status 15)seg_status = 0;void TaskLED(void *Id)char*Msg;INT8Uerr; ARMTargetStart(); for (;) Msg = (char *)OSMboxPend(Mbox1, 0, &err); / (2) uHALr_printf(Msg); User_LED_Blink( );void TaskSEG(void *Id);charMsg100;INT8Uerr;int nCount = 0;for (;) sprin

9、tf(Msg, TaskSEG %d, nCount+);OSMboxPost(Mbox1, Msg); / (3)User_SEG_Blink();OSTimeDly(100); /(4)void main(void) ARMTargetInit(); OSInit();Mbox1 = OSMboxCreate(void *)0);/ (1) OSTaskCreate(TaskLED,(void*)&IdLED,(OS_STK *)&StackLEDSTACKSIZE - 1, 5);OSTaskCreate(TaskSEG, (void*)&IdSEG,(OS_STK *)&StackSE

10、GSTACKSIZE - 1, 13); OSStart();return; 答案部分一、单项选择题(每小题1分,共10分)题号12345678910答案ACDAADBBCD二、填空题(每空1分,共10分)11 任务程序代码、任务堆栈、任务控制块12 程序实体13OSTCBNext 、OSTCBPrev14 _大端格式_, _小端格式_ 15_通信_, _任务调度_16 总是运行优先级高的那个任务17-18_信号量 、邮箱(消息邮箱) 和 消息队列_19-20 1MB, 4KB三、判断题(正确的打,不正确的打,每题1分,共8分)题号2122232425262728答案XXXXX四、简答题(31

11、-36小题每小题5分,37小题10分,共 40 分)29答:(1)将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。(2)将CPSR复制到相应的SPSR中。(3)根据异常类型,强制设置CPSR的运行模式位。(4)强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。30答:(1)编辑:创建工程;添加文件、编写程序;汇编语言加C语言(2)编译:配置编译、汇编和连接参数;编写连接脚本文件;编译(3)调试:连接调试器;下载程序;运行、调试(4)固化:通过仿真器烧写flash;专用或通用的编程器;通过bootloader烧写flash

12、 31答:JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试。通过JTAG接口,可对芯片内部的所有部件进行访问,因而是开发调试嵌入式系统的一种简洁高效的手段。目前JTAG接口的连接有两种标准,即14针接口和20针接口。32答:BootLoader是系统加电后运行的第一段软件代码。简单地说,BootLoader就是在操作系统内核或用户应用程序运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图(有的CPU没有内存映射功能如S3C44B0),从而将系统的软硬件环境带到一个合

13、适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确的环境。从操作系统的角度看,BootLoader的总目标就是正确地调用内核来执行。33答:usr:ARM处理器正常的程序执行状态;fiq:用于高速数据传输或通道处理;irq:用于通用的中断处理;svc:操作系统使用的保护模式;abt:用于虚拟存储及存储保护;und:当出现未定义指令终止时进入该模式;sys:运行具有特权的操作系统任务34设Prio=00D5 D4 D3 D2 D1 D0y=UnMapTblOSRdyGrpx= UnMapTblOSRdyTblyOSProHighRdy=(y3)+x或:y=UnMapTblOSRdyGr

14、pOSProHighRdy=(INT8U)(y3;OSRdyTblPrio3 |=OSMapTblPrio&0x07;36设Prio=00D5 D4 D3 D2 D1 D0第y组即元素OSRdyTbly(第y行)的第x位(D2 D1 D0位)清0,如果这时第y组即OSRdyTbly中无就绪任务则OSRdyGrp中的第y位清零;否则,第y组即OSRdyTbly中还有就绪任务,则OSRdyGrp中的第y位不清零。If(OSRdyTblPrio3&=OSMapTblPrio&0x07)= =0)OSRdyGrp&=OSMapTblPrio3);37在中断服务程序中只是通过向任务发消息的方法去激活这个

15、任务。38答:A、睡眠态;B、就绪态;C、运行态;D、中断服务态;E、等待状态五、阅读下列程序,完成下列要求:(共20分)39ac_key是共享资源S的信号量40启动多任务;运行MyTask;修改信号量为无效;占用共享资源s;再修改信号量为有效;MyTask延时挂起20个时钟节拍;运行YouTask;修改信号量为无效;占用共享资源s;再次占用共享资源s;再修改信号量为有效;YouTask延时挂起10个时钟节拍;41MyTask访问共享数据s YouTask访问共享数据s YouTask访问共享数据s YouTask访问共享数据s YouTask访问共享数据s42(1)信号量初值设为1,表示s没有任务占用 (2)保存DOS环境(3) 安装uC/OS-II中断(4)关闭中断(5)创建任务YouTask(6) 初始化uC/OS-II的统计任务(7) 延时20个时钟节拍 (8) YoyTask任务判断s没被其它任务占用,即ac_key= TRUE;改变信号量值ac_key=FALSE,然后占用共享资源。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁