DSP

ARM体系结构

2019-07-13 18:18发布

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中断的函数直接放在其向量地址中,这样则不需要跳转,处理速度更快。