嵌入式微处理器体系结构复习资料Word文件下载.docx
- 文档编号:21342985
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:19
- 大小:40.47KB
嵌入式微处理器体系结构复习资料Word文件下载.docx
《嵌入式微处理器体系结构复习资料Word文件下载.docx》由会员分享,可在线阅读,更多相关《嵌入式微处理器体系结构复习资料Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
●fiq(快速中断模式):
用于高速数据传输或通道处理
●irq(外部中断模式):
用于通用的中断处理
●svc(管理模式):
操作系统使用的保护模式
●abt(数据访问终止模式):
当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
●sys(系统模式):
运行具有特权的操作系统任务。
●und(未定义指令中止模式):
当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。
除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式(PrivilegedModes);
其中除去用户模式和系统模式以外的5种又称为异常模式(ExceptionModes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。
2、除用户模式外,其它模式均为特权模式。
ARM内部全部系统资源和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。
3、此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。
4、ARM异常处理
1、当异常产生时,ARM核:
(1)拷贝CPSR到SPSR_<
mode>
(2)设置适当的CPSR位:
a.改变处理器状态进入ARM态
b.改变处理器模式进入相应的异常模式
c.设置中断禁止位禁止相应中断(如需要)
(3)保存返回地址到LR_<
(4)设置PC为相应的异常向量地址
2、返回时,异常处理程序需要:
(1)从SPSR_<
恢复CPSR
(2)从LR_<
恢复PC
(3)注意:
这些操作只能在ARM态执行.
5、ARM指令集
1、ARM寻址方式:
掌握ARM微处理器9种寻址方式的特点。
(1).寄存器寻址
操作数的值在寄存器中,指令中的地址码字段给出的是寄存器编号,寄存器的内容是操作数,指令执行时直接取出寄存器值操作。
例如指令:
MOVR1,R2;
R1←R2
SUBR0,R1,R2;
R0←R1-R2
(2).立即寻址
在立即寻址指令中数据就包含在指令当中,立即寻址指令的操作码字段后面的地址码部分就是操作数本身,取出指令也就取出了可以立即使用的操作数(也称为立即数)。
立即数要以“#”为前缀,表示16进制数值时以“0x”表示。
ADDR0,R0,#1;
R0←R0+1
MOVR0,#0xff00;
R0←0xff00
(3).寄存器移位寻址
寄存器移位寻址是ARM指令集特有的寻址方式。
第2个寄存器操作数在与第1个操作数结合之前,先进行移位操作。
MOVR0,R2,LSL#3;
R2的值左移3位,结果放入R0,即R0=R2*8
ANDSR1,R1,R2,LSLR3;
R2的值左移R3位,然后和R1相与操作,结果放入R1
可采用的移位操作如下:
LSL:
逻辑左移(LogicalShiftLeft),寄存器中字的低端空出的位补0。
LSR:
逻辑右移(LogicalShiftRight),寄存器中字的高端空出的位补0。
ASR:
算术右移(ArithmeticShiftRight),移位过程中保持符号位不变,即如果源操作数为正数,则字的高端空出的位补0,否则补1
ROR:
循环右移(RotateRight),由字的低端移出的位填入字的高端空出的位
RRX:
带扩展的循环右移(RotateRightextendedby1place),操作数右移一位,高端空出的位用原C标志值填充。
(4).寄存器间接寻址
指令中的地址码给出的是一个通用寄存器编号,所需要的操作数保存在寄存器指定地址的存储单元中,即寄存器为操作数的地址指针,操作数存放在存储器中。
例如指令:
LDRR0,[R1];
R0←[R1](将R1中的数值作为地址,取出此地址中的数据保存在R0中)
STRR0,[R1];
[R1]←R0
(5).变址寻址
变址寻址是将基址寄存器的内容与指令中给出的偏移量相加,形成操作数的有效地址,变址寻址用于访问基址附近的存储单元,常用于查表,数组操作,功能部件寄存器访问等。
例如指令:
LDRR2,[R3,#4];
R2←[R3+4](将R3中的数值加4作为地址,取出此地址的数值保存在R2中)
STRR1,[R0,#-2];
[R0-2]←R1(将R0中的数值减2作为地址,把R1中的内容保存到此地址位置)
(6).多寄存器寻址(LDM/STM)
LDM/STM指令可以把存储器中的一个数据块加载到多个寄存器中,也可以把多个寄存器中的内容保存到存储器中。
寻址操作中的寄存器可以是R0-R15这16个寄存器的子集或是所有寄存器。
采用多寄存器寻址方式,一条指令可以完成多个寄存器值的传送,这种寻址方式用一条指令最多可以完成16个寄存器值的传送。
格式为:
LDM(或STM){条件}{类型}基址寄存器{!
},寄存器列表{∧}
该指令的常见用途是将多个寄存器的内容入栈或出栈。
(7).堆栈寻址
堆栈是一种数据结构,堆栈是特定顺序进行存取的存储区,操作顺序分为“后进先出”和“先进后出”,堆栈寻址时隐含的,它使用一个专门的寄存器(堆栈指针)指向一块存储区域(堆栈),指针所指向的存储单元就是堆栈的栈顶。
(8).块复制寻址
块复制寻址用于把一块从存储器的某一位置复制到另一位置,是一个多寄存器传送指令。
(9).相对寻址
相对寻址是变址寻址的一种变通,由程序计数器PC提供基准地址,指令中的地址码字段作为偏移量,两者相加后得到的地址即为操作数的有效地址。
2、堆栈寻址
满递增堆栈(FA):
堆栈指针指向最后压入的数据,且由低地址向高地址生成。
满递减堆栈(FD):
堆栈指针指向最后压入的数据,且由高地址向低地址生成。
空递增堆栈(EA):
堆栈指针指向下一个将要放入数据的空位置,且由低地址向高地址生成。
空递减堆栈(ED):
堆栈指针指向下一个将要放入数据的空位置,且由高地址向低地址生成。
3、多寄存器寻址(块拷贝寻址)
(1)块拷贝寻址是多寄存器传送指令LDM/STM的寻址方式。
LDM/STM指令可以把存储器中的一个数据块加载到多个寄存器中,也可以把多个寄存器中的内容保存到存储器中。
(2)LDM/STM指令依据其后缀名的不同其寻址的方式也有很大不同。
(3)LDMIAR1!
,{R0,R2,R3}指令执行后,R1的值变为R1+12—>
R1;
注:
!
决定Rn的值是否随着传送而改变
寻址模式描述起始地址结束地址Rn!
IA执行后增加RnRn+4*NRn+4*N
IB执行前增加Rn+4Rn+4*NRn+4*N
DA执行后减少RnRn-4*NRn-4*N
DB执行前减少Rn-4Rn-4*NRn-4*N
六ARM状态与Thumb状态的转换
1、实现ARM工作状态转换的指令,其句法如下:
BX目标地址
(1)BX指令将引起处理器转移到目标地址所指向的地址处执行。
(2)目标地址的位[0]不用来作为地址的一部分。
a.若目标地址的位[0]为1,则指令将CPSR中的标志T置位,且将目标地址的代码解释为Thumb代码;
b.若目标地址的位[0]为0,则指令将CPSR中的标志T复位,且将目标地址的代码解释为ARM代码。
7、ARM的硬件系统结构
1、S3C2410的存储器系统
(1)S3C2410支持大、小端模式,可通过软件选择大小端模式;
(2)存储空间分成8个Bank,每个Bank128Mbytes,总共1GB;
6个Bank用于控制ROM,SRAM,etc.
剩余的2个Bank用于控制ROM,SRAM,SDRAM,etc.
(3)除Bank0(16/32-bit)外,所有的Bank都可以通过编程选择总线宽度=(8/16/32-bit);
(4)7个Bank固定起始地址,最后一个Bank可调整起始地址;
(5)最后两个Bank大小可编程
(6)所有Bank存储周期可编程控制;
(7)如果同时使用Bank6/Bank7,则要求连接相同容量的存储器,而且其地址空间在物理上是连续的。
2、S3C2410的I/O口配置
S3C2410有117个多功能口,掌握如何通过软件编程对每个I/O口进行配置。
如将端口C的最低2为设置为01,既设置成输出模式,其余位不变。
rGPCCON=rGPCCON&
0xfffffffc|0x00000001;
rGPCDAT=rGPCDAT|0x001;
//PC0口电平输出高
表3.4.3S3C2410A的端口CI/O口配置情况
端口C
可选择的引脚端功能
GPC15~GPC8
输入/输出
VD7~VD0
–
GPC7~GPC5
LCDVF2~LCDVF0
GPC4
VM
GPC3
VFRAME
GPC2
VLINE
GPC1
VCLK
GPC0
LEND
寄存器
地址
读/写
描述
复位值
GPCCON
0x56000020
R/W
配置端口C引脚端,使用位[31:
0],分别对端口B的16个引脚端进行配置。
00:
输入;
01:
输出;
10:
第2功能;
11:
保留
0x0
GPCDAT
0x56000024
端口C数据寄存器,使用位[15:
0]
未定义
GPCUP
0x56000028
端口C上拉电阻不使能寄存器,使用位[15:
0]。
0:
使能;
1:
不使能
0x5600002C
–
表端口C控制寄存器
3、掌握ARM微处理器的中断系统的特点
了解:
一旦有中断发生,ARM的中断系统将如何处理。
在ARM系统中,支持复位、未定义指令、软中断、预取中止、数据中止、IRQ和FIQ7种异常,每种异常对应于不同的处理器模式,有对应的异常向量(固定的存储器地址)。
在ARM系统中,一旦有中断发生,正在执行的程序都会停下来,通常都会执行如下的中断步骤:
(1)保存现场。
保存当前的PC值到R14,保存当前的程序运行状态到SPSR。
(2)模式切换。
根据发生的中断类型,进入IRQ模式或FIQ模式。
(3)获取中断服务子程序地址。
PC指针跳到异常向量表所保存的IRQ或FIQ地址处,IRQ或FIQ的异常向量地址处一般保存的是中断服务子程序的地址,PC指针跳入到中断服务子程序,进行中断处理。
(4)多个中断请求处理。
在ARM系统中,可以存在多个中断请求源,比如串口中断、AD中断、外部中断、定时器中断及DMA中断等,所以可能出现多个中断源同时请求中断的情况。
为了更好地区分各个中断源,通常为这些中断定义不同的优先级别,并为每一个中断设置一个中断标志位。
当发生中断时,通过判断中断优先级以及访问中断标志位的状态来识别哪一个中断发生了,进而调用相应的函数进行中断处理。
(5)中断返回,恢复现场。
当完成中断服务子程序后,将SPSR中保存的程序运行状态恢复到CPSR中,R14中保存的被中断程序的地址恢复到PC中,继续执行被中断的程序。
4、了解S3C2410的DMA控制器的基本工作原理。
DMA(DirectMemoryAcess,直接存储器存取)方式是指存储器与外设在DMA控制器的控制下,直接传送数据而不通过CPU,传输速率主要取决于存储器存取速度。
在DMA传输过程中,DMA控制器负责管理整个操作,并且无须CPU介入,从而大大提高了CPU的工作效率。
DMA方式为高速I/O设备和存储器之间的批量数据交换提供了直接的传输通道。
由于I/O设备直接同内存发生成块的数据交换,可以提高I/O效率。
现在大部分计算机系统均采用DMA技术。
许多输入/输出设备的控制器都支持DMA方式。
采用DMA方式进行数据传输的具体过程如下。
(1)外设向DMA控制器发出DMA请求。
(2)DMA控制器向CPU发出总线请求信号。
(3)CPU执行完现行的总线周期后,向DMA控制器发出响应请求的回答信号。
(4)CPU将控制总线、地址总线及数据总线让出,由DMA控制器进行控制。
(5)DMA控制器向外部设备发出DMA请求回答信号。
(6)进行DMA传送。
(7)数据传送完毕,DMA控制器通过中断请求线发出中断信号。
CPU在接收到中断信号后,转人中断处理程序进行后续处理。
(8)中断处理结束后,CPU返回到被中断的程序继续执行。
CPU重新获得总线控制权。
每个DMA控制器可以处理以下4种情况:
(1)源和目的都在系统总线上;
(2)源在系统总线上,目的在外围总线上;
(3)源在外围总线上,目的在系统总线上;
(4)源和目的都在外围总线上。
5、嵌入式存储系统的特点。
(1)高速缓冲存储器原理及特点。
高速缓冲存储器(cache)用来提高存储器系统的性能,许多微处理器体系结构都把它作为其定义的一部分。
cache能够减少内存平均访问时间。
Cache可以分为统一cache和独立的数据/程序cache。
(2)存储器管理单元MMU主要完成的功能。
(1)虚拟存储空间到物理存储空间的映射。
采用了页式虚拟存储管理,它把虚拟地址空间分成一个个固定大小的块,每一块称为一页,把物理内存的地址空间也分成同样大小的页。
MMU实现的就是从虚拟地址到物理地址的转换。
(2)存储器访问权限的控制。
(3)设置虚拟存储空间的缓冲的特性。
8、嵌入式系统I/O设备接口
1、掌握S3C2410的I/O接口的编程
要求:
掌握I/O口编程,能编写实现LED1、LED2、LED3、LED4轮流闪烁的程序。
实现LED1和LED2轮流闪烁的程序代码
voidMain(void)
{
intflag,i;
TargetInit();
//进行硬件初始化操作,包括对I/O口的初始化操作
for(;
;
)
{
if(flag==0){
for(i=0;
i<
1000000;
i++);
//延时
rGPGCON=rGPGCON&0xfff0ffff|0x00050000;
//配置第8、第
//9位为输出引脚
rGPGDAT=rGPGDAT&0xeff|0x200;
//第8位输出为低电平
//第9位输出高电平
i<
10000000;
flag=1;
}
else{
rGPGCON=rGPGCON&0xfff0ffff(0x00050000;
//配置第8、
//第9位为输出引脚
rGPGDAT=rGPGDAT&Oxdff|0x100;
//第8位输出为高电平
//第9位输出低电平
flag=0;
}
2、掌握S3C2410的A/D转换器接口的原理
掌握A/D转换器接口的原理,能编写A/D转换器初始化函数和获取A/D的转换值的程序。
(1)A/D转换器(模/数转换器)完成电模拟量到数字量的转换。
实现A/D转换的方法很多,常用的方法有计数法、双积分法和逐次逼近法等。
(2).对A/D转换器进行初始化
程序中的参数ch表示所选择的通道号,程序如下:
voidAD_Init(unsignedcharch)
rADCDLY=100;
//ADC启动或间隔延时
rADCTSC=0;
//选择ADC模式
rADCCON=(1<
<
14)|(49<
6)|(ch<
3)|(0<
2)|(0<
1)|(0);
//使能前置分频器,设置前置分频值为49,正常模式,禁止读操作启动,不启动。
(3).获取A/D的转换值
intGet_AD(unsignedcharch){
inti;
intval=0;
if(ch>
7)return0;
//通道不能大于7
for(i=0;
i<
16;
i++){//为转换准确,转换16次
rADCCON|=0x1;
//启动A/D转换
rADCCON=rADCCON&0xffc7|(ch<
3);
//设置通道号
while(rADCCON&0x1);
//等待启动位清零
while(!
(rADCCON&0x8000));
//等待转换结束
val+=(rADCDAT0&0x03ff);
Delay(10);
}
return(val>
>
4);
//为转换准确,除以16取均值
}
3、掌握四线式电阻式触摸屏的工作原理,能分析触摸点的X轴坐标和Y轴坐标是如何测量出来的。
触摸屏按其工作原理可分为矢量压力传感式、电阻式、电容式、红外线式和表面声波式5类。
在嵌入式系统中常用的是电阻式触摸屏。
四线式触摸屏的X工作面和Y工作面分别加在两个导电层上,共有4根引出线:
X+、X-,Y+、Y-分别连到触摸屏的X电极对和Y电极对上。
四线电阻屏触摸寿命小于100万次。
当给X方向的电极对施加一确定的电压,而Y方向电极对不加电压时,在x平行电压场中,触点处的电压值可以在Y+(或Y—)电极上反映出来,通过测量Y+电极对地的电压大小,通过A/D转换,便可得知触点的X坐标值。
同理,当给Y电极对施加电压,而X电极对不加电压时,通过测量X+电极的电压,通过A/D转换便可得知触点的Y坐标。
四线电阻触摸屏的分辨方法是将四线电阻触摸后变化的模拟量转换成数字量,经过软件计算得出不同的屏幕上不同的X,Y坐标。
此工作主要是靠S3C2440A芯片中的模数转换器来实现的。
4、了解S3C2410的UART串行接口的工作原理,掌握S3C2410的UART发送和接收数据的程序设计。
UART(通用异步收发器)主要由数据线接口、控制逻辑、配置寄存器、波特率发生器、发送部分和接收部分组成,采用异步串行通信方式,采用RS-232C9芯接插件(DB-9)连接,是广泛使用的串行数据传输方式.
本程序实例实现从UART0接收数据,然后分别从UART0和UART1发送出去。
其功能可以把键盘敲击的字符通过PC机的串口发送给ARM系统上的UART0,ARM系统上的UART0接收到字符后,再通过UART0和UART1送给PC机,这样就完成了串口间的收发数据。
要实现以上数据的收发功能,需要编写的主要代码如下。
(1)发送数据
其中whichUart为全局变量,指示当前选择的UART通道,使用串口发送一个字节的代码如下:
voidUart_SendByte(intdata)
if(whichUart==0)
if(data==‘\n’)
(rUTRSTAT0&0x2));
Delay(10);
//延时,与终端速度有关
WrUTXH(‘\r’);
while(!
//等待,直到发送状态就绪
WrUTXH0(data);
elseif(whichUart==1)
if(data==‘\n’)
(rUTRSTAT1&0x2));
rUTXH1=‘\r’;
rUTXH1=data;
elseif(whichUart==2)
if(data==‘\n’)
(rUTRSTAT2&0x2));
rUTXH2=‘\r’;
rUTXH2=data;
(2).接收数据
如果没有接收到字符则返回0。
使用串口接收一个字符的代码如下:
charUart_GetKey(void)
if(whichUart==0){
if(rUTRSTAT0&0x1)//UARTO接收到数据
returnRdURXH0();
else
return0;
elseif(whichUart==1){
if(rUTRSTA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 微处理器 体系结构 复习资料