一、填空1、计算机软件一般可分为系统软件和应用软件。
2、微机系统,传统三总线:地址总线,数据总线和控制总线。
3、微机外部输入设备有鼠标,键盘等,外部输出设备有显示器,打印机等。
4、汇编语言程序开发过程一般通过4个步骤完成,分别是:编辑程序,汇编程序、链接目标文件与库文件、运行和调试5、ARM7TDMI有2种处理器状态,7种处理器模式2种处理器状态:ARM状态和Thumb状态7种处理器模式:用户(usr):程序正常执行模式,大部分任务在这种模式快速中断模式FIQ(fiq):当一个高优先级(fast)中断产生时将进入此种模式外部中断模式IRQ(irq):通用中断处理,一个低优先级(normal)中断产生管理(svc):操作系统保护模式,当复位或软中断指令执行时中止(abt):虚拟存储器或存储器保护,存取异常时未定义(und):支持硬件协处理器的软件仿真,执行未定义指令时系统(sys):运行特权操作系统任务,6、ARM指令长度32位,Thumb指令长度16位7、以能被4整除的地址开始的连续4个字节构成一个字,从偶数地址开始的连续2个字节构成一个半字8、计算机指令系统分为复杂指令系统(CISC)和精简指令(RISC)系统9、1MB=1024KB,4GB=4096MB10、CPU与外设之间的数据传输方式:无条件传送方式、查询方式、中断方式和DMA方式。
11、通常说的32位机,是指这种计算机的CPu能够同时处理32位二进制数12、定点16位字长的字采用2的补码形式表示时一个字所能表示的整数范围是(-2^15)->(2^15-1)13、接口电路的最基本功能是对输入数据缓冲、对输出数据锁存功能14、中断向量是终端服务程序入口地址15、在寄存器间接寻址方式中,被访问的操作数在主存单元中(堆栈中)16、一个存储器有m为地址总线,n位数数据总线,那么这个存储器的存储容量为2^m Byte,字长为n/8 byte。
17、嵌入式操作系统的三个基本特征:嵌入性、内含计算机、专用性18、ARM7TDMI中的T、D、M、I分别代表:支持Thumb指令集、支持片上调试、支持64位乘法指令、Embedded ICE硬件仿真模块19、ARM指令与Thumb指令切换状态用的是BX指令,查询处理器处于何种状态可以通过MRS指令读取CPSR寄存器中的T控制位20、实验中嵌入式Linux系统移植的过程分为三个阶段:下载Bootloder,下载Kernel,下载文件系统21、Bootloder主要功能是系统初始化、加载和运行把内核程序。
22、设系统节拍为50毫秒,调用OSTimeDLy(40)的效果是延时2秒钟,调用OSTimeDlyHMSM(0,1,27,650)的效果是延时1分27秒650毫秒。
23、目前使用的嵌入式操作系统主要有 Windows CE/Windows Mobile Linux、uCos、和 Symbian24、ARM微处理器有七种工作模式,它们分为两类非特权模式、特权模式。
其中用户模式属于非特权模式25、ARM微处理器复位后,PC(R15)的地址通常是0X0 ,初始的工作模式是supervisor26、在ARM体系构架中对复杂的内存管理是通过系统控制协处理器cp15 和MMU(存储管理部件)来进行的。
当系统发生Data Abort(数据)异常和Prefetch Abort(指令领取)异常时,异常处理程序透过嵌入式操作系统的内存管理机制,通过MMU交换物理内存和虚拟内存的页面,以保证程序正常执行。
27、构建嵌入式系统开发环境的工具链有多种,其中开放源码的工具链是GNU工具链,ARM 公司提供的工具链是ADS工具链28、在嵌入式系统的存储结构中,存储速度最快的是寄存器组29、嵌入式系统应用软件一般在宿主机上开发,在目标机上运行,因此需要一个交叉编译环境30、EQU伪指令相当于C语言#define,用于为一个常量定义字符名称31、CPU是用大规模或超大规模集成电路技术制成的半导体芯片,其中主要包括运算器、计算器和控制器三大部分。
32、在ARM处理器的七种运行模式中,具备独立的R8~R12寄存器的是(FIQ快中断)模式,没有SPSR寄存器的是(USR用户)模式和(SYS系统)模式。
33、ARM处理器在完成复位后工作于(svc管理)模式,执行的第一条指令所在的地址为(0x00000000 ),且这时外部中断屏蔽位I和快速中断屏蔽位F均被设置成( 1 )。
二、名词解释CPU:中央处理单元RTOS:实时操作系统MMU:内存管理单元UART:通用异步串行接口CPSR :当前程序状态寄存器AHB :先进的高性能总线VIC向量中断控制器SRAM:静态随机存储器DMA:直接存储器存取LR:链接寄存器三、判断题,错了,需改正1)指令LDR r0 ,[ r1 ], #4表示将r1指向的内容取到r0后,再将r1+4。
√(2)ARM的数据传送指令共有八种寻址方式,其中包括直接寻址。
答:错误。
ARM的数据传送指令共有八种寻址方式,但没有直接寻址。
(3)ARM指令必须字对齐存放,Thumb指令必须半字对齐存放。
√(4)ARM指令集不同寻常的特征是每条指令都是可条件执行的。
√(5)在ARM7TDMI处理器中,PC指向的是下一条要执行的指令。
答:错误。
PC指向的是再下条指令。
四、简答题(1)、冯诺依曼计算机体系结构的基本思想二进制表示指令和数据程序和数据事先存储在存储器中,计算机在工作时能够高速地从存储器中取出指令并加以执行运算器、控制器、存储器、输入/ 输出设备五部分组成(2)、外设为何通过接口和主机相连?内存与系统总线相连是否也需要接口?外设必须通过I/O接口电路与微机系统总线相连,因为CPU与外部设备通信在运行速度和数据格式上差异很大内存与系统总线相连不需要接口,因为接口是连接微机和外设的一个中间部件,I/O接口电路要面对主机和外设两个方面进行协调和缓冲,而内存属于微机系统的组成部分,他们之间的数据传输时标准的、统一的,没有必要通过接口。
(3)解释ARM7TDMI结构中流水线结构的指令执行顺序,并说明IRQ中断返回指令:SUBS PC, R14_irq,#4 的原理。
ARM处理器利用流水线来增加处理器指令流的速度,这样可以使几个操作同时进行,并使处理和存储器系统连续操作,分为取指、译码和执行三级流水结构。
在ARM指令中,执行PC-8指令,译码PC-4指令,取指PC指针指向指令,PC指针始终指向取知指令。
IRQ中断返回时,首先从R13_irq中获取IRQ中断异常模式的栈顶指针,然后将SPSR_irq中的内容复制到GPSR。
根据流水线特性,将K14_irq指向的地址减去一个偏移量后缓存入R15(PC),这样就能返回到进入中断之前的下一条指令,具体实现指令为SUBS PC, R14_irq,#4 .(4)、MOV指令与LDR指令都是往目标寄存器中传送数据,他们有什么区别?分析LDR R1,[R2] 指令和MOV R1,R2指令的执行结果有何不同?MOV指令用于将数据从一个寄存器传送到另一个寄存器,或者将一个常数传送到一个寄存器,但是不能访问内存。
LDR指令用于从内存中读入数据放到寄存器中。
LDR R1,[R2]:以R2寄存器中的内容作为地址访问存储器,读取存储单元的值到R1MOV R1,R2将寄存器R2的值传送到R1中去(5)、结合CPSR的结构,哪些是状态位?哪些是控制位,并说明其中控制位的作用。
31 30 29 28 27 8 7 6 5 4 3 2 1 0N,Z,C,V是状态位,I,F,T以及M[4:0]是控制位,中断控制标志位I和F,处理器状态位T;处理器模式位M4--M0(6)简述ARM核中什么寄存器用于存储PC?R13通常用来存储什么?R14通常用来存储什么?R15用于程序计数寄存器PC,R13通常用来做堆栈指针寄存器,R14通常用来做链接寄存器,保存函数调用的返回地址(7)、ARM7处理器有哪几种处理模式?用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式、系统模式。
(8)、ARM7处理器有哪几种工作状态?处理器如何标志不同状态?(必考)ARM7处理器有ARM状态和Thumb状态,处理器的当前状态寄存器CPSR的T位可标志出两种状态。
当T位为0时是ARM状态,为1时是Thumb状态。
(9)简述I/O设备与CPU交换数据有哪几种方式?(可能考)a)程序传送方式--->分为无条件传送、查询方式b)中断传送方式c)直接存储器存取传送方式(DMA)(10)、简述ARM数据传输的8种寻址方式(必考)1)立即数寻址,操作数在指令中,如ADD R0,R0,#10---->R0=R0+102)寄存器寻址,利用寄存器中的值作为操作数,如ADD R0,R1,R2--->R0=R1+R23)寄存器移位寻址,寄存器中的值移位后得到操作数4种常用的移位操作:LSL:逻辑左移,相当于无符号数*2LSR:逻辑右移,相当于无符号数除2ASR:算术右移,相当于带符号数除2ROR:循环右移如:ADD R0,R1,R2,LSL #2--->R0=R1+R2<<24)寄存器间接寻址寄存器中的值作为操作数的地址,操作数本身在存储器中如:LDR R0,[R1]--->R0 =[R1],取出R1存的地址所指向存储区的值,赋给R0STR R0,[R1]--->[R1]=R05)基址变址寻址基址寄存器的内容与指令中的偏移量相加,得到有效操作数的地址,然后访问该地址空间,分三种:【1】前索引如:LDR R0,[R1, #4]-->把地址为R1+4的存储区域的值赋给R0【2】自动索引如:LDR R0,[R1, #4]!--->完成前索引的功能外,还使R1=R1+4【3】后索引如:LDR R0,[R1],#4--->R1存的地址的内容写进R0,同时,R1=R1+46)多寄存器寻址一条指令完成多寄存器的传送,最多16个寄存器如:LDMIA R0,{R1-R5}--->R1=[R0],R2=[R0+4],R3=[R0+8],R4=[R0+12],R5=[R0+16]指令中的IA表示在执行完一次load操作之后,R0自增4.该指令将以R0为起始地址的5个字数据分别存入R1,R2,R3,R4,R5中7)相对寻址和基址变址寻址相似,只是把PC当作基址寄存器,指令中的标记当做偏移量8)堆栈寻址用于数据栈和寄存器组之间批量数据传送如:STMFD R13!,{R0,R1,R2,R3,R4}LDMFD R13!,{R0,R1,R2,R3,R4}第一条指令将R0-R4的数据一次压入堆栈,R13为堆栈指针第二条指令将数据出栈,依次送入R0-R4中。