《2022年嵌入式系统复习题 .pdf》由会员分享,可在线阅读,更多相关《2022年嵌入式系统复习题 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一、1ARM7TDMI处理器可以工作在ARM 和 THUMB 两种工作状态,在开始执行程序时,处理器只能处于ARM 状态。2ARM 处理器的5 种异常模式分别是FIQ 模式, IRQ 模式, SVC 模式,中止模式,未定义模式。3. ARM 指令全是32 位的,并且指令编码的最高4 位表示条件代码,所以 ARM 指令全部可以条件执行。4. 在 ARM处理器中, R13 通常用作堆栈指针寄存器,R14 通常用作链接寄存器,R15用作程序计数器。5. 由于在 ARM 状态下指令总是字对齐的,所以PC 的 bit1:0 总是 00。6. 若子程序的返回地址保存在LR 中,执行指令MOV PC, LR
2、可以实现子程序的返回。7. 使用 FIQ 模式下的分组寄存器R8R12 可以使 FIQ 中断处理过程更加快速。8. ARM 的存储器系统存储数据时支持两种格式,若较高的字节数据存放在较高的地址,则称为小端格式。9. ARM 指令的条件码符号EQ 表示相等,此时CPSR 中的标志位Z=1。10ARM7TDMI中的 T 表示 Thumb,M 表示长乘。11. 对于 3 级流水线的ARM 处理器, PC 总是指向下2 条指令的地址,因此PC 保存的地址值是当前指令地址加8。12. ARM 处理器的5 种异常模式分别是管理,中止,未定义,IRQ, FIQ。13. 每一种异常模式下都有自己的R13 和
3、R14 寄存器, R13 通常用作堆栈指针,R14 用作链接寄存器。14. ARM 指令全是32 位的,并且指令编码的最高4 位表示条件代码。15. ARM 的存储器系统存储数据时支持大端模式和小端模式格式。16. ARM 数据处理指令使用2 个源操作数,其中第2 源操作数的形式可以是寄存器,寄存器移位和立即数。17. LDR/STR 指令是用于寄存器和存储器之间进行数据传送的指令。18.变址寻址方式按照地址偏移量变化方式不同,可以分为前变址模式,模式,自动变址模式。19.ARM 中实现程序的跳转可以使用B 指令,也可以对PC 直接赋值实现程序转移。二、1. 数据在存储器中存放如图,程序如下:
4、AREA PROC, CODE, READONL Y MOV R5 , #3 MOV R4, #0 LDR R2, =0 x0C000000 LDR R3, =0 x0C00000C 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 2010 年 11 月 30 日第2 页共 2 页LOOP LDR R0, R2, #4 LDR R1, R3, #4 MLA R4, R0, R1, R4 SUBS R5, R5, #1 BNE L
5、OOP B .END (1)伪操作 AREA 的作用是什么?伪指令LDR 的作用是什么?AREA 定义一个程序段,LDR 将地址装载到寄存器R2,R3. (2)该程序执行后,(R4)=20 , (R2) =0 x0C00000C 2. AREA PROC, CODE, READONL Y MOV R5 , #3 MOV R4, #0 LDR R2, =tablex LDR R3, =tabley LOOP LDR R0, R2, #4 LDR R1, R3, #4 MLA R4, R0, R1, R4 SUBS R5, R5, #1 BNE LOOP SWI 0 x11 AREA data1,
6、DATA tablex DCD 0 x2 ,0 x3,0 x4 tabley DCD 0 x1 ,0 x2,0 x3 END 说明该程序的功能,该程序执行后,(R4)=20, (R5)= 0。3. #include extern void str1(char *d,const char *s); int main( ) const char *src=“source ” ; char dst =“ destination” ; str1(dst, src); printf( “%sn” ,dst ) ;0 x0C000000 2 0 x0C000004 3 0 x0C000008 4 0 x0
7、C00000C 1 0 x0C000010 2 0 x0C000014 3 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - AREA STRING, CODE, READONLY EXPORT str1 str1 LDRB R2, R1,#1 STRB R2, R0,#1 CMP R2, #0 BNE str1 MOV PC, LR END 说明该程序的功能,该程序执行后,数组dst 的内容是: source三、1、用 ARM汇
8、编语言编写程序,把从0 x0C000000 开始到 0 x0C000500 结束的存储区里的数据复制到0 x0C000900 开始的地方。以字为单位复制。答:AREA BCOPY, CODE, READONLY LDR R8,=0 x0C000000 LDR R9,=0 x0C000500 LDR R10,= 0 x0C000900 COPY LDR R0,R8 STR R0,R10 CMP R8,R9 ADDNE R8,R8,#4 ADDNE R10,R10,#4 BNE COPY B . END 2. S3C44B0X 端口 D 的控制寄存器PCOND 、 PDATD 、 PUPD 地址分
9、别为0 x1d20020、 0 x1d20024、0 x1d20028,用 C 语言编写程序实现对端口D 的初始化,要求将端口D 配置为输出口,上拉电阻使能。然后使PD7输出为 1,端口 D其他位状态不变。答: #define rPCOND (*(volatile unsigned *)0 x1d20020) #define rPDATD (*(volatile unsigned *)0 x1d20024) #define rPUPD (*(volatile unsigned *)0 x1d20028) void Port_Init(void) rPCOND 0 x5555; rPUPD 0
10、x00000000; rPDATD = rPDATD|0 x80; 四、1、 ARM 处理器的异常中断有哪些类型?对应的异常向量是什么?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - 2010 年 11 月 30 日第4 页共 2 页答:复位 -0 x00000000 未定义指令 -0 x00000004 SWI-0 x00000008 预取中止 -0 x0000000c 数据中止 -0 x00000010 IRQ中断 -0 x
11、00000018 FIQ中断 -0 x0000001c 2.ARM 处理器的异常中断响应过程如何?答: (1)将 CPSR保存到 SPSR ; (2)设置CPSR4 :0 位和 F、I 位, ,使处理器进入相应的模式,禁止中断; (3)返回地址保存到R14_mode 。 (4)给 PC赋值,程序转到异常中断向量地址。3. ARM 数据处理指令中的第2 操作数有几种形式?举例说明。答:第 2 操作数可以是寄存器、移位后寄存器或立即数。如:ADD R0, R1,R2 ;ADD R0, R1,R2,LSR #2 ; ADD R0, R1,#200 ;4、 ARM7TDMI指令系统有几种寻址方式?LD
12、R R1,R0,#0X08 属于哪种寻址方式?答: 7 种方式:立即寻址,寄存器寻址,寄存器间接寻址,基址加偏址寻址,堆栈寻址,块拷贝寻址,相对寻址。给出的指令为基址加偏址寻址方式。5. S3C44B0X 的存储器空间是如何划分的?SDRAM 存储器应当安排在哪个空间?答:划分为8 个 bank:特殊功能寄存器位于0 x01C000000 x02000000 的 4MB空间;bank0bank5 的起始地址和空间大小都是固定的;bank6 的起始地址是固定的,空间可配置为 2、4、 8、16、 32MB ;bank7 的空间大小与bank6 一样。 bank0bank5 可配置成 SROM存储
13、器, bank6、7 可配置成SROM/DRAM/SDRAM。 6.说明 S3C44B0X I/O 端口控制寄存器的种类及功能。答: S3C44B0X I/O 端口大多数引脚是多功能的,端口配置寄存器用于配置端口引脚的功能;端口数据寄存器用于向端口输出数据和读入数据。端口上拉电阻配置寄存器用于配置端口上拉电阻使能。7.ARM有几种工作状态?如何用指令进行状态切换?两种工作状态ARM 和 THUMB ,用 BX Rm 指令切换。8.ARM的异常中断优先级如何规定?(1)复位(2)数据中止(3)FIQ (4)IRQ (5)预取指异常中止(6)SWI 、未定义指令9. 伪操作 DCB 、DCD 、D
14、CW 的作用是什么?DCB是字节数据定义伪操作,DCD是字数据定义伪操作,DCW 是半字数据定义伪操作。10说明 BEQ 、BIC、RSB 、CMP 、LDR指令的功能。 BEQ :相等时跳转;BIC:位取反与;RSB :反向减法; CMP:比较; LDR:寄存器装载11简述块拷贝寻址的功能。块拷贝是多寄存器传送指令LDM/STM 的寻址方式。 LDM/STM 指令可以把存储器中的一个数据块加载到多个寄存器中,也可以把多个寄存器中的内容保存到存储器中。12. 写出 ARM 的异常中断向量表(异常类型名称和向量地址)。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
15、- - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - 0 x0 复位; 0 x04 未定义指令异常; 0 x08 SWI中断; 0 x0C 指令预取中止; 0 x10 数据访问中止;0 x18 IRQ中断; 0 x1C FIQ中断13. 简述 S3C44B0X矢量中断模式的原理。通常情况下,ARM7 内核受到来自IRQ的中断请求时,会在0 x18 地址处执行一条指令。但在矢量模式下,当ARM7从地址0 x18 处取指令时,中断控制器会在数据总线上加载分支指令,这些分支指令使PC跳转到每个中断向量地址处,从而转向
16、中断服务程序。14.S3C44B0X的存储器空间是如何划分的?划分为 8 个 bank:特殊功能寄存器位于0 x01C000000 x02000000 的 4MB空间;bank0bank5 的起始地址和空间大小都是固定的;bank6 的起始地址是固定的,空间可配置为 2、4、 8、16、 32MB ;bank7 的空间大小与bank6 一样。 bank0bank5 可配置成 SROM存储器, bank6、7 可配置成SROM/DRAM/SDRAM。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -