2013嵌入式A卷答案_第1页
2013嵌入式A卷答案_第2页
2013嵌入式A卷答案_第3页
免费预览已结束,剩余4页可下载查看

下载本文档

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

文档简介

1、广东工业大学考试试卷(A )课程名称:ARM嵌入式系统设计与应用试卷满分100 分考试时间:2013年5月17日(第12周星期五)0)题号-一-二二三四五六七八九总分评卷得分评卷签名复核得分复核签名注意:请把答案写在试卷上!.选择题(30分,共15题)123456789101112131415DADDABBAABCADDB二.填空题(10分每空2分)1. Nand Flash的特点是应用程序可以直接在闪存中运行,不需要把代码读到系统RAM 中。该说法是否正确。(错)2. ARM920T支持7种运行模式,分别为:用户模式,快速中断模式,中断模式,管理模式,数据访问终止模式,系统模式,未定义模式。

2、业:专1装 :43 .当CPSR的后5位为 10011时,进入管理模式。4.若一个优先级为39的任务就绪,则在就绪表中,OSRdyTbl的第6位置位,变量OSRdyGrp的第3位置位。三.简答题(20分,共4题)1. 简述ARM发生异常时,ARM要做哪些事情?( 5分)答:当一个异常出现以后,ARM微处理器会执行以下几步操作:(1) 将下一条指令的地址存入相应连接寄存器 LR。若异常是从 ARM状态进入,LR寄存器中 保存的是下一条指令的地址 (当前PC+ 4或PC + 8,与异常的类型有关);若异常是从Thumb状态 进入,则在LR寄存器中保存当前 PC的偏移量。这样,异常处理程序就不需要确

3、定异常是从何种状态进入的,程序在处理异常返回时能从正确的位置重新开始执行。例如:在软件中断异常SWI中,指令 MOV PC, R14_svc总是返回到下一条指令,而不管 SWI是在ARM状态执行,还是在 Thumb状态执行。(2) 将CPSR复制到相应的 SPSR中。(3) 根据异常类型,强制设置CPSR的运行模式位。(4) 强制PC从相应的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。 还可以设置中断禁止位,以禁止中断发生。如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入 PC时,处理器自动切换 到ARM状态。2. ARM体系结构支持几种类型的异常?优先级状态

4、如何? (5分)答:当多个异常同时发生时,系统根据固定的优先级决定异常的处理次序。异常优先级由高到低的 排列次序为:复位、数据中止、FIQ、IRQ、预取指令中止、未定义指令、SWI。3. 简述ARM处理器从异常返回的步骤(5分)答:异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:1、 将连接寄存器LR的值减去相应的偏移量后送到PC中。2、将 SPSRM制回 CPSF中。3、若在进入异常处理时设置了中断禁止位,要在此清除。可以认为应用程序总是从复位异常处理程序开始执行的,因此复位异常处理程序不需要返回。4下列ARM条件码的含义是什么?(1) EQ (2) NE ( 3) GE (4

5、) LT (5) MI答:EQ表示相等,NE表示不相等,GE表示有符号数大于或等于,LT表示有符号小于,MI表示负数。四阅读程序题(30分,共5题)1 根据一段完整的汇编语言代码回答下面的问题(10分)。;/*/;/*code*/;/*/GLOBAL Reset_Ha ndler area start,code,readwrite en try code32num EQU 20Reset Ha ndlerIdr RO, =srcIdr R1, =dstmov R2, #numIdr sp, =0x30200000blockcopymovs R3,R2, LSR #3beq copywordss

6、tmfd sp!, R4-R11; (*1* )octcopyldmia R0!, R4-R11stmia R1!, R4-R11 subs R3, R3, #1 bne octcopyldmfd sp!, R4-R11;(*2*)copywordsan ds R2, R2, #7 beq stop wordcopyIdr R3, R0, #4str R3, R1, #4subs R2, R2, #1bne wordcopystopb stop;/*/;/*make a word pool*/;/*/Itorgsrc dcd 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,12

7、3,4dst dcd 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0end问题:(1) 语句(*1* )和(*2* )实现什么功能?(5分)(2) 这一段代码总体完成什么功能?(5分)答:(1)实现堆栈保存和恢复数据。(2)完成拷贝一段数据块的功能。2补充1个相关语句,完成在 C函数中调用汇编的功能 (5分)#in clude <stdio.h>/*-start.s-*/equ Ni,20 .text _sta 比-MOV R0,#NiBL factorial STOP:B STOP.END/*-factorial.c*-/long long fac

