体系结构及GPIO样本

上传人:z**** 文档编号:130653343 上传时间:2022-08-05 格式:DOC 页数:7 大小:98.50KB
收藏 版权申诉 举报 下载
体系结构及GPIO样本_第1页
第1页 / 共7页
体系结构及GPIO样本_第2页
第2页 / 共7页
体系结构及GPIO样本_第3页
第3页 / 共7页
资源描述:

《体系结构及GPIO样本》由会员分享,可在线阅读,更多相关《体系结构及GPIO样本(7页珍藏版)》请在装配图网上搜索。

1、实验二ARM体系结构及GPIO一实验目的了解并掌握ARM7芯片的体系结构,能熟练的对个端口进行操作,熟悉嵌入式 系统设计和调试的基本技术。二实验任务1熟悉和掌握ADS1.2软件的使用。2利用ARM实验开发平台,了解系统启动流程,端口控制程序,并完成调试 工作。三实验设备1 PC机一台2 ARM实验开发板及相关设备一套3 ADS1.2开发软件一套四实验原理ARM体系结构概述从最初开发到现在,ARM指令集体系结构有了巨大的改进,并在不断完善和 发展。为了清楚地表示每个ARM应用实例所使用的指令集,ARM公司定义了 5种 主要的ARM指令集体系结构版本,以版本号vlv5表示。(1) 版本l(vl )

2、在ARM1中使用,由于只有26位的寻址空间(现已废弃不用) 从为商业化,该版本包括; 基本的数据处理指令(不包括乘法); 字节、字和半字加载、存储指令; 分支指令(branch),包括在子程序调用中使用的分支和链接指令; 在操作系统调用中使用的软件中断指令;(2) 版本2(v2)依然只有26位寻址空间(现己废弃不用),但相对版本1增 加了以下内容: 乘法和乘加指令; 协处理器支持; 快速中断模式中的两个以上的分组寄存器; 原子性加载存储指令SWP和SWPB(稍后版本中称作v2a);(3) 版本3(v3)将寻址范围扩展到32位;先前存储于R15的程序状态信息 存储在新的当前程序状态寄存器(CPS

3、R)中,且增加了程序状态保存寄存器 (SPSR),以便出现异常时保存CPSR中的内容。另外,版本3还增加了两种处理 器模式,以便在操作系统代码中有效地使用数据中止(Data Abort)、取值中止 (Prefe tch Abor t)和未定义指令异常(Undefined Ins true ti on Excep tion)。相 应地, 版本3指令集发生如下改变: 增加了两个指令MRS和MSR允许访问新的CPSR和SPSR寄存器; 修改过去用于异常返回指令的功能,以便继续使用。(4) 版本4(v4)不再强制要求与以前的版本兼容以支持26位体系结构,清 楚地指明哪个指令会引起未定义指令异常发生。版

4、本4在版本3的基础上增加了 如下内容: 半字加载存储指令; 字节和半字的加载和符号扩展(sign-extend)指令; 在T变量中,转换到Thumb状态的指令;使用用户(User)模式寄存器的新的特权处理器模式。(5) 版本5(v5)在版本4的基础上,对现有指令的定义进行了必要的修正, 对版本4体系结构进行了扩展, 并增加了指令, 具体如下: 改进在T变量中ARM/Thumb状态之间的切换效率; 允许非T变量和T变量一样,使用相同的代码生成技术; 增加讨”数的导零指令,允许更有效的整数除法和中断优先程序; 增加软件断点指令; 增加更多可选择的指令以方便协处理器设计者: 对乘法指令如何设置标志进

5、行了严格的定义。数据类型ARM处理器支持下列数据类型: Byte 字节, 8位 Halfword 半字, 16位(半宁必须和2字节边界对准) Word 字, 32位(字必须与4字节边界对准)ARM微处理器的工作状态ARM微处理器的工作状态一般有两种,并可在两种状态之间切换: ARM状态:此时处理器执行32位的字对齐的ARM指令; Thumb状态,:此时处理器执行16位的、半字对齐的Thumb指令。THUMB指令是ARM指令的子集,它们之间能够相互调用,只要遵循一定的调 用规则。当操作数寄存器的状态位(位0)为1时,能够采用执行BX指令的方 法,使微处理器从ARM状态切换到Thumb状态。当处理

