ARM体系结构

1Cortex-A  手机、平板、上网本  iPad/iPhone 

Cortex-R  面向实时应用的高性能内核 

Cortex-M   面向各类嵌入式应用的微控制器内核   STM32

ARM9 ARM11 中高端CPU ---仪器仪表 工控 

三级流水线、五级流水线   取指—》译码----》执行

衡量CPU的性能指标:cache、TCM、MMUAHBDSPJazelle

2ARM的工作状态:2种:ARM状态---》指向32位的ARM指令;thumb状态---》执行16位的thumb指令。

3、存储器的格式:小端(Little-Endian)---》高字节存放在高地址中。

                  大端(Big-Endian)---》低字节存放在高地址中。

 

4ARM的工作模式:

   七种工作模式:USR  FIQ  IRQ  SVC  SYS  ABORT  UND

   其中六种是特权模式:FIQ  IRQ  SVC  SYS  ABORT  UND

   其中五种是异常模式:FIQ  IRQ  SVC   ABORT  UND

 

1、 各种模式下的寄存器:

R0—R7  各模式共用

R8—R12  FIQ独立使用,其他模式共用

R13- 》 SP   栈指针  各模式独立

R14-》  LR   链接寄存器  各模式独立

PC  程序计数器—》指向哪里就准备取哪里的指令执行---》正在取指的指令而不是正在执行的指令

CPSR 当前程序状态寄存器

SPSR  保存程序状态寄存器

 

2、 中断向量:

    

 启动代码中的异常向量表:

_start:
	b reset
	ldr pc, _undifined_instruction
	ldr pc, _software_interrupt
	ldr pc, _prefetch_abort
	ldr pc, _data_abort
	ldr pc, _not_used
	ldr pc, _irq
	ldr pc, _fiq
	

_undifined_instruction: .word undifined_instruction
_software_interrupt: .word software_interrupt
_prefetch_abort: .word prefetch_abort
_data_abort: .word data_abort
_not_used: .word not_used
_irq: .word irq
_fiq: .word reset


3、 异常响应过程:

  1、将下一条指令的地址存入相应连接寄存器LR

• 2、将CPSR复制到相应的SPSR中。 

• 3、根据异常类型,强制设置CPSR的运行模式位。 

• 4、强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。 

还可以设置中断禁止位,以禁止中断发生。 

• 5 如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。 


8、从异常返回: 

• 1、将连接寄存器LR的值减去相应的偏移量后送到PC中。 

• 2、将SPSR复制回CPSR中。 

• 3、若在进入异常处理时设置了中断禁止位,要在此清除。 

 

9FIQ在中断向量的最后的原因:可以把FIQ中断的函数直接放在其向量地址中,这样则不需要跳转,处理速度更快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值