- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章 处理器工作模式
2.1概述
S3C2440采用了非常先进的ARM920T内核,它是由 ARM(Advanced RISC Machines) 公司研制的。
2.2 处理工作状态
从程序员的角度上看,ARM920T可以工作在下面两种工作状态下的一种:
ARM 状态:执行32位字对齐的ARM指令
THUMB 状态:执行16位半字对齐的THUMB指令。在这种状态下,PC 寄存器的第一位来选择一个字中的哪个半字
注意;这两种状态的转换不影响处理模式和寄存器的内容。
2.3 切换状态
进入THUMB 状态
进入THUMB 状态,可以通过执行BX指令,同时将操作数寄存器的状态位(0位)置1来实现。
当从异常(IRQ,FIQ,UNDEF,ABORT,SWI等)返回时,只要进入异常处理前处理器处于THUMB状态,也会自动进入THUMB状态。
进入ARM状态
进入ARM状态,可以通过执行BX指令,并且操作数寄存器的状态位(0位)
清零来实现。
当处理进入异常(IRQ,FIQ,RESET,UNDEF,ABORT,SWI等)。这时,PC值保持在异常模式下的link寄存器中,并从异常向量地址处开始执行处理程序。
存储空间的格式
ARM920T将存储器空间视为从0开始由字节组成的线性集合,字节0到3中保存了第一个字节,字节4到7中保存第二个字,以此类推,ARM920T对存储的字,可以按照小端或大端的方式对待。
大端格式:
在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中,因此字节0存储在数据的24到31行里
高地址 31 24 23 16 15 8 7 0 字地址
8
9
10
11
4
5
6
7
0
1
2
3
低地址 ● 大多数重要的字节在低地址处
● 字的地址是在大多数重要的字节的字节地址处的 图 2-1 以大端格式存储字数据
小端格式:
与大端格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。
高地址 31 24 23 16 15 8 7 0 字地址
11
10
9
8
7
6
5
4
3
2
1
0
低地址 ● 少数重要的地址是在低地址处
● 字的地址是在少数重要的字节的字节地址处的 图 2-2 以小端格式存储字数据
2.4 指令长度
指令可以是32位长度(在ARM状态下) 或16位长度 (在THUMB状态) 。
数据类型
ARM920T支持字节(8位),半字(16位) 和字(32位) 数据类型。字必须按照4字节对齐,半字必须是2字节对齐。
2.5 操作模式
ARM920T支持7种操作模式:
用户模式(user模式),运行应用的普通模式
快速中断模式(fiq模式),用于支持数据传输或通道处理
中断模式(irq模式),用于普通中断处理
超级用户模式(svc模式),操作系统的保护模式
异常中断模式(abt模式),输入数据后登入或预取异常中断指令
系统模式(sys模式),使操作系统使用的一个有特权的用户模式
未定义模式(und模式),执行了未定义指令时进入该模式]
外部中断,异常操作或软件控制都可以改变中断模式。大多数应用程序都是在用户模式下进行,进入特权模式是为了处理中断或异常请求或操作保护资源服务的。
2.6 寄存器
ARM共有37个32位的寄存器,其中31个是通用寄存器,6个是状态寄存器。但在同一时间,对程序员来说并不是多有的寄存器都可见。在某一时刻存储器是否可见,是由处理器当前的工作状态和工作模式决定的。
ARM状态寄存器
在ARM状态下,任何时刻都可以看到16个通用寄存器,1个或2个状态寄存器。在特权模式(非用户模式)下会切换到具体模式下的寄存器组,其中包括模式专用的私有(banked)寄存器。图2-3显示了在每个模式下哪种寄存器是可见的;私有寄存器上都有一个黑三角标记。
ARM状态寄存器系列中含有16个直接操作寄存器:R0到R15。除了R15外其他的都是通用寄存器,可用来存放地址或数据值 。除此之外,实际上有17个寄存器用来存放状态信息。
寄存器14 专职持有返回点
文档评论(0)