ImageVerifierCode 换一换
格式:DOCX , 页数:53 ,大小:200.57KB ,
资源ID:17056622      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17056622.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ATSAM中文数据手册Word下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ATSAM中文数据手册Word下载.docx

1、在ARM 处理器上,Jazelle 技术直接且有效的执行Java 字节代码,为下一代Java 无线应用和嵌入式设备提供高性能。ARM9EJ-S 新的Java 特性可以被描述为JVM(Java 虚拟机)的一个硬件模拟。Java 模式将表现为另外一种状态:取代执行ARM 或Thumb 指令,而执行Java字节代码。实现于ARM9EJ-S 上Java 字节代码解码器逻辑实现了95%可执行字节代码的解码,并且在无任何额外开销的情况下把它们转换为ARM 指令,同时,较小频率使用的字节解码被分解成顺序优化的ARM 指令。硬件/软件拆分对编程者,应用程序,以及操作系统都是不可见的。所有现存的ARM 寄存器在

2、Jazelle 状态被重复使用,并且在此模式下所有的寄存器都有特殊的功能。最小的中断延迟被维护于ARM 状态和Java 状态切换。所以字节代码执行可以被重新开启,以方便中断处理程序执行,一个中断自动触发其内核从Java状态到ARM 状态改变。这意味着当执行字节代码时没有特殊的为控制中断而准备的规定,无论是硬件还是软件。11.3.6 AEM9EJ-S 操作模式 在所有的状态下,有七种操作模式: 用户模式是一般的ARM 程序执行状态。被用于执行大多数应用程序 快速中断(FIQ)模式被用于控制快速中断。适用于高速数据传输或通道进程 中断(IRQ)模式被用于一般目的中断的处理 管理模式是一种操作系统的

3、保护模式 中止(abort)模式在一个数据或指令预取中止后进入 系统模式是一个操作系统的特权用户模式 未定义模式当一个未定义指令异常发生后进入模式转换可在软件控制下发生,或可能被外部中断或异常处理所引发。大多数的应用程序执行是在用户模式下进行的。非用户模式,又称特权模式,用于处理中断或异常,以及访问被保护的资源。11.3.7 AEM9EJ-S 寄存器AEM9EJ-S 内核共有37 个寄存器 31 个通用的32 位寄存器 6 个32 位的状态寄存器表11-1 显示了所有模式下所有寄存器表 11-1. ARM9TDMI 模式和寄存器配置用户模式和系统模式管理模式中止模式未定义模式中断模式快速中断模

4、式R0R1R2R3R4R5R6R7R8R8_FIQR9R9_FIQR10R10_FIQR11R11_FIQR12R12_FIQ表 11-1. ARM9TDMI 模式和寄存器配置(续)R13R13_SVCR13_ABORTR13_UNDEFR13_IRQR13_FIQR14R14_SVCR14_ABORTR14_UNDEFR14_IRQR14_FIQPCCPSRSPSR_SVCSPSR_ABORTSPSR_UNDEFSPSR_IRQSPSR_FIQ表中阴影部分为:特定模式下的备份寄存器ARM状态寄存器集包括16 个直接存取寄存器,r0 到r15,和一个附加寄存器:当前程序状态寄存器(CPSR)。

5、寄存器r0 到r13 是用于保存数据或地址值的通用寄存器。寄存器r14被用作一个连接寄存器(Link Register),当BL 或BLX 被执行的时候,用来保存r15 的值(返回地址)。寄存器r15 被用作程序计数器(PC),当前程序状态寄存器(CPSR)包含条件代码标志位和当前模式位。在特权模式(FIQ,管理模式,中止模式,IRQ,未定义模式),特定模式备份寄存器(FIQ模式的r8 到r14 或其他模式的r13 到r14)可用。当中断或异常发生,或当BL 或BLX 指令在中断或异常例程的情况被执行,对应的备份寄存器r14_FIQ,r14_SVC,r14_ABT,r14_IRQ,r14_UN

6、D 相似的被用于保存r15(PC)的值(为每个模式的返回地址)。还有另外的一个叫保存程序状态寄存器(SPSR)的寄存器,在特权模式下代替CPSR 变成可用。此寄存器保存进入到当前模式(特权模式)之前模式的代码标志位及当前模式位。出于软件一致性,在所有的模式下,r13 被用作堆栈指针。所有的上面描述的寄存器的功能和用途都应该服从ARM Procedure Call Standard(APCS),包括: 寄存器用途的约束 堆栈约定 参数传递并返回结果的约定Thumb 状态寄存器集是一个ARM 状态集的一个子集。编程者可直接访问: 八个通用寄存器R0-R7 堆栈指针,SP 连接寄存器,LR(ARM

7、R14) PC CPSR 每个特权模式都有备份寄存器SPs,LRs 和SPSRs(更多的细节见ARM9EJ-S 技术参考手册,ref.DDI0222B,revision r1p2)。11.3.7.1 状态寄存器ARM9EJ-S 内核包括一个CPSR,和五个异常模式处理程序使用的SPSRs。程序状态寄存器包括: 保存最近ALU 操作运行的信息 使能和禁用中断 设置处理器操作模式图11-2 状态寄存器格式图11-2 展示了状态寄存器格式: 四个ALU 标志位,N:Negative(负),Z:Zero(零),C:Carry(进位),V:Overflow(溢出) 黏着(sticky)溢出标志位(Q)可

