ARM

来源:互联网 发布:淘宝退货流程手机修改 编辑:程序博客网 时间:2024/05/02 05:54

1、ARM微处理器ARM7(冯诺依曼体系结构,32位嵌入式RISC低端处理器核,16位Thumb指令,3级流水线(即ARM在执行第一条指令的同时,对第二条指令进行译码,并将第三条指令从存储器中取出))ARM9(哈佛体系结构,32位ARM指令集和16位Thumb指令集,支持主流操作系统,5级整流水线)ARM10、ARM11。Cortex-M3微控制器等。

2、37个寄存器,31个通用寄存器,包括程序计数器(PC指针)32位寄存器,6个状态寄存器。

3、NVIC嵌套向量中断控制器
4、WIC唤醒中断控制器

5、ARM体系结构包括三种状态,ARM状态(32位指令状态),TRUMB状态(16位指令状态),调试状态。
6、ARM工作模式,取决于程序状态寄存器CPSR的低五位的值。用户模式,快速中断模式,外部中断模式,管理模式,中止模式,未定义指令模式,系统模式。

7、AMBA,AHB.APB,ARM内核和处理器芯片中连接总线。存储器及控制器,中断控制器,DMA控制器,电源管理与时钟控制器,GPIO端口,定时计数组件(对特定输入的时钟通过分频后接入计数器进行加一或减一计数,计数达到预定的数值后将引发一个中断并置一定的标志位),模拟通道组件(AD转换),互联通信组件。

MMU(Memory Management Unit)

8、指令集:跳转指令、数据处理指令、程序状态寄存器(PSR)处理指令、加载/存储指令、协处理指令和异常指令。每一条ARM指令包含4位的条件码位于指令最高位,条件码有16种。如BEQ,表示当CPSR中的Z标志位置位时发生跳转(相等则跳转)。

寄存器R13:在ARM指令中常用作堆栈指针SP

寄存器R14:也称作子程序连接寄存器(Subroutine Link Register)即连接寄存器LR

寄存器R15:也称作程序计数器PC

R13位SP堆栈指针

9、堆栈属于内存。声明变量意味着分配内存,根据变量的类型不同,内存区域也不同。堆和栈是两个不同的区域。栈的大小区域有限(比如一般为4M),此区域用于存储局部变量,形参,场景信息等,此类区域系统会自动释放。而堆区理论上则是无限大,为new,malloc等函数中分配内存,这些手动分配的区域必须用delete,free等函数手动释放,系统不会自动释放。具体涉及内存分配和内存管理MMU。

ARM压栈的顺序很是规矩,依次为当前函数指针PC、返回指针LR、栈指针SP、栈基址FP、传入参数个数及指针、本地变量和临时变量。如果函数准备调用另一个函数,跳转之前临时变量区先要保存另一个函数的参数。

BL NEXT       ; 跳转到NEXT

……

NEXT

……

mov pc, lr    ; 从子程序返回。

ARM中断向量表指的是,程序遇到异常或中断时自动跳转到规定的地址,再在规定地址处放一条跳转指令去执行相应的程序(任务)。

大端模式是在大端存储数据的高八位,低端存入数据的低八位。

0 0
原创粉丝点击