ARM复习
- 格式:docx
- 大小:236.87 KB
- 文档页数:6
ARM复习------2012题型:1、概念20、2、基本配置(管脚、时钟、存储器)3、EMC(配置,硬件接口)4、VIC(写程序需要加注释,分析)1)、优先级2)、初始化3)、外部中断配置口线,模式,向量中断初始化5、学科的心得体会,写要领,自己的理解--15Ch2ARM7体系结构0、RISC结构特性------(P16)1、ARM处理器使用了V on Neumann(冯.诺依曼)结构:数据和指令共享总线。
2、3级流水线-----(p20)为什么arm使用三级流水线?三个阶段-----(见图2.1)、PC(程序计数器R15)的指向------(P21)3、ARM处理器状态(ARM状态和Thumb状态)由CPSR的控制位T来反映(P25)一般采用BX指令进行安全的状态切换(清空流水线)4、ARM处理器模式(7个)-------(P26 表2.2),特权模式:除用户模式外,其它模式为特权模式。
异常模式:除用户模式、系统模式外,其它模式为异常模式。
除用户模式外,其它模式可通过改写CPSR中的模式位改变。
除用户、系统模式外,其它有分组寄存器R。
如改变模式,新模式的分组R将取代原模式的分组R。
特权模式:允许对CPSR的读/写非特权模式:只允许对CPSR的控制域的读访问;允许对条件标志位的读/写。
CPSR的M[4:0]反映处理器的模式,每一种异常与处理器的一种模式相对应,且发生异常处理器总是切换到ARM状态而非Thumb。
5、寄存器(ARM状态下)------- P28的表2.3特殊用途的RR13(SP):堆栈指针,保存当前处理器模式的堆栈栈顶。
R14(LR):链接R,保存调用子程序的通用地址,用来保存子程序的返回地址。
R15(PC):程序计数器,保存下一条指令的地址。
由于R13、R14、R15是分组备份的,可做通用R,但若处理器上运行RTOS,则R13始终指向一个有效的栈结构。
ARM使用CPSR监视和控制内部的操作。
SPSR为备份(异常或者中断发生)。
CPSR与SPSR之间的关系-------P33注:只能在特权模式下修改、读取cpsr,用户模式下没有spsr。
CPSR分4个8位区域:标志、状态、扩展、控制------P36CPSR中用符号大小写表示值(大写:1、小写:0)。
例:CPSR= nzCvqjiFtSVC ;ARM状态(J=0,T= 0),IRQ使能(T=0),FIQ中断禁止(F=1)00100001010011 ; SVC模式[4:1]= 100116、异常优先级------P41 表2.127、异常中断的进入与退出------P41进入异常------p41当异常出现时,异常模式分组的R14、SPSR用于保存状态。
ARM7TDMI(自动)处理异常的步骤:R14_< exception_mode > = return link ;保护返回地址SPSR_< exception_mode > = CPSR ;保护状态标志CPSR[4:0] = exception_mode number ;模式切换CPSR[5] = 0 ;ARM状态If < exception_mode > == Reset or FIQ thenCPSR[6] = 1 ;禁止快中断/* 否则CPSR[6] 不变*/CPSR[7] = 1 ;禁止正常中断PC = exception vector address ;异常向量地址到PC退出异常-----p42R14_< exception_mode >→PCSPSR_< exception_mode >→CPSR在恢复CPSR时,T、F、I自动恢复为异常发生前的值。
8、ARM体系的存储结构(空间分布)------p48基本概念Ch4 LPC2000系列ARM硬件结构1、LPC2214主要特征-----------P892、存储器映射定义:给存储器分配地址作用:控制用于改变从0x00000000开始的中断向量的映射,允许运行在不同存储器空间的代码对中断进行控制。
----------------------------------p106图4.6系统存储器映射注:AHB、VPB外设区域都为2MB,各分128个外设,每个外设16KB,目的是简化外设地址译码。
外设的控制寄存器与存储器统一编址。
3、存储器重映射-------p108存储器重映射概念Boot Block是一段固化的代码----p108,IAP,ISP 基本概念4、异常向量表及其重映射ARM的异常向量表位置在0x00000000 ~ 0x0000001C。
ARM的异常向量地址----- p110表4.4存储器映射模式------P111 表4.5BOOT[1:0]的引导控制------P112 表4.65、时钟时钟发生系统-----P115 图4.166、PLL--------------------详见P126 图4.30PLL接受10~ 25MHz,倍增到10~ 60MHz。
PLL设置举例-----------P134~1357、VPB分频器功能,两个-------------------P136VPB分频为主频的1/2~ 1/4,使外设在合适速度下工作。
Fcco没有连上内核,仅是PLL的频率。
156~ 320MHz是PLL硬件的振荡频率范围。
//*********************************************//系统时钟设置(在config.h文件中):/* Fosc、Fcclk、Fcco、Fpclk */#define Fosc 11059200 ;晶振10~ 25MHz;#define Fcclk (Fosc * 4) ;系统频率为Fosc的整数倍(1~ 32),且≤60MHz;#define Fcco (Fcclk*4) ;cco频率为Fcclk的2/4/8/16倍,范围:156~ 320MHz;#define Fpclk (Fcclk/ 4)*1 ;VPB分频,只能为Fcclk/ 4的1/2/4倍。
//*********************************************//8、存储器映射控制-------------P138表4.10 存储器映射控制寄存器当RESET为低,BOOT[1:0]脚的状态控制着bank0引导方式。
----------------见P139 表4.25例如:有软件中断时,ARM内核从0x0000 0008(中断地址见P110 表 4.4)开始,若MEMMAP[1:0]=10(用户RAM),对0x0000 0008的读取实际是对0x4000 0008单元操作;若MEMMAP[1:0]=01(用户flash),对0x0000 0008的读取实际是对0x0000 0008单元操作;其他同理可得-----------详见P140 图4.38存储器映射控制示意9、外部存储器控制器(EMC)重点概述————P152Bank0~bank3的片选信号为CS0~CS3引脚BOOT[1:0]设置决定总线宽度(bank0),复位时,自动初始化PINSEL2;或软件上直接初始化PINSEL2(只适用于片内Flash)。
举例:一个16位的存储器,容量为16MB,则需要将数据总线设置为16位,地址总线宽度设置为A[23:0]-----------详细设置见P154 表4.38 和表4.39结果:PINSEL2[5:4] = 01b,PINSEL2[27:25] = 111b;注意看下面两个接口电路图:------------------------------16位硬件接线图详见P362 图5.13 SRAM接口电路--------------------32位硬件接线图详见P366 图5.17 Nor Flash接口电路//******************************************************************// 1、为什么外扩展16位的存储器时,LPC2000的外部地址总线A0不接?答:因为16位的存储器结构是16位半字节地址空间,一个地址空间对应两个字节的数据------详见P159 自己总结下2、存储器配置--------按照要求写,会系统总线配置,参照P155 表4.41#define BCFG_16DEF 0X1000 0400 //16位总线宽度,RBLE=1#define BCFG_CS0 ( BCFG_16DEF | (0X00<<00 ) | (0X01 << 05) | (0X03 <<11) ) BCFG0 = BCFG_CS0; //Bank0,IDCY=0,WST1=1,WST2=3//******************************************************************// 10、引脚连接模块(管脚的配置)P173~P176会查用即可主要是引脚的配置,关键看PINSEL0与PINSEL1(P0 口)、PINSEL2(P1口)管脚作为GPIO使用时有方向,其他的功能自动设置方向。
//***************************************************************************// 尤其注意P177 最下面的操作实例,会结合表4.55进行管脚配置,还有P178如何将某特定的管脚设置为TxD1、RxD1等功能//***************************************************************************// 11、向量中断控制器(VIC)(重点)中断特性(P188)、分类(P189)---------------------基本概念中断响应过程,硬件自动完成---------------P199 基本概念VIC基本使用方法------------P199的4个步骤基本操作方法①设置IRQ/FIQ中断(VICIntSelect),若是IRQ中断,则设置为向量中断并分配中断优先级(VICVectCntl 0 ~ 15),否则为非向量中断。
②设置中断允许(VICIntEnable)、向量中断地址(VICVectAddr0 ~ 15)、非向量中断默认地址(VICDefVectAddr)。
③当有中断后,若是IRQ中断,因VIC已将IRQ中断服务入口地址向量地址寄存器(VICVectAddr),则跳转到相应IRQ中断服务程序。