您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 嵌入式期末考试复习资料
第页共33页11、ARM微处理器有7种工作模式,它们分为两类非特权模式、特权模式。其中用户模式属于非特权模式ARM处理器有两种总线架构,数据和指令使用同一接口的是冯诺依曼,数据和指令分开使用不同接口的是哈佛结4、ARM微处理器复位后,PC的地址通常是0x0,初始的工作模式是Supervisor。5、ARM微处理器支持虚拟内存,它是通过系统控制协处理器CP15和MMU(存储管理部件)来进行虚拟内存的存储和管理。当系统发生数据异常和指令领取异常时,异常处理程序透过嵌入式操作系统的内存管理机制,通过MMU交换物理内存和虚拟内存的页面,以保证程序正常执行。6、编译链接代码时,有两种存储代码和数据的字节顺序,一种是小端对齐,另一种是打断对齐7、构建嵌入式系统开发环境的工具链有多种,其中开放源码的工具链是GNU工具链,ARM公司提供的工具链是ADS工具链8、计算机有CISC和RISC两种类型,以ARM微处理器为核心的计算机属于RISC类型,其指令长度是定长的嵌入式系统的设计可以分成三个阶段:分析、和目前使用的嵌入式操作系统主要有、、、和等。9、XScale微处理器使用的是ARM公司版内核和指令集。微处理器有两种总线架构,使用数据和指令使用同一接口的是,分开的指令和数据接口、取指和数据访问可以并行进行的是10、ARM微处理器有种工作模式,它们分为两类:特权模式,和。其中用户模式属于11、ARM核有两个指令集,分别是、初始的工作模式是12、在ARM体系构架中对复杂的内存管理是通过系统控制协处理器和2、ARM支持两个指令集,ARM核因运行的指令集不同,分别有两个状态ARM、Thumb,状态寄存器CPSR的T位反映了处理器运行不同指令的当前状态3、ARM核有多个寄存器,其中大部分用于通用寄存器,有小部分作为专用寄存器,R15寄存器用于存储PC,R13通常用来存储SP第页共33页2MMU(存储管理部件)来进行的。当系统发生异常和异常时,异常处理程序透过嵌入式操作系统的内存管理机制,通过MMU交换物理内存和虚拟内存的页面,以保证程序正常执行。13、构建嵌入式系统开发环境的工具链有多种,其中开放源码的工具链是,ARM公司提供的工具链是1、目前使用的嵌入式操作系统主要有哪些?请举出六种较常用的。WindowsCE/WindowsMobile、VxWork、Linux、uCos、Symbian、QNX任选六2、ARM系统中的堆栈有四种,如下图。请按图标出四种堆栈的类型。ATPCS编程规范约定使用的堆栈是哪一种?答:FD、FA、ED、EA。ATPCS编程规范约定使用的堆栈是FD3、BootLoader在嵌入式系统中主要起什么作用?完成哪些主要的工作?答:BootLoader是在嵌入式系统复位启动时,操作系统内核运行前,执行的一段程序。通过BootLoader,初始化硬件设备,建立内存和I/O空间映射图,为最终加载操作系统内核调整好适当的系统软硬件环境。4、搭建嵌入式开发环境,连接目标板,一般使用什么通信接口连接?在Windows主机上使用什么软件建立连接?在Linux主机上使用什么软件建立连接?1、答:RS-232,以太网口、并口在Windows主机上使用超级终端软件在Linux主机上使用Minicom软件5嵌入式开发环境主要包括哪些组件?嵌入式系统开发需要交叉编译和在线调试的开发环境,主要包括。。。SPSPSPSP栈空间的增长方向地址的增长方向栈空间的增长方向栈空间的增长方向栈空间的增长方向HiAddressLoAddressLoAddressHiAddress第页共33页3宿主机目标机(评估电路板)基于JTAG的ICD仿真器、或调试监控软件、或在线仿真器ICE运行于宿主机的交叉编译器和链接器、以及开发工具链或软件开发环境嵌入式操作系统6在进行基于ARM核的嵌入式系统软件开发时,调用如下函数:intdo_something(intarg1,void*arg2,chararg3,int*arg4)这四个参数通过什么方式从调用程序传入被调函数?根据ATPCS编程规范,调用函数和子程序通过R0——R3四个寄存器传递参数,超过四个参数使用堆栈传递。因此arg1通过R0传入,arg2,通过R1传入,arg3通过R2传入,arg4通过R3传入7目前使用的嵌入式操作系统主要有哪些?请举出六种较常用的。WindowsCE/WindowsMobile、VxWork、Linux、uCos、Symbian、QNX任选六1、写一条ARM指令,完成操作r1=r2*3(4分)ADDR1,R2,R2,LSL#12、初始值R1=23H,R2=0FH执行指令BICR0,R1,R2,LSL#1后,寄存器R0,R1的值分别是多少?(4分)R0=21H,R1=23H写一条ARM指令,完成操作r1=r2*4初始值R2=5,R3=4,R4=3,执行指令SUBSR2,R3,R4,LSR#2后,寄存器R2,R3的值分别是多少?3、说明指令STMIAr12!,{r0-r11}的操作功能。将R0-R11十二个寄存器中的32位数据,存储到R12地址指针为起始地址的内存中,地址的操作方式是先操作、后增加,并更新地址。4、写一段ARM汇编程序:循环累加队列myarray中的所有元素,直到碰上零值元素,结果放在r4中。程序框架如下,补充代码完成上述功能。(8分)AREAtotal,CODEREADONLYENTRYstartMOVr4,#0ADRr0,myarray;在此补充代码loopLDRr1,[r0],#4ADDr4,r4,r1CMPr1,#0第页共33页4BNEloop5、这是一个由源程序strtest.c和scopy.s组成的混合程序项目,通过调用strcopy完成字符串复制,程序代码如下。要求阅读程序,在程序中的注释符“//”后,说明该句程序的作用,并说明extern和EXPORT伪指令的在程序中的作用。(8分)strtest.c#includestdio.hexternvoidstrcopy(char*d,constchar*s);intmain(){constchar*srcstr=Firststring-source;chardststr[]=Secondstring-destination;printf(Beforecopying:\n);printf('%s'\n'%s'\n,srcstr,dststr);//strcopy(dststr,srcstr);//printf(Aftercopying:\n);printf('%s'\n'%s'\n,srcstr,dststr);//return0;}scopy.sAREASCopy,CODE,READONLYEXPORTstrcopystrcopyLDRBr2,[r1],#1;STRBr2,[r0],#1;CMPr2,#0;BNEstrcopy;MOVpc,lr;END//输出源串和目标串(8分)//调用strcopy函数//输出复制后的源串和目标串;r1指向源串,从源串载入一个字节的字符到r2,并更新r1=r1+1;r0指向目标串,从r2保存一个字节的字符到目标串,并更新r0=r0+1;测试串尾标志\0;非零转标号strcopy;返回一、程序测试题(共24分)1、写一段ARM汇编程序:循环累加队列myarray中的所有元素,直到碰上零值元素,结果放在r4中。程序框架如下,补充代码完成上述功能。(8分)AREAtotal,CODEREADONLY第页共33页5ENTRYstartMOVr4,#0ADRr0,myarray;在此补充代码答:loopLDRr1,[r0],#4ADDr4,r4,r1CMPr1,#0BNEloopstopBstopmyarrayDCD0x11DCD0x22……DCD0x0END1、阅读如下程序段,画出程序流程图,并回答执行程序过程中R0取不同的值程序跳转方向,最终R0中的值是多少。(5分)numEQU2startMOVr0,#0MOVr1,#5MOVr2,#2BLfuncstopBstopfuncCMPr0,#numMOVHSpc,lrADRr3,JumpTableLDRpc,[r3,r0,LSL#2]JumpTableDCDDoADCDDoSDoAADDr0,r1,r2MOVpc,lrDoSSUBr0,r1,r2MOVpc,lrEND第页共33页62、有如下程序段,画出程序流程图,并回答执行程序以后R0的值是多少。(8分)numEQU2startMOVr0,#0MOVr1,#5MOVr2,#2BLfuncstopBstopfuncCMPr0,#numMOVHSpc,lrADRr3,JumpTableLDRpc,[r3,r0,LSL#2]JumpTableDCDDoADCDDoSDoAADDr0,r1,r2MOVpc,lrDoSSUBr0,r1,r2MOVpc,lrEND答:R0为0调用DoA,R0为1调用DoS,R0大于2直接返回,流程图略。R0=73、这是一个由源程序strtest.c和scopy.s组成的混合程序项目,通过调用strcopy完成字符串复制,程序代码如下。要求阅读程序,在程序中的注释符后,说明该句程序的作用,并说明extern和EXPORT伪指令的在程序中的作用。(8分)strtest.c#includestdio.hexternvoidstrcopy(char*d,constchar*s);intmain(){constchar*srcstr=Firststring-source;chardststr[]=Secondstring-destination;printf(Beforecopying:\n);printf('%s'\n'%s'\n,srcstr,dststr);//输出源串和目标串strcopy(dststr,srcstr);//调用strcopy函数printf(Aftercopying:\n);printf('%s'\n'%s'\n,srcstr,dststr);//输出复制后的源串和目标串return0;}scopy.s第页共33页7AREASCopy,CODE,READONLYEXPORTstrcopystrcopyLDRBr2,[r1],#1;r1指向源串,从源串载入一个字节的字符到r2,并更新r1=r1+1STRBr2,[r0],#1;r0指向目标串,从r2保存一个字节的字符到目标串,并更新r0=r0+1CMPr2,#0;测试串尾标志\0BNEstrcopy;非零转标号strcopyMOVpc,lr;返回END名词解释RISC和CISC2、IP3、ISP4、JTAG5、IDERISC(ReduceInstructSetComputer);CISC(COMPLEXInstructSetComputer)IP(IntellectualProperty);ISP(in-systemprogrammable)JTAG(JoinTestActiveGroup)IDE(IntegrateDevelopmentEnvironment)判断题请在题目后括号中标记符号(√或者×)。1、目前使用的嵌入式操作系统主要有RTX51、WindowsCE/WindowsMobile、Linux、uC/osii、和、Symbian、andriod等。()2、嵌入式系统的设计可以分成三个阶段:分析、设计和实现。()3、XScale微处理器使用的是ARM公司ARMV9TE版内核和指令集。()4、微处理器有两种总线架构,使用数据和指令使用同一接口的是冯诺依曼体系结构,分开的指令和数据接口、取指和数据访问可以并行进行的是哈佛结构体系结构。()第页共33页85、ARM核有两个指令集,分别是ARM和Thumb。()6、在ARM体系构架中对复杂的内存管理是通过系统控制协处理器cp15和MMU(存储管理部件)来进行的。当系统发生DataAbort(数据)异常和PrefetchAbort
本文标题:嵌入式期末考试复习资料
链接地址:https://www.777doc.com/doc-2440333 .html