6、器处于Thumb状态时发生 异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切 换到Thumb状态。当操作数寄存器的状态位为0时,执行BX指令时能够使微处 理器从Thumb状态切换到ARM状态。在处理器进行异常处理时,把PC指针放入 异常模式链接寄存器中, 并从异常向量地址开始执行程序, 也能够使处理器切 换到ARM状态。处理器模式ARM体系结构支持7种处理器模式,软件控制、外部中断和异常处理都能够 使模式发生改变。用户模式(usr) : ARM处理器正常的程序执行状态; 快速中断模式( fiq) : 用于高速数据传输或通道处理; 普通中断模式( irq) :

7、 用于通用的中断处理; 服务模式( svc) : 操作系统使用的保护模式; 中止模式( abt) : 用于虚拟存储及存储保护; 未定义模式( und) : 当出现未定义指令终止时进入该模式; 系统模式( sys) : 运行具有特权的操作系统任务; 除了用户模式之外的其它6种处理器模式称为特权模式。特权模式下, 程序能够访问所有的系统资源, 也能够任意地进行处理器模式的切换。特权模式中, 除系统模式外, 其它5种模式又称为异常模式。大多数的用户程序运行在用户模 式下, 此时, 应用程序不能够访问一些受操作系统保护的系统资源, 应用程序 也不能直接进行处理器模式的切换。用户模式下, 当需要进行处理

8、器模式切换时, 应用程序能够产生异常处理, 在异常处理中进行处理器模式的切换。处理器模式能够经过软件进行切换, 也能够经过外部中断或者异常处理过 程进行切换。当应用程序发生异常中断时, 处理器进入相应的异常模式。在每一 种异常模式下都有一组寄存器, 供相应的异常处理程序使用, 这样就能够保证 在进入异常模式时, 用户模式下的寄存器不被破坏。系统模式并不是经过异常进入的, 它和用户模式具有完全一样的寄存器。可 是系统模式属于特权模式, 能够访问所有的系统资源, 也能够直接进行处理器 模式切换。它主要供操作系统任务使用。一般操作系统的任务需要访问所有的系 统资源, 同时该任务依然使用用户模式的寄存

9、器组, 而不是使用异常模式下相 应的寄存器组, 这样能够保证当异常中断发生时任务状态不被破坏。ARM微处理器的存储器格式ARM体系结构所支持的最大寻址空间为4GB。将存储器看作是从零地址开始的 字节的线性组合。从零字节到三字节放置第一个存储的字数据, 从第四个字节到 第七个字节放置第二个存储的字数据,依次排列。ARM体系结构能够用两种方法 存储字数据, 称之为大端格式和小端格式 。大端格式: 在这种格式中, 字数据的高字节存储在低地址中, 而字数据的 低字节则存放在高地址中。小端格式: 与大端存储格式相反, 在小端存储格式中, 低地址中存放的是 字数据的低字节, 高地址存放的是字数据的高字节。

10、ARM微处理器的指令长度能够是32位(在ARM状态下),也能够为16位(在Thumb状态下)ARM微处理器中支持字节(8位)、半字(16位)、字(32位) 三种数据类型, 其中, 字需要4字节对齐( 地址的低两位为0) 、半字需要2字节 对齐( 地址的最低位为0)寄存器ARM处理器共具有37个32位的寄存器:31个通用寄存器,6个状态寄存器, 但并不是所有的寄存器都能总是被访问到。在某一时刻寄存器能否访问, 由处理 器的当前工作状态和操作模式决定。根据微处理器内核的当前工作状态,可分别访问ARM状态寄存器集和Thumb 状态寄存器集。ARM状态寄存器集包含16个能够直接访问的寄存器:R0R15

11、。 除R15以外,其余的寄存器为通用寄存器,可用于存放地址或数据值OR16寄存 器是当前程序状态寄存器CPSR,用于保存状态信息。详细的说明如下:ARM状态下的寄存器组织通用寄存器:通用寄存器包括R0R15,可分为三类未分组寄存器R0R7在所有的运行模式下,未分组寄存器都指向同一个物理寄存器,她们未被系统用作特殊的用途, 因此, 在中断或异常处理进行运行模式转换时,由于不 同的处理器运行模式均使用相同的物理寄存器, 可能会造成寄存器中数据的破 坏, 这一点在进行程序设计时应引起注意。分组寄存器R8R14每次所访问的物理寄存器与处理器当前的运行模式有关。当使用fiq模式时, 访问寄存器R8_fi

