ARM
发布日期:2021-06-29 04:56:32 浏览次数:2 分类:技术文章

本文共 1222 字,大约阅读时间需要 4 分钟。

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

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

转载地址:https://blog.csdn.net/zhang_yin_liang/article/details/52015693 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:uC/OS基本知识
下一篇:嵌入式系统基本知识

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月22日 07时30分38秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章