ARM复习题(周立功的嵌入式基础教材)
一.填空、选择、判断
1、现代计算机领域出现了通用计算机与嵌入式计算机两大分支。
2、嵌入式系统定义:嵌入到对象体系中的专用计算机应用系统。
3、嵌入式系统的3个基本特点:嵌入性、内含计算机、专用性。
4、普通个人计算机(pc)的处理器具有内置的内存管理单元(MMU),提供内存保护和多任务能力的虚存和通用目的的操作系统。
5、实时操作系统是事件驱动的,能对来自外界的作用和信号在限定时间范围内作出响应,它强调实时性、可靠性和灵活性。
6、实时操作系统任务之间的切换应当以优先级为根据。
7、ARM内核采用精简指令集计算机(RISC)体系结构。
8、ARM处理器采用冯.诺依曼结构,指令和数据共用一条32位总线,因此只有装载、存储、交换指令可以对存储器中数据进行访问。
9、ARM指令的长度刚好是1个字,Thumb指令的长度刚好是一个半字。
10、 半字对齐的特征bit0=0,字对齐的特征bit1=0,bit0=0。
11、 三级流水线结构包括取指、译码、执行三个阶段。
12、 程序计数器PC总是指向“正在取指”的指令。
13、 ARM处理器具有两个状态:T=0时,处理器处于ARM状态和T=1时,处理器处于Thumb状态。
14、 ARM处理器支持7种处理器模式,除用户模式外,其它6种都称为特权模式。
15、 只有在特权模式下才允许对当前程序状态寄存器CPSR的所有控制位直接进行读/写访问,而在非特权模式下只允许对CPSR的控制位进行间接访问。
16、 当一个异常发生时,处理器总是切换到ARM状态。
17、 堆栈操作通常发生在子程序调用、异常发生或者程序运行过程中寄存器数量不够时。
18、 堆栈的最重要的特性:先入后出。
19、 当发生异常中断时,LR保存的是异常处理程序的返回地址。
20、 Thumb指令集带有传统的PUSH和POP指令用于堆栈操作处理,他们以“满递减堆栈”的方式来实现。
21、 ARM内核在中断异常位置时置位中断禁止控制位,这样可以防止不受控制的异常嵌套。
22、 ARM7没有MMU,预取指终止异常中断处理程序只是简单地报告错误,然后退出。
23、 ARM实际芯片的存储器可能支持大端存储格式或小端存储格式。
24、 ARM7TDMI具有32位ARM指令集和16位Thumb指令集。
25、 寻址方式是根据指令中给出的地址码字段来实现寻找真正操作数地址的方式。
26、 若使用LDR指令加载数据到PC寄存器,则实现程序跳转功能。
27、 CMP指令与SUBS指令的区别在于CMP指令不保存运算的结果。
28、 ARM7TDMI具有最高64位的乘法指令。
29、 B和BL分支指令的跳转范围±32M地址范围。
30、 BX指令在进行跳转的同时可以实现处理器状态的转换。
31、 与ARM指令的LDR相比,伪指令的LDR的参数有“=”符号。
32、 Thumb指令集中除了分支指令B有条件执行功能外,其它指令均为无条件执行。
33、 LPC2000系列芯片的AHB外设和VPB外设分别分配了2MB的地址范围,每个外设分配了16KB的地址空间。
34、 片内flash通过128位宽度的总线与ARM内核相连。
35、 给存储器分配地址的过程称为“存储器映射”
36、 需要进行存储器重映射的存储单元包括引导块和用于保存异常向量表的少量存储单元。
37、 从系统上电,到正式运行用户的main函数之前,要运行一段代码,这段代码被称为启动代码。
38、 LPC2000系列ARM时钟系统包括4个部分:晶体振荡器、唤醒定时器、锁相环、VPB分频器。
39、 晶体振荡器的两种工作模式为从属模式和振荡模式。
40、 复位是将计算机系统中的硬件逻辑归位到一个初始状态,
41、 LPC2000系列ARM有两个复位源:外部复位和看门狗复位。
42、 LPC2000系列ARM有4组电源引脚,其中给内核供电的电源为1.8V,给端口供电的电源为3.3V。
43、 对PLLCON的更改只有在对PLLFEED寄存器执行了正确的PLL馈送序列之后才生效。
44、 PLL的馈送序列分两步进行:1.将值0xAA写入PLLFEED;2.将0x55写入PLLFEED。
45、 LPC2000系列芯片支持两种节电模式:空闲模式和掉电模式。
46、 LPC2000系列ARM的VIC模块最多可以控制32个中断请求输入;16个向量IRQ中断;16个优先级,可动态分配优先级;可产生软中断。
47、 中断使能寄存器用来使能某一个中断;中断选择寄存器用来设置中断类型。
48、 CPU能否正常响应中断,取决于程序状态寄存器CPSR中“I”标志位和“F”标志位;而CPU能否正常响应外设产生的中断,则完全取决与VIC。
49、 产生FIQ中断时,处理器会同时禁止FIQ和IRQ中断。
50、 外部中断的触发方式:边沿触发和电平触发。
51、 LPC2000系列ARM含有4个外部中断源。
52、
二.分析计算
1、指出ARM7TDMI中T,D,M,I的分别代表的含义?(P19)
2、根据3级流水线的操作过程,分析以下程序执行完成后PC寄存器的内容。(P21)
0x4000 ADD PC,PC,#4 0x4004 …… 0x4008 …… 0x400c …… |
3、CPSR和SPSR相互之间的关系?(P33)
4、CPSR中各标志位的具体含义?(P36)
5、指出以下哪些是合法常量,哪些是非法常量?( P59)
合法常量:0x3FC、0、0xF0000000、200、0xF0000001
非法常量:0x1FE、511、0xFFFF、0x1010、0xF0000010
6、根据指令操作,在相应寄存器和存储器空间内填写对应内容。
STMDA R2!,{R4,R5,R7}
|
|
|
|
|
|
(R7) |
|
(R5) |
|
(R4) |
|
|
|
|
51FCH |
|
(51F0H) |
LDMDB R1!,{R2-R4,R6}
0x01 |
|
0x02 |
|
0x03 |
|
0x04 |
|
0x05 |
|
0x06 |
|
0x07 |
|
0x08 |
51FCH |
|
(51ECH) |
R6 R4 R3 R2 |
(0x05) |
(0x06) |
(0x07) |
(0x08) |
7、请指出MOV指令与LDR加载指令的区别和用途。
答:MOV指令用于将数据从一个寄存器传送到另一个寄存器中,或者将一个常数传送到一个寄存器中,但是不能访问内存。LDR指令用于从内存中读取数据放入寄存器中。
8、对片内flash的编程有哪3种方式?(P104)
9、根据下表内容,要将P0.1引脚设置为串口接收功能(RxD),应如何进行初始化? (P175)
PINSEL0位 |
引脚名称 |
00 |
01 |
10 |
11 |
复位值 |
1:0 |
P0.0 |
GPIO P0.0 |
TxD(UART0) |
PWM1 |
保留 |
00 |
3:2 |
P0.1 |
GPIO P0.1 |
RxD(UART0) |
PWM3 |
EINT0 |
00 |
5:4 |
P0.2 |
GPIO P0.2 |
SCL |
捕获0.0 |
保留 |
00 |
10、将P0.0设置为输出高电平。(P184)
11、写出FIQ异常事件硬件处理流程。(P190)
12、写出IRQ异常事件硬件处理流程。(P190)
13、编写指令将外部中断0分配为FIQ(EINT0_num为外部中断0的中断通道号)。(P193)
14、将外部中断0分配为FIQ,并编写FIQ服务程序。(P201)
15、编写定时器0的初始化程序清单,将定时器0分配为向量IRQ通道0,中断服务程序地址为Timer_ISR。(P206)
16、定时器0的中断服务程序编写。(P207)
17、定时器的特性?(P222)
18、定时器定时时间如何设定?(P235)
19、串口有哪几个中断,对应于怎样的优先级?(P284、P285)