AT91SAM9260中文数据手册Word格式文档下载.docx

上传人:b****2 文档编号:14836486 上传时间:2022-10-25 格式:DOCX 页数:53 大小:198.98KB
下载 相关 举报
AT91SAM9260中文数据手册Word格式文档下载.docx_第1页
第1页 / 共53页
AT91SAM9260中文数据手册Word格式文档下载.docx_第2页
第2页 / 共53页
AT91SAM9260中文数据手册Word格式文档下载.docx_第3页
第3页 / 共53页
AT91SAM9260中文数据手册Word格式文档下载.docx_第4页
第4页 / 共53页
AT91SAM9260中文数据手册Word格式文档下载.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

AT91SAM9260中文数据手册Word格式文档下载.docx

《AT91SAM9260中文数据手册Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《AT91SAM9260中文数据手册Word格式文档下载.docx(53页珍藏版)》请在冰豆网上搜索。

AT91SAM9260中文数据手册Word格式文档下载.docx

●ARM状态:

32位,字对齐ARM指令

●THUMB状态:

16位,半字对齐的THUMB指令

●Jazelle状态:

可变长度,字节对齐的Jazelle指令

在Jazelle状态,按字(words)取所有的指令。

11.3.2状态切换

ARM9EJ-S核的操作状态在以下状态间切换:

●用BX和BLX指令切换ARM状态和THUMB状态,并加载到PC

●用BXJ指令切换ARM状态和Jazelle状态

所有的异常都在ARM状态下进入,处理和退出。

如果一个异常发生在Thumb状态或Jazelle状态,处理器还原到ARM状态。

从异常模式处理程序退出时自动切换回Thumb或Jazelle状态。

11.3.3指令流水线

ARM9EJ-S核有两种流水线用来提高处理器指令节的速度。

一个五级(五个时钟周期)流水线被用于ARM和Thumb状态。

由取指,译码,执行,存储和回写阶段组成。

一个六级(六个时钟周期)流水线被用于Jazelle状态。

由取指,Jazelle/译码(两时钟周期),执行,存储和回写阶段。

11.3.4存储器访问

ARM9EJ-S核支持字节(8位),半字(16位)和字(32位)访问。

字必须对齐到四字节边界,半字必须对齐到两字节边界而字节可以被放置在任何字节边界。

因为流水线的性质,一个当前操作需要的值在被放置到寄存器前可能被一个先前的指令操作(使得当前流水线预取的值失效,译者注)。

ARM9EJ-S的控制逻辑自动检测这些情况并停止内核或先前传输的数据。

11.3.5Jazelle技术

在ARM处理器上,Jazelle技术直接且有效的执行Java字节代码,为下一代Java无线应用和嵌入式设备提供高性能。

ARM9EJ-S新的Java特性可以被描述为JVM(Java虚拟机)的一个硬件模拟。

Java模式将表现为另外一种状态:

取代执行ARM或Thumb指令,而执行Java字节代码。

实现于ARM9EJ-S上Java字节代码解码器逻辑实现了95%可执行字节代码的解码,并且在无任何额外开销的情况下把它们转换为ARM指令,同时,较小频率使用的字节解码被分解成顺序优化的ARM指令。

硬件/软件拆分对编程者,应用程序,以及操作系统都是不可见的。

所有现存的ARM寄存器在Jazelle状态被重复使用,并且在此模式下所有的寄存器都有特殊的功能。

最小的中断延迟被维护于ARM状态和Java状态切换。

所以字节代码执行可以被重新开启,以方便中断处理程序执行,一个中断自动触发其内核从Java状态到ARM状态改变。

这意味着当执行字节代码时没有特殊的为控制中断而准备的规定,无论是硬件还是软件。

11.3.6AEM9EJ-S操作模式

●在所有的状态下,有七种操作模式:

●用户模式是一般的ARM程序执行状态。

被用于执行大多数应用程序

●快速中断(FIQ)模式被用于控制快速中断。

适用于高速数据传输或通道进程

●中断(IRQ)模式被用于一般目的中断的处理

●管理模式是一种操作系统的保护模式

●中止(abort)模式在一个数据或指令预取中止后进入

●系统模式是一个操作系统的特权用户模式

●未定义模式当一个未定义指令异常发生后进入模式转换可在软件控制下发生,或可能被外部中断或异常处理所引发。

大多数的应用程序执行是在用户模式下进行的。

非用户模式,又称特权模式,用于处理中断或异常,以及访问被保护的资源。

11.3.7AEM9EJ-S寄存器

AEM9EJ-S内核共有37个寄存器

●31个通用的32位寄存器

●6个32位的状态寄存器

表11-1显示了所有模式下所有寄存器

表11-1.ARM9TDMI™模式和寄存器配置

用户模式和

系统模式

管理模式

中止模式

未定义模式

中断模式

快速中断模式

R0

R1

R2

R3

R4

R5

R6

R7

R8

R8_FIQ

R9

R9_FIQ

R10

R10_FIQ

R11

R11_FIQ

R12

R12_FIQ

表11-1.ARM9TDMI™模式和寄存器配置(续)

R13

R13_SVC

R13_ABORT

R13_UNDEF

