嵌入式系统(ARM)考试复习题(试题+答案)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例如指令:
ADD R0,R0,#1
;R0←R0 + 1
MOV R0,#0xff00
;R0←0xff00
(3)寄存器移位寻址
寄存器移位寻址是 ARM 指令集特有的寻址方式。第 2 个寄
存器操作数在与第 1 个操作数结合之前,先进行移位操作。
例如指令:
MOV R0,R2,LSL #3
;R2 的值左移 3 位,结
1、实现 ARM 工作状态转换的指令,其句法如下:
BX 目标地址
(1)BX 指令将引起处理器转移到目标地址所指向的地址处执
行。
(2)目标地址的位[0]不用来作为地址的一部分。
a.若目标地址的位[0]为 1,则指令将 CPSR 中的标志 T 置
位,且将目标地址的代码解释为 Thumb 代码;
b.若目标地址的位[0]为 0,则指令将 CPSR 中的标志 T 复
(1)拷贝 CPSR 到 SPSR_<mode> (2)设置适当的 CPSR 位:
第1页共8页
a.改变处理器状态进入 ARM 态
b.改变处理器模式进入相应的异常模式
c.设置中断禁止位禁止相应中断 (如需要)
(3)保存返回地址到 LR_<mode>
(4)设置 PC 为相应的异常向量地址
2、返回时, 异常处理程序需要:
具有较高的执行效率。
2、CISC 和 RISC
类别
CISC
RISC
指令系统 指令数量很多
较少,通常少于 100
执行时间 有些指令执行时间很长,如整
块的存储器内容拷贝;或将多 没有较长执行时间的指令
个寄存器的内容拷贝到存贮器
编码长度 编码长度可变,1-15 字节
编码长度固定,通常为 4 个字节
寻址方式 寻址方式多样
Байду номын сангаас
(2) 6 个状态寄存器。
2、R0~R7 为未分组的寄存器,也就是说对于任何处理器模
式,这些寄存器都对应于相同的 32 位物理寄存器。
3、寄存器 R8~R14 为分组寄存器。它们所对应的物理寄存器 取决于当前的处理器模式,几乎所有允许使用通用寄存器的指令都 允许使用分组寄存器。
4、寄存器 R8~R12 有两个分组的物理寄存器。一个用于除 FIQ 模式之外的所有寄存器模式,另一个用于 FIQ 模式。这样在发 生 FIQ 中断后,可以加速 FIQ 的处理速度。
ASR:算术右移(Arithmetic Shift Right),移位过程中保持 符号位不变,即如果源操作数为正数,则字的高端空出的位补 0, 否则补 1
ROR:循环右移(Rotate Right),由字的低端移出的位填入 字的高端空出的位
RRX : 带 扩 展 的 循 环 右 移 ( Rotate Right extended by 1 place),操作数右移一位,高端空出的位用原 C 标志值填充。
是中断服务子程序的地址,PC 指针跳入到中断服务子程序,进行
表 3.4.3 S3C2410A 的端口 C I/O 口配置情况
中断处理。
端口 C
可选择的引脚端功能
GPC15~GPC8
输入/输出
VD7~VD0
–
GPC7~GPC5
输入/输出
LCDVF2~LCDVF0
–
GPC4
输入/输出
VM
–
GPC3
输入/输出
5、寄存器 R13、R14 分别有 6 个分组的物理寄存器。一个用 于用户和系统模式,其余 5 个分别用于 5 种异常模式。 三、处理器工作模式
1、ARM 处理器有 7 种工作模式; ● usr(用户模式):ARM 处理器正常程序执行模式。 ● fiq(快速中断模式):用于高速数据传输或通道处理 ● irq(外部中断模式):用于通用的中断处理 ● svc(管理模式):操作系统使用的保护模式 ● abt (数据访问终止模式): 当数据或指令预取终止时进入 该模式,可用于虚拟存储及存储保护。 ● sys(系统模式): 运行具有特权的操作系统任务。 ● und(未定义指令中止模式):当未定义的指令执行时进入 该模式,可用于支持硬件协处理器的软件仿真。 ARM 微处理器的运行模式可以通过软件改变,也可以通过外 部中断或异常处理改变。 除用户模式以外,其余的所有 6 种模式称之为非用户模式,或 特权模式(Privileged Modes);其中除去用户模式和系统模式以 外的 5 种又称为异常模式(Exception Modes),常用于处理中断 或异常,以及需要访问受保护的系统资源等情况。 2、除用户模式外,其它模式均为特权模式。ARM 内部全部系 统资源和一些片内外设在硬件设计上只允许(或者可选为只允许) 特权模式下访问。 3、此外,特权模式可以自由的切换处理器模式,而用户模式 不能直接切换到别的模式。 四、ARM 异常处理 1、当异常产生时, ARM 核:
同一个存储器的不同物理位置;采用单一的地址及数据总线,程序
指令和数据的宽度相同。程序计数器(PC)是 CPU 内部指示指令
和数据的存储位置的寄存器。
(2)哈佛结构的主要特点是将程序和数据存储在不同的存储
空间中,即程序存储器和数据存储器是两个相互独立的存储器,每
个存储器独立编址、独立访问。提高执行速度,提高数据的吞吐率,
例如指令:
MOV R1,R2
;R1←R2
SUB R0,R1,R2
;R0←R1- R2
(2)立即寻址
在立即寻址指令中数据就包含在指令当中,立即寻址指令的操
作码字段后面的地址码部分就是操作数本身,取出指令也就取出了
可以立即使用的操作数(也称为立即数)。立即数要以“#”为前
缀,表示 16 进制数值时以“0x”表示。
控制 ROM, SRAM, SDRAM, etc .
(3)除 Bank0 (16/32-bit) 外,所有的 Bank 都可以通过编
程选择总线宽度= (8/16/32-bit) ;
(4)7 个 Bank 固定起始地址,最后一个 Bank 可调整起始地
址;
(5)最后两个 Bank 大小可编程
(6)所有 Bank 存储周期可编程控制;
(4)寄存器间接寻址 指令中的地址码给出的是一个通用寄存器编号,所需要的操作 数保存在寄存器指定地址的存储单元中,即寄存器为操作数的地址 指针,操作数存放在存储器中。 例如指令 : LDR R0,[R1] ;R0←[R1](将 R1 中的数值作为地址,取 出此地址中的数据保存在 R0 中) STR R0,[R1] ;[R1] ←R0 (5)变址寻址 变址寻址是将基址寄存器的内容与指令中给出的偏移量相 加,形成操作数的有效地址,变址寻址用于访问基址附近的存储单 元,常用于查表,数组操作,功能部件寄存器访问等。 例如指令: LDR R2,[R3,#4] ;R2←[R3 + 4] (将 R3 中的数值加 4 作为地址,取出此地址的数值保存在 R2 中) STR R1,[R0,#-2] ;[R0-2] ← R1 (将 R0 中的数值减 2 作为地址,把 R1 中的内容保存到此地址位 置) (6)多寄存器寻址(LDM/STM) LDM/STM 指令可以把存储器中的一个数据块加载到多个寄 存器中,也可以把多个寄存器中的内容保存到存储器中。寻址操作 中的寄存器可以是 R0-R15 这 16 个寄存器的子集或是所有寄存器。 采用多寄存器寻址方式,一条指令可以完成多个寄存器值的传送,
果放入 R0,即 R0=R2 * 8
ANDS R1,R1,R2,LSL R3 ;R2 的值左移 R3 位,
然后和 R1 相与操作,结果放入 R1
可采用的移位操作如下:
LSL:逻辑左移(Logical Shift Left),寄存器中字的低端空出 的位补 0。
LSR:逻辑右移(Logical Shift Right),寄存器中字的高端空 出的位补 0。
(7)如果同时使用 Bank6/ Bank7,则要求连接相同容量的
存储器,而且其地址空间在物理上是连续的。
2、S3C2410 的 I/O 口配置
第3页共8页
S3C2410 有 117 个多功能口,掌握如何通过软件编程对每个
(2)模式切换。根据发生的中断类型,进入 IRQ 模式或 FIQ 模
I/O 口进行配置。如将端口 C 的最低 2 为设置为 01,既设置成输 式。
第2页共8页
这种寻址方式用一条指令最多可以完成 16 个寄存器值的传送。 格式为: LDM(或 STM){条件}{类型} 基址寄存器{!},寄存器列
表{∧} 该指令的常见用途是将多个寄存器的内容入栈或出栈。
(7)堆栈寻址 堆栈是一种数据结构,堆栈是特定顺序进行存取的存储区,操 作顺序分为“后进先出”和“先进后出”,堆栈寻址时隐含的,它 使用一个专门的寄存器(堆栈指针)指向一块存储区域(堆栈), 指针所指向的存储单元就是堆栈的栈顶。 (8)块复制寻址 块复制寻址用于把一块从存储器的某一位置复制到另一位置, 是一个多寄存器传送指令。 (9)相对寻址 相对寻址是变址寻址的一种变通,由程序计数器 PC 提供基准 地址,指令中的地址码字段作为偏移量,两者相加后得到的地址即 为操作数的有效地址。 2、堆栈寻址 满递增堆栈(FA):堆栈指针指向最后压入的数据,且由低地 址向高地址生成。 满递减堆栈(FD):堆栈指针指向最后压入的数据,且由高地 址向低地址生成。 空递增堆栈(EA):堆栈指针指向下一个将要放入数据的空位 置,且由低地址向高地址生成。 空递减堆栈(ED):堆栈指针指向下一个将要放入数据的空位 置,且由高地址向低地址生成。 3、多寄存器寻址(块拷贝寻址) (1)块拷贝寻址是多寄存器传送指令 LDM/STM 的寻址方式。 LDM/STM 指令可以把存储器中的一个数据块加载到多个寄存器 中,也可以把多个寄存器中的内容保存到存储器中。寻址操作中的 寄存器可以是 R0-R15 这 16 个寄存器的子集或是所有寄存器。 (2) LDM/STM 指令依据其后缀名的不同其寻址的方式也有 很大不同。 (3)LDMIA R1!,{R0,R2,R3}指令执行后,R1 的值变为
嵌入式系统(ARM)考试试卷(A 卷)
一、嵌入式微处理器体系结构
嵌入式微处理器的体系结构可以采用冯·诺依曼体系结构或哈
佛体系结构,指令系统可以选用精简指令系统 RISC 和复杂指令集
系统 CISC。
1、冯·诺依曼体系结构和哈佛体系结构;
(1)冯·诺依曼结构的计算机由 CPU 和存储器构成,其程序
和数据共用一个存储空间,程序指令存储地址和数据存储地址指向
R1+12—>R1;
注:!决定 Rn 的值是否随着传送而改变
寻址模式
描述
起始地址 结束地址
Rn!
IA
执行后增加
R
Rn+4*N
Rn+4*N
IB
执行前增加
Rn+4
Rn+4*N
Rn+4*N
DA
执行后减少
Rn
Rn-4*N
Rn-4*N
DB
执行前减少
Rn-4
Rn-4*N
Rn-4*N
六、ARM 状态与 Thumb 状态 的转换
简单寻址
可以对存储器和寄存器进行算 只能对寄存器对行算术和
操作
术和逻辑操作
逻辑操作,Load/Store 体 系结构
编译
难以用优化编译器生成高效的 采用优化编译技术,生成
目标代码程序
高效的目标代码程序
二、ARM 状态各模式下的寄存器
1、所有的 37 个寄存器,分成两大类:
(1)31 个通用 32 位寄存器;
(1)从 SPSR_<mode>恢复 CPSR
(2)从 LR_<mode>恢复 PC
(3)注意:这些操作只能在 ARM 态执行.
五、ARM 指令集
1、ARM 寻址方式:掌握 ARM 微处理器 9 种寻址方式的特点。
(1)寄存器寻址
操作数的值在寄存器中,指令中的地址码字段给出的是寄存器
编号,寄存器的内容是操作数,指令执行时直接取出寄存器值操作。
位,且将目标地址的代码解释为 ARM 代码。
七、 ARM 的硬件系统结构
1、S3C2410 的存储器系统
(1)S3C2410 支持大、小端模式,可通过软件选择大小端模
式;
(2)存储空间分成 8 个 Bank,每个 Bank128Mbytes,总共
1GB;
6 个 Bank 用于控制 ROM, SRAM, etc. 剩余的 2 个 Bank 用于
出模式,其余位不变。
(3)获取中断服务子程序地址。PC 指针跳到异常向量表所保存
rGPCCON
=
rGPCCON&0xfffffffc|0x00000001; 的 IRQ 或 FIQ 地址处,IRQ 或 FIQ 的异常向量地址处一般保存的
rGPCDAT= rGPCDAT |0x001; //PC0 口电平输出高
VFRAME
–
GPC2
输入/输出
VLINE
–
GPC1