欢迎来到天天文库
浏览记录
ID:50811492
大小:211.00 KB
页数:3页
时间:2020-03-14
《ARM存储器寄存器体系结构介绍.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、ARM7的体系结构(一)每种单片机的区别在于内核前段时间学习的以51为核的单片机,现在正在学习ARM9,实际上是以ARM处理器为核的单片机,51为核的单片机就是把中央处理器,存储器,输入输出设备集成在一个芯片内的芯片,ARM处理器为核的单片机就是把ARM处理器,存储器,输入输出设备集成在一个芯片内的芯片。对于ARM处理器来说,对外围的操作都是对外围设备的寄存器的操作,也就是对地址的操作。(外围设备如串口,定时器等等,他们也有相应的寄存器)。 但是ARM处理器里面有37个32位寄存器,31个通用
2、寄存器,6个状态寄存器,这些寄存器都是不能同时被访问的,具体那些寄存器是可编程访问的,取决于微处理器的工作状态和运行模式。但在任何时候,通用寄存器R0--R14、程序计数器PC、一个或两个状态寄存器都是可以访问的。 ARM处理器都是一样的,只是生产厂家不同而有了像S3C2440这样的单片机等等,实际上这些都是在以ARM处理器外增加了许多外围而形成了单片机,然后在加些外围成了开发板。(二)ARM处理器的存储结构1.有两种存储方式,大端和小端2.在使用一个单片机之前一定要搞清楚此单片机的存储格式3.每
3、个存储单元为一个字节,且都有一个地址,对于32位机来说,数据或代码有32位的,那么一个数据就需要四个单元来存,就涉及到顺序问题,也就是大端方式存和小端方式。4.对字,半字,字节操作(如图)5.与51核单片机不同,ARM处理器的指令代码字节数是相同的,在Tumb指令集中,所有的指令代码都是16位2字节代码,在ARM指令集中,所有的指令代码都是32位4字节代码。6.ARM处理器有多种模式,而51只有一种模式,可以访问全部资源。(三)ARM处理器内部寄存器1.为了使用方便,常常赋予寄存器专用的助记符,也就
4、是寄存器的名称,如下图:2.关于寄存器R13、R14、R15R13作为堆栈指针,和51系列单片机中的SP一样。如果程序发生异常中断时,中断服务程序要把保护的寄存器值堆栈到R13指向的堆栈入口,在退出中断服务时,再把堆栈中的数据弹出来。如堆栈指令PUSH{R0,R4,R5}就是把R0,R4,R5这3个寄存器的值堆栈到R13指向的堆栈区,POP{R0,R4,R5}就是把R13指向的堆栈区的堆栈值弹回到R0,R4,R5中去。R14作为连接寄存器LR,只是在子程序调用和程序中断时存储程序变化处的地址,且只存
5、储一个32位地址。R15作为程序计数器PC,它也可以用做其他功能,但是改变其值的时候要慎重,因为它是指向下一条指令的,随意改变会引起程序混乱。对于51系列的单片机,它总是指向正在执行的指令,对于ARM处理器,是多级流水线的结构,如ARM7,是3级流水线的结构,当ARM处理器在执行第一条指令的时候,第二条正在译码,第三条正在寻址,也叫预取指,所以它总是指向第3条指令,假设执行的是ARM指令,则R15的值=当前执行指令地址+8,假设执行的是Thumb指令,则R15的值=当前执行指令地址+43.程序状态寄
6、存器cpsr程序状态寄存器CPSR是在各种模式下通用的状态寄存器,为了安全的进行中断处理,各种异常模式都有自己的备份状态寄存器SPSR,他的作用是当处理器响应异常中断时,处理器自动把前CPSR的转态存到SPSR中去,以免中断处理程序在使用CPSR时改变原来的状态,对中断返回有影响,而在中断返回时,程序要使用一条指令把SPSR中保存的内容回复到CPSR中去,如MOVPC,LR。这条指令把连接寄存器中的程序中断处的地址恢复到PC中去,在执行这条指令时,处理器硬件会自动把SPSR中保存的程序状态拷贝到CP
7、SR中去。处理器执行跳转指令时不会自动保存CPSR中的值。对于CPSR中的条件标志位中的一种情况是,如果ARM指令中使用条件可选后缀S时,才会刷新标志,如ADDR5,R6ADDSR5,R6在第一条指令中即使有进位或溢出,条件标志也不会改变。在第二条指令中,由于使用了条件后缀S,指令执行结果会刷新标志位。对于CPSR中的控制位在用户模式下是不能修改的,在特权模式下才能修改。如图:在51系列内部的RAM存储区不是寄存器,只是作为存储单元参与指令操作,51系列定时计数器,串行口控制寄存器都不是CPU核内的
8、部件,而是核外围的部件。(参考书籍:从51到ARM32位嵌入式系统入门)
此文档下载收益归作者所有