R13_IRQ

R13_FIQ

R14

R14_SVC

R14_ABORT

R14_UNDEF

R14_IRQ

R14_FIQ

PC

CPSR

SPSR_SVC

SPSR_ABORT

SPSR_UNDEF

SPSR_IRQ

SPSR_FIQ

表中阴影部分为:

特定模式下的备份寄存器

ARM状态寄存器集包括16个直接存取寄存器,r0到r15,和一个附加寄存器:

当前程序状态寄存器(CPSR)。

寄存器r0到r13是用于保存数据或地址值的通用寄存器。

寄存器r14被用作一个连接寄存器(LinkRegister),当BL或BLX被执行的时候,用来保存r15的值(返回地址)。

寄存器r15被用作程序计数器(PC),当前程序状态寄存器(CPSR)包含条件代码标志位和当前模式位。

在特权模式(FIQ,管理模式,中止模式,IRQ,未定义模式),特定模式备份寄存器(FIQ模式的r8到r14或其他模式的r13到r14)可用。

当中断或异常发生,或当BL或BLX指令在中断或异常例程的情况被执行,对应的备份寄存器r14_FIQ,r14_SVC,r14_ABT,r14_IRQ,r14_UND相似的被用于保存r15(PC)的值(为每个模式的返回地址)。

还有另外的一个叫保存程序状态寄存器(SPSR)的寄存器,在特权模式下代替CPSR变成可用。

此寄存器保存进入到当前模式(特权模式)之前模式的代码标志位及当前模式位。

出于软件一致性,在所有的模式下,r13被用作堆栈指针。

所有的上面描述的寄存器的功能和用途都应该服从ARMProcedureCallStandard(APCS),包括:

●寄存器用途的约束

●堆栈约定

●参数传递并返回结果的约定Thumb状态寄存器集是一个ARM状态集的一个子集。

编程者可直接访问:

●八个通用寄存器R0-R7

●堆栈指针,SP

●连接寄存器,LR(ARMR14)

●PC

●CPSR每个特权模式都有备份寄存器SPs,LRs和SPSRs(更多的细节见ARM9EJ-S技术参考手册,ref.DDI0222B,revisionr1p2)。

11.3.7.1状态寄存器

ARM9EJ-S内核包括一个CPSR,和五个异常模式处理程序使用的SPSRs。

程序状态寄存器包括:

●保存最近ALU操作运行的信息

●使能和禁用中断

●设置处理器操作模式

图11-2状态寄存器格式

图11-2展示了状态寄存器格式:

●四个ALU标志位,N:

Negative(负),Z:

Zero(零),C:

Carry(进位),V:

Overflow(溢出)

●黏着(sticky)溢出标志位(Q)可以被特定的乘法和小数运算指令像QADD,QDADD,QSUB,QDSUB,SMLAxy,以及AMLAWy置位,完成需要的DSP操作。

Q标志位是黏着的,意味着当其被一指令置位后,此标志位将一直保持置位,除非通过一个MSR指令写CPSR明确地清零。

指令并不能依Q标志位的状态按条件执行。

●CPSR中的J位表示ARM9EJ-S内核在Jazelle状态:

-J=0:

处理器在ARM或Thumb状态,取决于T位

-J=1:

处理器在Jazelle状态

●模式:

五位编码用于确定当前处理器模式

11.3.7.2异常

异常类型和优先级

ARM9EJ-S支持五种异常。

每种类型在一个特权模式下驱动ARM9EJ-S。

异常的类型有:

●快速中断(FIQ)

●一般中断(IRQ)

●数据和预取指中止(Abort)

●未定义指令(未定义)

●软件中断和复位(管理模式)

当一个异常发生,R14的备份寄存器软中断和管理模式与异常模式下的SPSR用来保存状态。

在同一时间可以发生多于一个的异常。

因此ARM9EJ-S根据以下的优先级运行引发的异常:

●复位(最高优先级)

●数据中止

●FIQ

●IRQ

●预取指中止

●BKPT,未定义的指令,和软件中断(SWI)(最低优先级)

BKPT,或未定义指令,和SWI异常是互斥的。

在优先级序列中有一个例外,当FIQ使能,并且发生数据中止异常时一个FIQ也同时发生,ARM9EJ-S内核进入数据中止(DataAborts)处理程序,然后立即进入FIQ向量。

一个FIQ的一般中断返回导致(先前的)数据中断(DataAborts)处理继续执行。

数据中断(DataAborts)必须是比FIQ有较高优先级以确保传输错误不会漏过检测。

异常模式和控制

无论何时,当异常发生,一个程序的正常流程必须暂时停止,例如,处理一个外设中断。

当处理一个ARM的异常时,ARM9EJ-S内核执行以下操作:

1.保存下一条指令的地址到进入的新模式所对应的Link寄存器当异常从以下状态进入:

-ARM和Jazelle状态,ARM9EJ-S把下一个指令的地址复制到LR(根据异常,当前PC(r15)+4或PC+8)

-THUMB状态,ARM9EJ-S写PC的值到LR,偏移一个值(根据异常,当前PC+2,PC+4或PC+8),使得程序能从正确地址返回重开

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1