嵌入式处理器

一.嵌入式处理器的结构、特点与分类
1.不同类型的典型嵌入式处理器及其特点
(1)数字信号处理器DSP
(2)ARM
(3)FPGA

2.分类
(1)按指令集:复杂指令集结构CISC、精简指令集结构RISC
关于RISC的特点
1)指令系统小,一个时钟周期内可以执行一条或多条指令
2)采用标准长度指令
3)指令格式规范,寻址模式较为简单
4)存储器访问只使用加载和存储两个指令
5)采用硬布线逻辑控制为主
(2)按存储机制:冯·诺依曼结构(CPU与存储器的连接只有一套总线)、哈佛结构(CPU与存储器的连接采用两套总线)
(3)按字长:8、16、32、64
(4)按不同内核:51、AVR、ARM、MSP430、MIPS、PowerPC、MC68K(后三种采用RISC、哈佛结构;AVR采用RISC结构,多数为哈佛结构;51是哈佛结构、8位字长;MSP430是16位字长)

3.ARM特点
(1)单周期操作
(2)指令流水线技术
(3)采用加载/存储指令访问内存
(4)三地址指令格式
(5)耗电省、功能强、成本低
(6)采用RISC结构

二.ARM处理器内核的体系结构
1.三种工作状态
(1)ARM状态:只支持32位指令宽度
(2)Thumb(16位)及Thumb-2状态(16位或32位):代码密度大于ARM状态,占用存储空间小
(3)调试状态

注意:
(1)除支持Thumb-2状态的处理器外,其他ARM处理器都可以工作在ARM状态
(2)如果从Thumb状态进入异常处理(异常处理要在ARM状态下进行),异常返回时,将自动切换到Thumb状态,当处理器进行异常处理时,将自动进入ARM状态
(3)Thumb-2状态是ARMv7版本的ARM处理器所具有的新状态
(4)Cortex-M3只有Thumb-2状态和调试状态

2.七种工作模式工作模式取决于CPSR低五位的值
(1)用户模式USR:程序正常时,执行工作模式,如果没有异常,不能改变工作模式
(2)系统模式SYS:运行特权级的操作系统任务
(3)管理模式SVC:操作系统的保护模式,处理软中断
(4)中止模式ABT:处理存储器故障,保护虚拟存储器和存储器
(5)快速中断模式FIQ:用于高速中断处理
(6)外部中断模式IRQ:处理普通中断
(7)未定义模式:处理未定义的指令陷阱,支持硬件协处理器的仿真

3.七种异常
(1)复位RESET:优先级最高,0x00000000
(2)未定义指令VND:优先级最低
(3)软件中断SWI:优先级最低
(4)指令预取中止PABT
(5)数据访问中止DABT
(6)外部中断请求IRQ:0x00000018
(7)快速中断FIQ

注意:
(1)ARM9体系结构中规定各异常向量之间差4个字节,各异常向量之间常设计一条无条件转移指令

(2)异常中断响应
1)将CPSR的值保存到将要执行的异常中断对应的各自SPSR中
2)设置CPSR的相应位
3)将引起异常指令的下一条地址(断点地址)保存到R14中
4)将PC强制赋值,转入向量地址,以便执行相应的处理程序

(3)异常中断返回
1)除复位异常,其他所有异常处理完毕后必须返回到原来程序处继续向下执行
2)恢复原来被保护的用户寄存器
3)将SPSR-mode寄存器的值赋值到CPSR中
4)根据异常类型将PC值恢复成断点地址
5)清除I和F标志,允许IRQ和FIQ中断

4.寄存器组织
(1)ARM处理器共有37个寄存器,包括31个通用寄存器(含PC)和6个状态寄存器,所有通用寄存器均为32位结构,既可以存放数据也可以存放地址

(2)R0-R15是通用寄存器(均为32位)
R0-R7在任何模式下均作为通用寄存器使用
R13:作为堆栈指针SP
R14:作为程序链接寄存器LR
R15:作为程序计数器PC

注意:R13和R14除了用户模式和系统模式分别作为SP、LR之外,其他模式下均有自己独特的标记方式,是专门用于特定模式的寄存器

(3)CPSR:当前程序状态寄存器
N:符号标志 : N=1 负数,N=0 整数
F:禁止快速中断控制位 : F=1 禁止 , F=0 允许
V:溢出标志 : V=1 有溢出
Z:全0标志 : Z=1 运算结果为0
I:外部IRQ中断禁止控制位:I = 1禁止IRQ中断,I = 0允许IRQ中断
T:ARM状态与Thumb指令切换
低5位的值决定ARM处理器的工作模式

三.典型ARM处理器内核
1.ARM7:冯·诺依曼结构、3级流水线、控制领域常用,无MMU
2.ARM9:哈佛结构、5级流水线
3.ARM11包括ARM11之前属于经典ARM处理器,之后分成Cortex系列
(1)Cortex-A:针对高端应用,都基于ARMv7A体系结构;Cortex-A内核的系列处理器称为应用型Cortex处理器
例:Cortex-A15:哈佛结构,13级流水线
(2)Cortex-R:针对实时系统。
例如:Cortex-R4采用8级流水线
(3)Cortex-M:针对微控制器,面向微控制器应用领域(面向中低端应用)内部无MMU。 Cortex-M系列归属于ARM 嵌入式Cortex处理器

