嵌入式试题(总)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、嵌入式处理器分类、ARM系列分类、ARM技术演进
一、嵌入式处理器可以有哪些分类?
答:嵌入式处理器基本上可以分为嵌入式微处理器(EMPU)、嵌入式微控制器(EMCU)、嵌入式数字信号处理器(EDSP)、嵌入式片上系统(ESoC)
二、ARM系列的分类有哪些?
答:(1)ARM V4T系列:包括ARM7TDMI、ARM720T、ARM7EJ;(2)ARM V5TE 系列:ARM9E、ARM10E;(3)ARM V6系列:ARM11;(4)ARM V7系列:Cortex系列都属于V7系列,主要有Cortex-A8、Cortex-R4、Cortex-M3和Cortex-M1等处理器。
三、ARM技术的演进中都改变了什么?
答:ARM核心的体系结构从ARMV1发展到ARMV7;ARM系列的处理器从ARM1发展到了ARM11乃至Cortex系列;ARM系列的指令集包括了32位的ARM指令集、16位的Thumb指令集、16/32位的Thumb-2指令集;流水线从ARM7的3级发展到了Cortex-A8的13级;制造工艺从0.18um发展到32nm;内部的其他技术也在不断地升级和发展。
四、典型嵌入式系统的组成结构
答:从硬件上大致分为:处理器内核层、芯片级外设层、用户级外设层;从软件上大致分为:启动层、操作系统层、应用层。
二、ARM7TDMI的工作模式、工作方式、CPSR
1.ARM7TDMI有几种处理器工作模式,分别是什么?
ARM7TDMI处理器一共有7种工作模式
用户模式(usr)
快速中断模式(fiq)
外部中断模式(irq)
管理模式(svc)
数据访问中止模式(abt)
未定义指令中止模式(und)
系统模式(sys)
2.ARM7TDMI有几种工作方式,分别是什么?
ARMARM7TDMI有两种工作方式:ARM方式和Thumb方式
3.ARM7TDMI的CPSR中的条件标志位有哪些,分别表示什么意义?
N:负标志位,运算结果的第31位值,记录标志设置的结果。
Z:零标志位,如果标志设置操作的结果为0,则置位。
C:进位标志位,记录无符号加法溢出,减法无错位,循环移位。
V:溢出标志位,记录标志设置操作的有符号溢出。
4.编程实现将CPSR的值保存到通用寄存器R0中,将SPSR保存到R1中,然后使用通用寄存器R2的值修改CPSR,使用R3修改SPSR。
MRS R0,CPSR
MRS R1,SPSR
MSR CPSR,R2
MSR SPSR,R3
三、ARM7TDMI的寄存器文件、CPSR
1. ARM处理器是__RISC_结构,共有__37__个寄存器,其中__31__个通用寄存器,__6__个状态寄存器。
2.ARM状态寄存器和Thumb状态寄存器之间的关系
Thumb状态寄存器与ARM状态寄存器有如下的关系
(1)Thumb状态r0- r7与ARM状态r0- r7相同
(2)Thumb状态CPSR和SPSR与ARM状态CPSR和SPSR相同
(3)Thumb状态SP映射到ARM状态r13
(4)Thumb状态LR映射到ARM状态r14
(5)Thumb状态PC映射到ARM状态PC(r15)
3.列出ARM处理器的37个32位物理寄存器。
答:未分组寄存器R0~R7;分组寄存器R8_fiq~R12_fiq,R8_usr~R12_usr,R13_usr、R13_fiq、R13_irq、R13_svc、R13_abt、R13_und, R14_usr、R14_fiq、R14_irq、R14_svc、R14_abt、R14_und;程序计数器PC(R15);CPSR,SPSR_fiq、SPSR _irq、SPSR _svc、SPSR _abt、SPSR _und。
4.用汇编语言编写程序读取存储器0x40003100地址上的数据,将数据加1。
参考答案:
COUNT EQU 0x40003100 ; 定义一个变量,地址为0x40003100
AREA Example2,CODE,READONLY ; 声明代码段Example2
ENTRY ; 标识程序入口
CODE32 ; 声明32位ARM指令
START LDR R1,=COUNT ; R1 <= COUNT
MOV R0,#0 ; R0 <= 0
STR R0,[R1] ; [R1] <= R0,即设置COUNT为0
LDR R1,=COUNT
LDR R0,[R1] ; R0 <= [R1]
ADD R0,R0,#1 ; R0 <= R0 + 1
LOOP B LOOP
END
四、中断异常、响应过程、中断返回、优先级等
问答题
1、简要叙述ARM处理器对异常中断的响应过程。
2、ARM体系中的异常中断类型有哪些?
3、异常中断结束后,CPU是如何返回到主程序断点的?
编程题
4、ADC 中断从汇编程序到C程序中的中断服务程序跳转,写出基本格式
答案:
1、
1)保存处理器当前状态、中断屏蔽位以及各条件标志位。这是通过将当前程序状态寄存器
CPSR的内容保存到将要执行的异常中断对应的SPSR寄存器中实现的。各异常中断有自己的物理SPSR寄存器。
2)设置当前程序状态寄存器CPSR中相应的位。包括:进入ARM状态;设置CPSR中
的位,使处理器进入相应的执行模式;设置CPSR中的位,禁IRQ中断,当进入FIQ 模式时,禁止FIQ中断。
3)将寄存器Ir_mode(R14)设置成返回地址。
4)将程序计数器值(PC),设置成该异常中断的中断向量地址,从而跳转到相应异常中
断处理程序处执行。
2、
●复位(Reset)
●未定义的指令
●软件中断(software interrupt SWI)
●指令预取中止
●数据访问中止
●外部中断请求
●快速中断请求
3、异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:
●将所有修改过的用户寄存器从处理程序的保护栈中恢复。
●将SPSR复制回CPSR中,将连接寄存器LR的值减去相应的偏移量后送到PC中。
●若在进入异常处理时设置了中断禁止位,要在此清除。复位异常处理程序不需要返回。4、
汇编.s文件中定义:
B HandlerADC
...
HandlerADC
IMPORT ADC_ISR
B ADC_ISR
SUBS PC,R14,#4
.c 文件中定义中断服务程序:
__irq void ADC_ISR(void); // 注意两个_
__irq void ADC_ISR(void)
{
…
}