8、以被特定的乘法和小数运算指令像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支持五种异常。每种类型在一个特权模式下驱动

9、ARM9EJ-S。异常的类型有: 快速中断(FIQ) 一般中断(IRQ) 数据和预取指中止(Abort) 未定义指令(未定义) 软件中断和复位(管理模式)当一个异常发生,R14 的备份寄存器软中断和管理模式与异常模式下的SPSR 用来保存状态。在同一时间可以发生多于一个的异常。因此ARM9EJ-S 根据以下的优先级运行引发的异常: 复位(最高优先级) 数据中止 FIQ IRQ 预取指中止 BKPT,未定义的指令,和软件中断(SWI)(最低优先级)BKPT,或未定义指令,和SWI 异常是互斥的。在优先级序列中有一个例外,当FIQ 使能,并且发生数据中止异常时一个FIQ 也同时发生,ARM9EJ-

10、S 内核进入数据中止(Data Aborts)处理程序,然后立即进入FIQ 向量。一个FIQ 的一般中断返回导致(先前的)数据中断(Data Aborts)处理继续执行。数据中断(Data Aborts)必须是比FIQ 有较高优先级以确保传输错误不会漏过检测。异常模式和控制无论何时,当异常发生,一个程序的正常流程必须暂时停止,例如,处理一个外设中断。当处理一个ARM 的异常时,ARM9EJ-S 内核执行以下操作:1. 保存下一条指令的地址到进入的新模式所对应的Link 寄存器当异常从以下状态进入:- ARM 和Jazelle 状态,ARM9EJ-S 把下一个指令的地址复制到LR(根据异常,当前

11、PC(r15)+4 或PC+8) - THUMB 状态,ARM9EJ-S 写PC 的值到LR,偏移一个值(根据异常,当前PC+2,PC+4 或PC+8),使得程序能从正确地址返回重开始的值。2. 复制CPSR 到相应的SPSR3. 根据异常状态强制设置CPSR 相关模式位4. 强制PC 从相关的异常向量获取下一个指令。寄存器r13 也是备份的,通过异常模式向每个异常处理提供专用堆栈指针。ARM9EJ-S 也可以置位中断禁止标志位,以阻止不可管理的异常嵌套。当一个异常处理完成,异常处理必须把备份LR 的值减去一个偏移量的后移到PC,把SPSR 复制到CPSR。偏移量根据异常类型变化。此操作恢复P

12、C 和CPSR。快速中断模式有七个专用寄存器r8-r14(备份寄存器),可以减少不需要对寄存器的保存操作,以降低上下文切换的额外消耗。 预取指中止是中止模式之一,表示当前存储器访问不能完成。当一个预取指中止发生,ARM9EJ-S 标记预取指令为无效,但指令在流水线中未到达执行阶段则不执行例外异常模式。如果指令没有执行,例如由于一个分支在流水线中发生,则中止不发生。断点指令(BKPT)是ARM9EJ-S 的一个新的特性,被设计用于解决预取指中止的问题。一个断点指令像导致一个预取指中止的指令一样执行。断点指令不会使ARM9EJ-S 去执行预取指中止异常模式,直到指令到达流水线的执行阶段。如果指令未

13、执行,例如因为一个分支在流水线中发生,断点不再发生。11.3.8 ARM 指令集一览ARM 指令集被分成: 分支(Branch)指令 数据处理指令 状态寄存器传输指令 装载和存储指令 协处理器指令 异常产生(Exception-generating)指令ARM 指令可以被有条件的执行。每个指令包含一个4 位条件代码字段(位31:38)。表 11-2 给出了ARM 指令助记符列表。表 11-2. ARM 指令助记符列表助记符操作MOVMove 传送MVNMove Not 取反传送ADDAdd 加ADCAdd with Carry 带进位加SUBSubtract 减SBCSubtract with

