关于ARM的几个基本概念浅析

本文详细介绍了ARM处理器的寄存器架构,包括通用寄存器、状态寄存器和程序计数器的工作模式。此外,还讲解了ARM的GPIO系统,如GPxCON、GPxDAT和GPxUP寄存器的使用。最后,讨论了Nor Flash和Nand Flash的编程原理、访问方式和特点,以及它们在启动过程中的作用。
摘要由CSDN通过智能技术生成


1.      ARM的寄存器架构

ARM共有37个32位的寄存器。其中有31个通用寄存器,6个状态寄存器(1个CPSR和对应另外5种模式下的SPSR)。这些寄存器无法同时访问,具体取决于CPU处于的工作模式。在任何时候,R0-R14,PC,一个或两个状态寄存器都是可访问的,只不过可能映射为不同的物理寄存器。

   (ARM的工作模式说明:usr, sys, fiq , irq, svc, abt, und; 其中usr 和sys不属于异常模式)

1.1未备份寄存器

  未备份寄存器是指R0-R7。对于未备份寄存器,在所有的工作模式下,寄存器Ri均指向同一个物理寄存器。该类寄存器没有被系统用于特殊用途。

1.2备份寄存器

   备份寄存器是指R8-R14。其中对于R8-R12,每个寄存器对应于两个不同的物理寄存器(usr/sysm模式下指向一个,fiq模式下指向另一个)。对于R13-R14,每个寄存器对应于6个不同的物理寄存器。(usr/sys下共用一个,另外5种模式分别对应5种)

1.3程序计数器

   理解PC总是指向当前执行指令的+8字节:由于ARM采用流水线的机制(前一条指令进入译码后pc开始移位到下一指令),不管芯片为几级流水,“取指”和“执行”之间总相差两级,故相差两个字长。

   理解写入R15(PC)的地址值必须保证bit[1,0]=00:

   此处需要先理解下ARM指令的对齐概念:字对齐,半字对齐,和字节对齐。

   ARM指令为32位,故其存储时按4字节对齐存储,即指令的地址必须为4的倍数。

统一Thunb指令为16位,存储按2字节存储,其指令的地址须为2的倍数。保证PC的最低两位为0可以保证地址为4的倍数。同理对于Thumb来说,地址末位需为0。这一点在进行PC的相关操作时需特别注意。

1.4程序状态寄存器CPSR( R16 )

   CPSR,当前程序状态寄存器,可在任何模式下被访问。异常模式下存在SPSR,备份程序状态寄存器。当异常发生时,用于存放和恢复CPSR。CPSR的高4位为条件标志位,低8位为3个标志位+5个模式选择位。具体各位的含义可参考其他书籍。

 

2.      ARM的GPIO

GPIO意为通用输入输出端口,简单说就是一些引脚,引脚的操作一般有三种:输出高低电平,检测引脚状态,产生中断。S3C2440有130个I/O端口,分为A-J共9组:GPA、GPB、、、、GPJ,可以通过设置寄存器来确定某个引脚用于输入、输出还是特殊功能。

   2.1GPxCON

ARM通过寄存器来实现对GPIO的操作,分别是GPxCON,GPxDAT,GPxUP。其中GPACON较为特殊,其每一位对应一根引脚(23根),只能做输出或复用。相应位设置为0时,对应引脚为输出。相应位设置为1时,做地址线或控制线,此时GPADAT失效。GPACON共控制23个引脚,故GPADAT的低23位分别对GPA0-22读写。

       其余GPxCON均为每2位控制一引脚,00表示输入,01表示输出,10表示特殊功能,11保留不用。故相应的GPxDAT低16位分别对GPX0-15进行读写。

  2.2GPxDAT

       用于读写引脚,当引脚被设为输入时,读此寄存器得到对应引脚的电平状态是高还是低;当引脚被设为输出时,写此寄存器相应位可令此引脚输出高低电平。

  2.3GPxUP

       GPxUP,某位为1时,相应引脚无内部上拉电阻;为1时,相应引脚使用内部上拉电阻上拉电阻、下拉电阻的作用在于,当GPIO引脚出于第三态(非高低电平,而是高阻态,即相当于没接芯片)时,它的电平状态由上拉电阻和下拉电阻确定。

   2.4简单的例程


#define GPBCON (*(volatile unsigned long *) 0x56000010)      

附对该语句的解释:

首先,0x56000010可以理解为指针,因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值