ARM嵌入式统总结文档格式.docx
- 文档编号:18644164
- 上传时间:2022-12-30
- 格式:DOCX
- 页数:11
- 大小:123.93KB
ARM嵌入式统总结文档格式.docx
《ARM嵌入式统总结文档格式.docx》由会员分享,可在线阅读,更多相关《ARM嵌入式统总结文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
IP核:
知识产权核。
分为软核、硬核和固核。
12ARM处理器两种工作状态(ARM状态切换指令BX)
①ARM状态:
32位,ARM状态执行字对齐的32位ARM指令。
②thumb状态:
16位,执行半字对齐的16位。
13ARM的七种处理器模式:
usr,fiq,irq,svc,abt,sys,und。
ARM的七种处理器模式:
(其中文及应用特点)
用户模式:
ARM处理器正常的程序执行模式
系统模式:
供需要访问系统资源的操作系统任务使用
管理模式:
操作系统使用的保护模式
快速中断模式:
用于高速数据传输或通道处理
外部中断模式:
用于通用的中断处理
中止模式:
当存取异常时将会进入这种模式
未定义模式:
当执行未定义指令时会进入这种模式
14七种模式分类及特点
(1)用户模式特点:
应用程序不能够访问受操作系统保护的系统资源。
应用程序不能进行处理器模式的切换。
(2)系统模式特点:
不属于异常模式,不是通过异常进入的。
系统模式属于特权模式,可以访问所有的系统资源,也可以直接进行模式的切换。
它主要供操作系统使用。
(3)特权模式及其特点:
特权模式:
除用户模式之外的工作模式又称为特权模式
特点:
应用程序可以访问所有的系统资源;
可以任意地进行处理器模式的切换。
(4)异常模式及其特点:
异常模式:
除用户模式、系统模式之外的五种模式称为异常模式。
以各自的中断或异常方式进入,并且处理各自的中断或异常。
15模块划分的原因:
①提高处理效率;
②给不同的操作提供不同的硬件资源
16ARM指令中有37个寄存器,有31个通用寄存器和6个状态寄存器。
17四个主要的硬件部分:
ARM处理器,控制器,外设,总线。
18ARM7三级流水线:
取指,译码,执行(1.2.4)
ARM9五级流水线:
取指,译码,执行,访存,回写(1.2.4.5.6)
19ARM最大的直接寻址空间为4GB。
(2的32次方)
20五级流水线代替三级流水线原因:
①5级流水线ARM9内核是哈佛结构,拥有独立的指令和数据总线,指令和数据读取可以在同一周期内进行;
②3级流水线的ARM7内核是指令和数据总线复用的冯诺依曼结构,指令和数据的读取不能在同一周期进行;
③5级流水线设计把寄存器读取,逻辑运算,结果回写分散在不同的流水当中,操作简单,提升主频
21APB总线:
是一个简单接口支持低性能的外围接口。
(可挂USB,以太网,内部DA)
ASB总线:
可连接存储器AHB总线:
练FlashMamary
22ARM的处理器的分类:
按结构体系分:
略
按应用特征分类:
①应用处理器特征:
MMU,Cache最快频率、最高性能、合理功耗
②实时控制处理器特征:
MPU,Cache实时响应、合理性能、较低功耗
③微控制器特征:
nosub-memorysystem一般性能、最低成本、极低功耗
23常用ARM处理器:
ARM7,ARM9,ARM9E,ARM10E,ARM11,Cortex,Xscale
24ARM应用到各个领域:
工业工作领域,无线通讯领域,网络应用,消费电子产品,成像和安全产品。
25ARM存储器为何要映射?
答:
将不同的存储器进行统一编址,方便管理。
26中断是异常的一种特殊模式,中断事件也称为外中断。
27什么叫对齐?
不对齐有什么后果?
一个32位的地址对应一个8位的数据。
后果:
①ARM处理器的PC值可以任意访问
②若不对齐,可能会使程序紊乱③会使数据产生错误
28ARM的指令特点:
①所有指令都是32位②大多数指令都在周期内完成
③所有指令都可以条件执行④ARM指令为load/store类型
⑤基本指令仅36条,分成5类⑥有7中寻址方式
⑦指令集可以通过协处理器扩展
29ARM指令的7种寻址方式:
立即寻址,寄存器寻址,寄存器间接寻址,基址寻址,堆栈寻址,块拷贝寻址,相对寻址
30ARM体系结构可以用两种方法存储字数据,称为大端格式和小端格式。
31大端格式:
字数据的高字节存储在低地址中,字数据的低字节则存放在高地址中。
小端格式:
与大端存储格式相反。
低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。
缺省设置为小端格式。
32CPSR——当前程序状态存储器:
用来保存当前程序状态。
SPSR——保存程序状态存储器:
①保存ALU中的当前操作信息
②控制允许和禁止中断③设置处理器的运行模式
33ARM指令基本的语法格式为:
<
Opcode>
{<
cond>
}{s}<
Rd>
<
Rn>
{,<
Operand2>
}
Opcode:
指令操作码。
cond:
指令的条件码。
S:
决定指令的操作是否影响CPSR的值。
Rd:
目标寄存器编码。
Rn:
包含第一个操作数的寄存器编码。
Operand2:
第2操作数。
34结合CPSR的结构,说明其中I、F、T、M[4:
0]的作用。
I位和F位都是中断禁止标志位,I位是一般中断,F位是快速中断,用来时能或禁止ARM的两种外部中断。
M[4:
0]是模式控制位,这些位决定处理器的工作模式。
T位标志控制处理器按照ARM指令集运行,还是按照thumb指令集运行。
35通用寄存器包括R0~R15,可以分为三类:
(1)未分组寄存器R0~R7
(2)分组的寄存器R8~R14(是真正的通用寄存器)
①R8~R12:
每一次所访问的物理寄存器,与处理器当前的工作模式有关
②R13和R14:
R13:
在ARM指令中常用作堆栈指针SP,也可以用其他寄存器。
R14:
也称作子程序链接寄存器或链接寄存器LR。
作用:
当执行BL程序调用指令时,返回值。
(3)程序计数器PC(R15):
其值是编译环境或程序做的。
36简述ARM处理器的CPSR和SPSR的功能、作用和工作方式。
CPSR是当前状态寄存器,他可以在任何运行模式下被访问,它包括条件标志位,中断标志位,当前处理器模式标志位,以及其他的一些相关的控制盒状态位。
ARM内核就是通过使用CPSR来监视和控制内部操作的。
SPSR用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR。
37简述ARM7的内部寄存器R13.R14.R15的主要功能、作用和工作方式。
R13作为堆栈指针SP,用于指定堆栈操作出入口的地址。
其他6个R13寄存器为堆栈寄存器。
为用户模式和系统模式共有一个。
R14可以用作通用寄存器,也可以用作链接寄存器。
链接寄存器用于保存子程序地址或者返回地址。
R15:
程序寄存器,总是指向正在“取指”的指令。
38中断:
当CPU正在执行程序时,系统发生了一件急需处理的事件,CPU暂时停下正在执行的程序,转去处理相应的事件,事件处理完后,CPU再返回执行原来的程序。
中断事件:
引起CPU产生中断、并且与CPU当前所执行的程序无关的、由外部硬件产生的事件,也叫中断源。
中断事件也常称为外中断。
异常:
是指CPU在执行指令时出现的错误,即不正常的情况。
异常是与当前所执行的程序有关的。
如存取数据或指令错误、计算结果溢出等。
39ARM的7种异常:
复位;
未定义指令异常;
软件中断异常;
预取中止(取指令存储器中止);
数据中止(访问数据存储器中止);
IRQ异常;
FIQ异常。
40
41指令:
是规定计算机进行某种操作的命令。
指令系统:
计算机能够执行的各种指令的集合。
指令集:
规定计算机执行某种命令的集合。
42ARM指令可以分为五大类:
数据处理指令、存储器访问指令、分支指令、协处理器指令、杂项指令。
43解释何为“满堆栈”、“空堆栈”、“递增堆栈”和“递减堆栈”?
ARM指令系统中是如何支持的?
满堆栈:
堆栈指针指向最后压入栈的有效数据项。
空堆栈:
堆栈指针指向下一个待压入数据的空位置。
递增堆栈:
在向堆栈写入数据后,堆栈指针的值变大,即向高地址方向生长。
递减堆栈:
在向堆栈写入数据后,堆栈执政的值变小,即向低地址方向生长。
ARM指针支持四种堆栈类型:
满递增,空递增,满递减,空递减。
44什么是ARM处理器的异常?
ARM处理器是如何处理异常的?
在执行正常程序过程中,当发生某种异常事件或某种外部请求时,处理器就暂停执行当前的程序,进入异常模式。
如何处理:
①保存执行状态:
将CPSR复制到发生的异常模式下的SPSR中。
②模式切换:
将CPSR模式位强制设置为与异常位置相对应的值,同时处理器进入到ARM执行模式,禁止所有IRQ中断,当进入FIQ快速中断模式时禁止FIQ中断。
③保存返回地址:
将下一条指令的地址(被打断程序)保存在LR(异常模式下LR_excep)中。
④跳入异常向量表:
强制设置PC的值为响应异常向量地址,跳转到异常处理程序中。
45单寄存器的存取指令:
①单字和无符号字节的加载/存储指令
LDR:
指令从内存中取32位字或8位无符号字节数据放入寄存器;
STR:
指令将寄存器中的32位字或8位无符号字节数据保存到存储器中。
②半字和有符号字节的加载/存储指令
这类LDR/STR指令可实现半字(有符号和无符号)、有符号字节数据的传送。
46多寄存器的存取指令:
LDM为加载多个寄存器;
STM为存储多个寄存器。
LDM和STM指令可以实现在一组寄存器和一块连续的内存单元之间存/取数据。
47ARM数据处理指令分类(22条可分为5类)
算术运算指令:
ADDADCSUBSBCRSBRSC
MULMLAUMULLUMLALSMULLSMLAL
逻辑运算指令:
ANDORREORBIC
数据传送指令:
MOVMVN比较指令:
CMPCMN
测试指令:
TSTTEQ
48加减运算指令
ADD——加法运算指令ADC——带进位加法指令SUB——减法运算指令
SBC——带进位减法指令RSB——反向减法指令RSC——带进位反向减法指令
49乘法运算指令
MUL——32位乘法指令MLA——32位乘加指令UMULL—64位无符号乘法指令UMLAL—64位无符号乘加指令SMULL—64位有符号乘法指令SMLAL—64位有符号乘加指令50数据处理指令的详细列表(未含6条乘法指令)
51逻辑运算指令
AND——逻辑“与”操作指令ORR——逻辑“或”操作指令
EOR——逻辑“异或”操作指令BIC——位清除指令
52MOV——数据传送指令MVN——数据求反传送指令
CMP——比较指令CMN——负数比较指令
TST——位测试指令TEQ——测试相等指令
53B分支指令BL带链接的分支指令
BX带状态切换的分支指令BLX带链接和状态切换的分支指令
54例1:
实现乘法的指令段
MOVR0,R0,LSL#n;
R0=R0<
n;
R0=R0*2n
ADDR0,R0,R0,LSL#n;
R0=R0+R0*2n=R0*(2n+1)
RSBR0,R0,R0,LSL#n;
R0=R0*2n-R0=R0*(2n-1)
55例2:
64位数据运算
题:
假设R0和R1存放一个64位数据,R0中存放数据的低32位;
R2和R3中存放另一个64位数据,R2中存放数据的低32位。
对这两个64位数进行加、减和比较运算。
(R1,R0)、(R3,R2)
①两个64位数据的加法运算,结果保存到R0和R1中。
ADDSR0,R0,R2;
低32位相加,设置CPSR的C标志位。
ADCR1,R1,R3;
高32位的带位相加
②两个64位数据的减法运算,结果保存到R0和R1中。
SUBSR0,R0,R2;
低32位相减,设置CPSR的C标志位。
SBCR1,R1,R3;
高32位的带位相减
③两个64位数据的比较操作,并设置CPSR中的条件标志位。
CMPR1,R3;
比较高32位
CMPEQR0,R2;
如果高32位相等,比较低32位
56例3:
转换内存中数据存储方式
将寄存器R0中的数据存储方式转换成另一种存储方式。
指令执行前R0中数据存储方式为:
R0=A,B,C,D;
指令执行后R0中数据存储方式为:
R0=D,C,B,A。
EORR1,R0,R0,ROR#16;
R1=A^C,B^D,C^A,D^B
BICR1,R1,#OxFF0000;
R1=A^C,0,C^A,D^B
MOVR0,R0,ROR#8;
R0=D,A,B,C
EORRO,RO,R1,LSR#8;
R0=D,C,B,A
;
R0=D,A,B,C异或R1=0,A^C,0,C^A
57ARM状态进入Thumb状态的方法
①执行带状态切换的转移指令BX。
若BX指令指定的寄存器的最低位为1,则将T置位,并将程序计数器切换为寄存器其他位给出的地址。
具体程序:
BXR0;
若R0最低位为1,则转入Thumb状态
②异常返回也可以将微处理器从ARM状态转换为Thumb状态。
Thumb状态进入ARM状态的方法
①执行Thumb指令中的交换转移BX指令可以显式地返回到ARM指令流。
②利用异常进入ARM指令流。
58Thumb-ARM相似处:
①Load/Store结构。
②支持8位字节、16位半字和32位字数据类型,半字以两字节边界对准,字以4字节边界对准。
59Thumb-ARM差异处:
①大多数Thumb指令是无条件执行的,所有ARM指令都是条件执行的。
②许多Thumb数据处理指令采用2个操作数格式(目的寄存器与一个源寄存器相同),ARM数据处理指令大多采用3个操作数格式。
如:
ADDR0,R1
③由于采用高密度编码,Thumb指令格式没有ARM指令格式规则。
60ARM伪指令不属于ARM指令集中的指令,是为了编程方便而定义的。
伪指令可以像其它ARM指令一样使用,但在编译时这些指令将被等效的ARM指令代替。
ARM伪指令有四条,分别是:
ADR:
小范围的地址读取伪指令。
ADRL:
中等范围的地址读取伪指令。
大范围的地址读取伪指令。
NOP:
空操作伪指令。
例:
LDRR0,R实指令LDRR0,=0X4000伪指令
LDRR0,#0X4000实指令
61数据的最小单元是bit,如果地址标号时,“=”可去,如果是立即数,则带上。
地址标号:
相当于C语言的子函数的函数名。
LDRR0,=0X0AA00;
R0<
-0X0AA00
汇编后:
MOVR0,#43520十进制
62ARM内核可以带16个协处理器
63名词解释:
中断、中断源、中断优先级、中断向量、中断响应、中断控制。
中断:
CPU在执行一个程序时,对系统发生的某个事件(程序自身或外界的原因)作出的一种反应:
CPU暂停正在执行的程序,保留现场后自动转去处理相应的事件,处理完该事件后,到适当的时候返回断点,继续完成被打断的程序。
中断源:
把引起中断的原因,或者能够发出中断请求信号的来源统称为中断源。
中断优先级:
为使系统能及时响应并处理发生的所有中断,系统根据引起中断事件
的重要性和紧迫程度,硬件将中断源分为若干个级别,称作中断优先级。
中断向量:
中断服务程序的入口地址。
中断响应:
中断响应是当中央处理机发现已有中断请求时,中止,保存现行程序执
行,并自动引出中断处理程序的过程。
中断控制:
CPU能否暂停正在执行的中断服务程序,而转去执行为另一个中断源而
编写的中断服务程序,如果另一个中断源的优先级高,CPU就暂停正在执行中断服
务程序而转去执行为另一个中断源而编写的中断服务程序,否则,另一个中断源就
不能打断正在执行的中断服务程序。
64S3C2410主要特征:
具有16KB指令Cache、16KB数据Cache和存储器管理单元MMU;
外部存储器控制器,可扩展8组,每组128MB,总容量达1GB;
支持从Nandflash存储器启动;
55个中断源,可以设定1个为快速中断,有24个外部中断,并且触发方式可以设定;
4通道的DMA,并且有外部请求引脚;
3个通道的UART,带有16字节的TX/RXFIFO,支持IrDA1.0功能;
具有2通道的SPI、1个通道的IIC串行总线接口和1个通道的IIS音频总线接口;
有2个USB主机总线的端口,1个USB设备总线的端口;
有4个具有PWM功能的16位定时器和1个16位内部定时器;
8通道的10位A/D转换器,最高速率可达500kB/s;
提供有触摸屏接口;
具有117个通用I/O口和24通道的外部中断源;
兼容MMC的SD卡接口;
具有电源管理功能,可以使系统以普通方式、慢速方式、空闲方式和掉电方式工作;
看门狗定时器;
具有日历功能的RTC;
有LCD控制器,支持4K色的STN和256K色的TFT,配置有DMA通道;
具有PLL功能的时钟发生器,时钟频率高达203MHz;
双电源系统:
1.8/2.0V内核供电,3.3V存储器和I/O供电。
65S3C2410的结构分为几个部分?
每一部分主要由哪些部分构成?
主要由两面大部分构成:
ARM920T内核和片内外设。
其中ARM920T内核:
ARM9内核ARM9TDMI、32KB的Cache、MMU;
片内外设:
分为高速外设和低速外设两部分。
66嵌入式最小系统由那几部分组成?
这些部分各有什么作用?
嵌入式处理器:
系统的工作和处理核心。
2、电源电路:
为处理器及其他需要电源的外围电路供电3、晶振电路:
为系统提供工作时钟
Flash存储器:
存放嵌入式系统、用户应用程序或其他5、SDRAM存储器:
作为系统运行的主要区域6、串行接口:
用于短距离的双向串行通信
JTAG接口:
通过该接口对系统进行调试和编程等8、系统总线拓展:
用于外围电路扩展9、复位电路:
完成系统上电复位和在系统工作时用户按键复位。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 嵌入式 总结