14、 Carry 带借位减RSBReverse Subtract 逆减RSCReverse Subtract with Carry 带借位逆减CMPCompare 比较CMNCompare Negated 取反比较TSTTest 测试TEQTest Equivalence 测试等价ANDLogical AND 逻辑与BICBit Clear 位清零EORLogical Exclusive OR 逻辑异或ORRLogical (inclusive) OR 逻辑或MULMultiply 乘MLAMultiply Accumulate 乘累加SMULLSign Long Multiply 带符号长乘UM

15、ULLUnsigned Long Multiply 无符号长乘SMLALSigned Long Multiply Accumulate 带符号长乘累加UMLALUnsigned Long Multiply Accumulate无符号长乘累加MSRMove to Status Register 传送到状态寄存器MRSMove From Status Register从状态寄存器传送BBranch 分支BLBranch and Link 分支并链接BXBranch and Exchange 分支并交换SWISoftware Interrupt 软件中断LDRLoad Word 装载字STRStor

16、e Word 存储字LDRSHLoad Signed Half word 装载带符号半字LDRSBLoad Signed Byte装载带符号字节LDRHLoad Half Word 装载半字STRHStore Half Word 存储半字LDRBLoad Byte 装载字节STRBStore Byte 存储字节LDRBTLoad Register Byte with Translation装载带转换的寄存器字节STRBTStore Register Byte with Translation存储带转换的寄存器字节LDRTLoad Register with Translation装载带转换的寄

17、存器STRTStore Register with Translation存储带转换的寄存器LDMLoad Multiple 批量装载STMStore Multiple 批量存储SWPSwap Word 字交换SWPBSwap Byte 交换字节MCRMove To Coprocessor 传送至协处理器MRCMove From Coprocessor从协处理器传送LDCLoad to Coprocessor装载至协处理器STCStore From Coprocessor从协处理器存储CDPCoprocessor Data Processing协处理器数据处理11.3.9 新ARM指令集表 1

18、1-3. 新ARM 指令助记符列表BXJBranch and exchange to Java分支并切换至JavaM RRCMove double from coprocessor从协处理器传送双字BLX(1)Branch, Link and exchange分支,连接并切换MCR2Alternative move of ARM reg to coprocessorARM 寄存器到协处理器的选择传送SMLAxySigned Multiply Accumulate 16*16 bit带符号乘累加16*16 位MCRRMove double to coprocessor传送双字到协处理器Signe

19、d Multiply Accumulate Long带符号长型乘累加CDP2Alternative Coprocessor Data Processing选择协处理器数据处理SMLAWySigned Multiply Accumulate 32*16 bit带符号乘累加32*16 位BKPTBreakpoint 断点SMULxy* Signed Multiply 16 * 16 bit带符号乘16*16 位PLDSoft Preload, Memory prepareto load from address软预装载,存储器从地址装载SMULWySigned Multiply 32 * 16 b

20、it带符号乘32*16 位STRDStore Double 存储双字QADDturated Add 饱和加STC2Alternative Store from Coprocessor从协处理器选择存储QDADDSaturated Add with Double饱和双精度加LDRDLoad Double 装载双字QSUBSaturated subtract 饱和减LDC2Alternative Load to Coprocessor选择装载到协处理器QDSUBSaturated Subtract with double饱和双精度减CLZCount Leading Zeroes 前导零计数注意:一

21、个Thumb BLX 包含两个连续的Thumb 指令,并需四个时钟周期。11.3.10 Thumb 指令集概论Thumb 指令集是ARM 指令集的一个重编码子集。Thumb 指令集被分成: 分支指令 数据处理指令 装载和存储指令 批量装载和批量存储指令 异常产生指令表11-4 给出了Thumb 指令助记符列表。表 11-4 Thumb 指令助记符列表Move传送NEGNegate 取反LSLLogical Shift Left 逻辑左移LSRLogical Shift Right 逻辑右移ASRArithmetic Shift Right 算数右移RORRotate Right 循环右移BLX

22、Branch, Link, and Exchange 分支,连接,切换Branch and Link 分支并连接Branch and Exchange 分支并切换Load Signed Half word装载带符号半字Load Signed Byte 装载带符号字节LDMIASTMIAPUSHPush Register to stack 寄存器入栈POPPop Register from stack 出栈到寄存器BCCConditional Branch 条件分支11.4 CP15 协处理器协处理器15,或系统控制协处理器CP15,被用于配置和控制下表中所有项: ARM9EJ-S 高速缓冲(I Cache , D Cache 和写缓冲器) TCM MMU 其他系统选项为了控制这些功能部件,CP15 提供了16 个附加寄存器。见表11-5表11-5 CP15 寄存器寄存器名称读/写ID Code(1) ID 代码* Read/Unpredictable读/不可预测Cache type(1) Cache 类型* TCM status(1) TCM状态* 1Control 控制 Read/write读/写2Translation Table Base 转换表基址3Domain Access Control 域访问控制

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

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