12、qR12_fiq;当使用除fiq模式以外的其它模式时,访问寄存 器R8_usrR12_usr。R13、R14:每个寄存器对应6个不同的物理寄存器。其中的一个是用户模式 与系统模式共用, 另外5个物理寄存器对应于其它5种不同的运行模式。采用以下 的记号来区分不同的物理寄存器: R13_R14_mode 为以下几种之一:usr、 fiq、 irq、 svc、 abt、und。R13在ARM指令中常见作堆栈指针,但这只是一种习惯用法,用户也可使用 其它的寄存器作为堆栈指针。在Thumb指令集中,某些指令强制性的要求使用R13 作为堆栈指针。由于处理器的每种运行模式均有自己独立的物理寄存器R13,在

13、初始化部分,都要初始化每种模式下的R13,这样,当程序的运行进入异常模式 时,能够将需要保护的寄存器放入R13所指向的堆栈,而当程序从异常模式返回 时, 则从对应的堆栈中恢复。R14也称作子程序连接寄存器或连接寄存器LR。当执行BL子程序调用指令时, 能够从R14中得到R15(程序计数器PC)的备份。其它情况下,R14用作通用寄存 器。在每一种运行模式下,都可用R14保存子程序的返回地址,当用BL或BLX指令 调用子程序时,将PC的当前值拷贝给R14,执行完子程序后,又将R14的值拷贝 回PC,即可完成子程序的调用返回。程序计数器PC(R15)R15虽然也可用作通用寄存器,但一般不这么使用,因

14、为对R15的使用有一 些特殊的限制,当违反了这些限制时,程序的执行结果是未知的。由于ARM体系 结构采用了多级流水线技术,对于ARM指令集而言,PC总是指向当前指令的下两 条指令的地址,即PC的值为当前指令的地址值加8个字节。程序状态寄存器(CPSR/SPSR)寄存器R16用作CPSR(当前程序状态寄存器),CPSR可在任何运行模式下被 访问, 它包括条件标志位、中断禁止位、当前处理器模式标志位, 以及其它一 些相关的控制和状态位。每一种运行模式下又都有一个专用的物理状态寄存器, 称为SPSR (备份的程序状态寄存器),异常发生时,SPSR用于保存CPSR的值, 从异常退出时则可由SPSR来恢

15、复CPSR。由于用户模式和系统模式不属于异常模 式,她们没有SPSR,当在这两种模式下访问SPSR,结果是未知的。程序状态寄存器的每一位的安排:31拥92Zero条啊标志G-rflcAYCarry BonoExt endSlate biiFl disableMegativeiL&s ThanRO disableMcd& hitsN、Z、C、V均为条件码标志位。它们的内容可被算术或逻辑运算的结果NZCV4-/1FTM4M3M12827262624所改变,而且能够决定某条指令是否被执行。在ARM状态下,绝大多数的指令都 是有条件执行的。在Thumb状态下,仅有分支指令是有条件执行的。标志位的含义如

16、下:标志 位含义N当用两个补码表示的带符号数进行运算时,N=1表示运 算的结果为负数;N=0表示运算的结果为正数或零;Z2=1表示运算的结果为零;Z=0表示运算的结果为非C加弦运算结果进位时,C=b减法运算借位时 c=o* 移位操作的非加/减运算指令,C为移出的最后一位; 其他的非加/减运算指令,C的值通常不改变.V力”减法运算指令,V二1表示符号位溢出. 对于其他的非加/减运算指令,C的值通常不改变.Q在人刚 怖及以上版本的E系列处理器中,Q标志指示DSP 运算指令是否溢出口在茸他版本中,Q标志位无定义。程序状态寄存器的控制位:状态寄存器的低8位(I、F、T和M4: 0)称为控制位,发生异常时这些位能够被改变。如果处理器运行特权模式, 这些位也能够由程序修改。中断禁止位I、F: I=1 禁止IRQ中断;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!