8、torial(char N) char i;long long Nx=1;for(i=1;i<=N;i+)Nx=Nx*i;return Nx;答:import factorial3 仔细阅读下面的两个任务编程,并说明程序要实现的主要功能是什么。(5分)OS_EVENT *math_Sem;void task1() U8 i,sum;math_Sem=OSSemCreate(O);sum=0;for(i=0; i<=100; i+) sum=sum+i ;OSSemPost(math_Sem);For(;) OSTimeDly(100);void task2() U8 err;for

9、(;) OSSemPe nd(math_Sem,O, &err);LCD_printf("we get the sum ! n");-答:实现0到100的累加,并显示出来。4. 三个任务代码如下,其中task1、task2、task3的优先级分别为:29、36,48。分析LCD上的显示结果。(5分)Void task1 () ClearScree n();LCD_Pri ntf( “ task1 is runnin g!n”);OSTimeDly(500);Void task2 () ClearScree n();LCD_Printf(“ this is task2

10、!n ” );OSTimeDly(350);Void task3 () ClearScree n();LCD_Printf(“ running task3!n” );OSTimeDly(200);Task1, -500Task2 -350Task3-200Task3-200Task2-350Task1在LCD上的显示结果为:第二次 第三次 第四次 第五次 第六次 taskl is running!this is task2! running task3! running task3! this is task2!_ taskl is running! 5、请为下列Makefile程序加注释,并

11、说明程序的功能。 (5分)objects = main.o subr.o1)exec = prog2)all:$(objects)3)gcc - o $ $A4)clea n:rm r $(exec) $(objects) 5 )答:1)定义目标文件2 )定义操作3)引用所用目标4 )对目标文件集和依赖文件集进行编译,生成可执行文件5)删除所有生产文件五.应用实践题(10分)基于ucos编程,创建三个按键和一个LED的闪烁任务,任意一个按键按下,则发送一个消息邮箱给闪烁任务。按键1按下闪烁1次,按键2按下闪烁2此,按键3按下闪烁3此,闪烁每次间隔500ms。可能会用到的函数#defi ne L

12、ED_LED _OFF() GPIO_SetBits(GPIOB, GPIO_Pin_7 );#defi ne LED_LED _ON() GPIO_ResetBits(GPIOB, GPIO_Pin_7 );按键检测findkey (),有键按下返回1,否则为0;OSIn it();OSStart();INT8U OSTimeDlyHMSM(INT8U hours, INT8U mi nu tes, INT8U seco nds, INT16U milli);INT8UOSTaskCreate(TaskStart, (void *)data,&TaskStartStkTASK_STK

13、_SIZE - 1 , prio);OS_EVENT *OSMboxCreate ( void *msg );Void *OSMboxPe nd ( OS_EVNNT*peve nt, INT16Utimeout, in t8u *err );INT8U OSMboxPost ( OS_EVENT *pevent, void *msg );Void *OSMboxAccept ( OS_EVENT *pevent );答:#defi ne Task_Key_STK_SIZE 64#defi ne Task_Led1_STK_SIZE 64static OS_STK Task_KeyStkTas

14、k_Key_STK_SIZE;static OS_STK Task_Led1StkTask_Led1_STK_SIZE;INT8U err;OS_EVENT *Mbox1;static void Task_Key(void* p_arg);static void Task_Led1(void* p_arg);#defi ne LED_LED1_OFF() GPIO_SetBits(GPIOB, GPIO_Pin_6 );LED1灭#defi ne LED_LED1_ON()GPIO_ResetBits(GPIOB, GPIO_Pin_6 );LED1亮int mai n(void)OSIn i

15、t();OSTaskCreate(Task_Key,(void*)0,(OS_STK *)& Task_KeyStkTask_Key_STK_SIZE-1,5);OSTaskCreate (Task_Led1,(void*)0,(OS_STK* )& Task_Led1StkTask_Led1_STK_SIZE-1,6);Mbox 仁O SMboxCreate(void *)0);OSStart();static void Task_Key(void* p_arg)u8 key;u8 Temp_box=0;(void) p_arg;while (1)key=fi nd_key();if(key=1)Temp_box=1;OSMboxPost(Mbox1, &Temp_box);OSTimeDlyHMSM(O, 0, 0, 500);if(key=2)Temp_box=2;OSMboxPost(Mbox1, &Temp_box);OSTimeDlyHMSM(0, 0, 0, 500);if(key=3)Temp_box=3;OSMboxPost(Mbox1, &Temp_box);OSTimeDl

温馨提示

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

评论

0/150

提交评论