例1:Cortex-M3:
1)可以实现中断嵌套,使用末尾连锁连续中断要3个时钟周期,普通中断要32个时钟周期
2)低功耗,门数目少、中断延迟短、调试成本低,是为要求有快速中断响应能力的深度嵌入式应用设计的
3)只有Thumb-2状态与 调试状态
4)LPC1700基于Cortex-M3内核
5)3级流水线

例2:Cortex-M0具有NVIC,因为Cortex-M系列是面向微控制器应用领域,NVIC是嵌套向量中断控制器,WIC是唤醒中断控制器,成本最低,采用冯·诺依曼结构

引申:
1)ARM11(采用ARMV6体系结构
2)Cortex-A系列都基于ARMv7A体系结构
3)Thumb-2状态是ARMv7版本所具有的的新状态,支持Thumb-2指令集的处理器主要由R和M
4)ARMv7M版本仅支持Thumb-2指令集的子集
5)ARMv8A使用64位寄存器,支持ARM、Thumb和A64三种指令集
6)基于Cortex-M0的专家处理器为SC100,基于Cortex-M3的专家处理器为SC300
7)Cortex-A系列中A5、A7、A9、A12、A17字长32位,而A50系列中的A53和A57字长64位

四.ARM处理器指令系统及汇编语言程序设计
1.伪指令
伪指令在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成
1)DCD:数据定义伪指令,用于分配一片连续的字存储单元并指定数据初始化 例如:Datatab DCD 0x12345678 DCW:半字
2)CODE16:伪指令通知编译器,其后的指令序列为16位的Thumb指令
3)EQU:等于伪指令,用于为程序中的常量、标号定义一个等效的字符名称
4)IMPORT:通知编译器要使用的标号在其他源文件中定义,但要在当前源文件引用
5)EXTERN/EXPORT/GLOBAL:声明一个全局标号,该标号在其他文件中引用

2.Thumb-2指令集:CPSID I:关闭外部中断 , CPSIE I:开启外部中断

3.四条分支指令
(1)B:转移指令
(2)BL:带返回的转移指令(子程序调用)、子程序返回调用程序:MOV PC,LR
(3)BX:带状态切换的转移指令
(4)BLX:带返回且带状态切换的转移指令

4.小端模式与大端模式
(1)小端模式:数据的高位保存在地址的高地址中,数据的地位保存在地址的低地址中
(2)大端模式:数据的高位保存在地址的低地址中,数据的地位保存在地址的高地址中

5.数据处理指令
(1)数据传送指令:
1)MOV:数据传送指令
2)MVN:数据取反传送指令

(2)算术逻辑运算指令:
1)LSL:逻辑左移
2)LSR:逻辑右移(左移一位相当于乘2,右移一位相当于除2)
3)ASL:算术左移
4)ASR:算术右移
5)AND:逻辑与
6)ORR:逻辑或 两个寄存器
SUB:减法指令,两个寄存器
7)SBC:带借位减法指令
8)RSC:带借位逆向减法
9)SUBS:带进位的减法指令,能采用立即数寻址
10)TST:位测试指令,将寄存器的值与立即数按位与

11)RSB:逆向减法指令
在这里插入图片描述
正确答案:0x10,0x67000010

12)LDMIA:LDM是加载多个寄存器指令,后缀IA表示在每次执行完加载/存储操作后,R0按字长度增加
在这里插入图片描述

(3)比较指令:CMP

6.加载/存储指令:
1)LDR:存储器到寄存器的数据传送指令,LDR 字,LDRB 字节,LDRH 半字

例一:
LDRH R1,【R2,#4】!
1)半字数据加载指令
2)存储器值改变 即R1 = R2 + 4,R2 = R2 + 4
3)内存中的数据保持不变

例二:
MyData DCW 0x1234
LDR R0,=MyData

例三:
在这里插入图片描述

2)STR:寄存器到存储器的数据传送指令,STR 字,STRB 字节,STRH 半字

例一:
在这里插入图片描述

7.条件域
(1)EQ:相等
(2)NE:不相等

(3)CS:无符号数大于等于
(4)HI:无符号数大于
(6)LS:无符号数小于等于
(7)CC:无符号数小于

(8)GE:带符号数大于等于
(9)GT:带符号数大于
(10)LE:带符号数小于等于
(11)LT:带符号数小于

(12)VS:溢出
(13)S:更新CPSR的状态位

8.指令助记符
(1)中断指令助记符
1)软中断的指令助记符:SWI
2)断点中断的指令助记符:BKPT
(2)数据处理类的指令助记符
ADC、ADD、AND、CMP、EOR、MLA、MUL、TST
(3)访问外部设备的指令助记符
B、BIC、LDR、MOV、MSR、SWP、TEQ、

9.传送CPSR或SPSR的内容到通用寄存器使用MRS;传送通用寄存器到CPSR或SPSR的指令用MSR

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值