ARM系列处理器应用技术完全手册-第三章-微处理器的编程模型-R.doc_第1页
ARM系列处理器应用技术完全手册-第三章-微处理器的编程模型-R.doc_第2页
ARM系列处理器应用技术完全手册-第三章-微处理器的编程模型-R.doc_第3页
ARM系列处理器应用技术完全手册-第三章-微处理器的编程模型-R.doc_第4页
ARM系列处理器应用技术完全手册-第三章-微处理器的编程模型-R.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ARM系列处理器应用技术完全手册第三章微处理器的编程模型R1:ARM采用的是_位架构2:ARM基本数据类型的三种1 字: 32bit2 半字: 16bit3 字节: 8bit 3:存储器的实质可以看成是02(32)-1的线性字节阵列 4:注意1 以字来计的地址一定是4的倍数,所以二进制地址的最后两边一定是:002 以字节计的地址一定是2的倍数,所以二进制地址的最后一位一定是:0 5:数据范围基础N位数据:1 无符号的:02(N)-12 有符号的:-2(N-1) 2(N-1)-1 6:Load/Store数据传输指令可以从存储器存取数据,可以是字类型的,半字,字节 7:注意:1 ARM 指令编译后是四个字节(与字边界对齐)2 Thumb指令编译后是两个字节(与半字边界对齐) 8:大端模式和小端模式1 大端模式:高位放在低地址字节2 小端模式:低位放在低地址字节 9:AEM处理器的7种模式1 用户模式usr2 系统模式sys3 快速中断fiq4 一般中断irq5 数据中止abt6 未定义und7 特权模式svc10:7种模式详解1 用户模式: 执行用户任务时2 系统模式: 执行高级系统调用时3 快速中断模式: 高速数据传输和通道处理时4 一般中断模式: 当一个低级(一般)中断产生时进入这种模式5 数据中止模式: 发生存取异常时进入这种模式6 未定义模式: 碰到未知指令时进入这种模式7 特权模式: 复位或执行软中断(SWI)时进入这种模式11:7种模式的分类1 除了用户模式之外,其余的都可以叫做特权模式2 用户模式下不可以访问所有资源3 在特权模式(其余六种模式)下,可以访问所有系统资源12:异常模式7种模式中,除了用户模式和系统模式,其余五种模式都可以叫做异常模式13:处理器模式切换的方法1 可以通过软件控制实现切换2 可以通过外部中断或异常处理来自动切换14:注意系统模式下,不能有任何异常进入,它主要供操作系统任务使用15:用户模式和系统模式的关系系统模式使用用户模式下的所有寄存器组,它们的环境是一样的,不一样的他们的权限16:ARM中共有寄存器_个(37)17:ARM寄存器的分类1 未分组寄存器:R0 R7- 8 个2 分组寄存器:R8 R121 FIQ: 单用一组2 其余5个模式(用户和系统算一个): 单用一组- 2*5=10 个3 分组寄存器:R13, R14六种模式各有一组- 2*6=12 个4 全局寄存器:CPSR, PC- 2 个5 SPSR除用户模式(系统模式),其余5模式各有一个- 5 个Total: 8+10+12+2+5 = 37 个18:r8_fiq-f12_fig的用途当处于FIQ模式时,这5个寄存器是专门用语FIQ模式的,在FIQ模式下,不用其余通用寄存器,这样就不用执行现场保存和切换命令,提高了反映速度.19:r13和r14的作用r13:一般用来存储各个模式的堆栈地址r14:用来存储返回地址,在子程序返回时,把r14的值复制到PC注意:r14一般还称为:LR20:r14的作用:1 当用BL或BLX调用子程序时,r14被设置成子程序的返回地址2 在进入子程序时,应该做下面的工作:STMFDSP!,LR3 在返回时,应该做下面的工作:LDMFDSP!, PC21:中断嵌套引起的问题:1 如果原来处在usr中断模式,来了一个中断,进入了fiq模式,由于各个中断用的r13,r14不一样,所以不会引起问题2 如果原来处在usr中断模式,来了一个中断,又进入了usr模式,这样一来就会把原来的r13,r14的值冲掉,引起程序异常.-! 解决办法:在第二级中断发生前,将第一级中断用到的寄存器压栈22:注意:由于ARM的流水线机制,指令读出的r15的值是当前执行指令地址+8个字节23:r15的值的特点 1 如果处在 ARM 状态,则PC里面值的位:1:0始终是02 如果处在Thumb状态,则PC里面值的位:0 始终是024:注意当使用指令STR或STM对R15进行保存时,保存的可能是当前指令地址加上8或指令地址加上12,到底是哪种方式取决于芯片的具体设计方式,开发人员应当避免使用STR或STR指令对R15进行操作.25:写入r15地址时:1 写入 ARM 指令时,最后两位被忽略,即写入的值和0xFFFFFFFC做与操作2 写入Thumb指令时,最后一位被忽略,即写入的值和0xFFFFFFFE做与操作26:注意由于系统模式和用户模式不属于异常模式,所以他们没有SPSR,当在用户模式或系统模式下访问SPSR,将会产生不可预测的结果.27:四个标志位1 N2 C3 V4 Z28:影响C标志位的3种情况:1 加法指令:当结果产生了进位,则C=1,表示无符号数运算发生上溢出,其他情况=02 减法指令:当发生借位时,则C=0(表示无符号数运算发生下溢出),其他情况=13 在移位操作时,C被设置成被移位寄存器移出去的最后一位29:影响V标志位的情况:1 在加减指令中,当操作数和运算结果都是以二进制补码表示的带符号数时,V=1表示符号位溢出2 其余情况都不影响V标志位30:CPSR的结构1 bit0:4: 处理器模式-共7种2 bit5: T-是ARM状态还是Thumb状态3 bit6: F-是否允许FIQ中断4 bit7: I-是否允许IRQ中断31:ARM的异常种类和它们对应的模式1 复位异常:特权模式2 数据异常:中止模式3 快速中断异常:FIQ模式4 外部中断异常:IRQ模式5 预取指令异常:中止模式 6 软件中断异常:特权模式3 未定义指令异常:未定义指令模式32:复位异常1 当处理器的复位引脚有效2 下面两种情况产生:1 系统上电2 系统复位3 当发生复位时,执行的伪操作1:相应模式的R14,SPSR*/R14_svc = Unpredictable Value SPSR_svd = Unpredictable Value/*2:设置CPU状态寄存器CPSR*/CPSR4:0 = 0b10011/* 进入特权模式*/CPSR5 = 0 /* 处理器进入ARM状态*/CPSR6 = 1/* 禁止快速中断*/CPSR7 = 1/* 禁止外设中断*/*3:跳转程序(设置PC)*/If high vectors configured thenPC = 0xffff0000ElsePC = 0x000000033:数据访问中止异常1 数据访问中止异常是由寄存器发出数据中止信号2 这种异常是由Load/Store产生3 当出现数据访问中止异常时,执行下面的伪代码*1:设置相应的r14和SPSR*R14_abt = PC (address of the aborted instruction + 8)SPSR_abt = CPSR*2:设置程序状态寄存器CPSR*CPSR4:0 = 0b10111/* 设置ARM工作模式*/CPSR5 = 0/* 处理器进入ARM状态*CPSR7 = 0 /* 禁止外设中断*3:执行异常处理程序*If high vectors configured thenPC = 0xffff000C10ElsePC = 0x00000001034:快速中断FIQ1 当处理器的快速中断请求引脚有效,且CPSR寄存器的F位被清除时,处理器产生FIQ异常2 当FIQ异常发生时,处理器执行下列操作3 *1:保存CPSR,PC*R14_fiq = PC/* 保存PC*/SPSR_fiq = CPSR/* 保存CPSR*2:设置程序状态寄存器CPSR*CPSR4:0 = 0b10001/* 设置工作模式*/CPSR5 = 0 /* 设置ARM状态*/CPSR6 = 1/* 禁止FIQ中断*/CPSR7 = 1/* 禁止IRQ中断*/*3:执行异常处理程序*PC = .35:中断处理总结1 在复位异常中,禁止IRQ,FIQ异常2 在快速中断FIQ异常处理程序中,也禁止IRQ,FIQ异常3 在其他异常模式中,只禁止IRQ异常,不禁止FIQ异常36:注意SWI异常和UND异常享有同样的优先级,因为这两个异常不可能同时发生37:注意B跳转指令的范围是+-32M,所以可能不能到达某一个地质38:从中断处理程序中返回作的三件事情1 通用寄存器的恢复2 状态寄存器的恢复3 PC寄存器的恢复39:三条特殊的指令1 MOVSPC, LR2 SUBSPC,LR,#43 LDMFRDSP!,PC-上面语言中的“S”或“”的作用是在完成LRPC的赋值的同时,完成SPSRCPSR的复制40:PC值和LR值的问题1 在ARM架构里,PC当前执行地址82 LR值的问题a) 凡是设计到LR寄存器的操作,CPU都会自动对它操作,使得:LRLR4在各种异常中LRLR4PC41 软中断异常(SWI)返回地址是当前执行的下一条指令,所以:PCLR,即可2 IRQ或者FIQ异常当发生的是IRQ或者FIQ异常时,因为外部中断请

温馨提示

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

评论

0/150

提交评论