- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
GPIO驱动
GPIO驱动ARM公司自1990年正式成立以来,在32位RISC(Reduced Instruction Set Computer)CPU开发领域不断取得突破,其结构已经从V3发展到V6。目前非常流行的ARM芯核有ARM7TDMIARM720T,ARM9TDMI,ARM920T,ARM940T,ARM926EJ-S,ARM1020EXScale等。从本章开始,将开始走进ARM的世界,领略其独特的魅力。
3.1 ARM体系结构概述
3.1.1 RISC结构
传统的CISC(Complex Instruction Set Computer,复杂指令集计算机)结构有其固有的缺点,即指令结构复杂,指令使用频率却相差悬殊。基于以上的不合理性,1979年美国加州大学伯克利分校提出了RISC(Reduced Instruction Set Computer,精简指令集计算机的概念,RISC并非只是简单地去减少指令,而是把点放在了如何使计算机的结构更加简单合理地提高运算速度上。RISC 结构优先选取使用最高的简单指令,避免复杂指令;将指令长度固定,指令格式和方式种类减少;以控制逻辑为主,不用或少用微码控制等措施来达到上述目的。ARM 体系结构RISC的基本特点:
(1)采用固定长度的指令格式使用单周期指令,便于流水线操作执行。
大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率。
所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。
可用加载/存储指令批量传输数据,以提高数据的传输效率可在一条数据处理指令中同时完成逻辑处理和移位处理在循环处理中使用地址的自动增减来提高运行效率从编程的角度看,ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。ARM ARM 指令集和Thumb 指令集。其中,Thumb 指令集为ARM 指令集的功能子集,比ARM 指令集更节约存储空间。
ARM微处理器的存储器格式大端格式:字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中小端格式:与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节存储器格式
int GetEndianness()
{
short s = 0x0110;
char *p = (char *) s;
if (p[0] == 0x10)
return 0;// 小端格式
else
return 1;// 大端格式
}
3.1.2 处理器模式
ARM微处理器支持7种运行模式,分别用户模式():ARM处理器正常的程序执行状态。
快速中断模式():用于高速数据传输或通道处理。
外部中断模式():用于通用的中断处理。
管理模式():操作系统使用的保护模式。
指令终止模式:当指令预取终止时进入该模式。
系统模式():运行具有特权的操作系统任务。
:。用户模式3.1.3 寄存器组织
ARM微处理器ARM状态寄存器组织ARM状态下通用寄存器通用寄存器包括R0~R15,可以分为三类:未分组Unbanked)寄存器R0~R7;分组Banked)寄存器R8~R14程序计数器PCR15)。未分组寄存器在各种模式下是同的分组寄存器在各种模式下是不同的。CPSR(Current Program Status Register,当前程序状态寄存器SPSR(Saved Program Status Register,备份的程序状态寄存器)CPSR可在任何运行模式下被访问SPSR用于保存CPSR的当前值,从异常退出时可由SPSR来恢复CPSR。图3.1和3.2是ARM模式下寄存器。其中带三角的是分组寄存器
图3.1 ARM模式下的通用寄存器
图3.2 ARM模式下的程序状态寄存器程序状态寄存器ALU中的当前操作信息、控制允许和禁止中断、设置处理器的运行模式。图3.3CPSR各位的作用。表3.1模式位M[4:0]的具体含义
图3.3程序状态寄存器CPSR表3.1模式位M[4:0]的具体含义M[4:0] 处理器模式 可访问的寄存器 10000 用户模式 PC,CPSRR0~R14 10001 FIQ 模式 PC,CPSRSPSR_fiq,R14_fiq-R8_fiqR7~R0 10010 IRQ 模式 PC,CPSRSPSR_irq,R14_irqR13_irq,R12~R0 M[4:0] 处理器模式 可访问的寄存器 10011 管理模式 PC,CPSRSPSR_svc,R14_svcR13_
文档评论(0)