资源描述:
《第三讲 ARM编程模型,异常处理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第三讲ARM微处理器编程模型和异常处理第二讲ARM7TDMI嵌入式微处理器原理ARM微处理器的编程模型ARM微处理器的异常处理存储程序处理器指令的执行周期控制和数据通路取指译码:根据指令产生控制信号在适当的时间向正确的部件发正确的控制信号数据通路:在控制信号的控制下执行运算或传输功能数据通路:寄存器组地址寄存器读数据寄存器写数据寄存器乘法器桶型移位器32位ALU地址累加器ABUSBBUSALUBUSINCBUS数据通路组成RegisterBankMultiplierAddressIncremente
2、rALUBAVectorsA[31:0]AddressRegisterBarrelShifterPCALUReadDataRegisterWriteDataRegisterD[31:0]InstructionDecodeARM7的数据通路单循环数据处理指令中:寄存器R1—>B总线,通过移位寄存器R2—>A总线在ALU中合并,结果被写回寄存器组。地址累加PC的值—>地址寄存器,再进入地址累加器再写回寄存器组中的程序寄存器产生下一个地址PC流水技术的本质流水技术的使用ARM7TDMI三级流水线Cycle
3、OperationADDSUBORRANDEORORR123456789FDEFDEFEFDEFDEDFDEWF-FetchD-DecodeE-ExecuteMARMThumbPCPC取指指令从存储器中取出PC-4PC-2译码对指令使用的寄存器进行译码数据控制信号将准备下一个周期。这一阶段,指令拥有译码逻辑,但不拥有数据通路。PC-8PC-4执行指令拥有数据通路。从寄存器组中读出寄存器,执行移位和ALU操作,寄存器写回到寄存器组TheARMCoreRoadmapARM966E-SARM946E-SA
4、RM1026EJ-S20002001200319992002MHz100200300ARM7EJ-SARM7TDMI-SARM7TDMILeopard-SARM926EJ-SARM1136J-SSC100SC200ARM920T第三讲ARM微处理器编程模型和异常处理第二讲ARM7TDMI嵌入式微处理器原理ARM微处理器的编程模型ARM微处理器的异常处理编程模式寄存器处理器内部的存储部件,不同处理器具有很大的不同所有处理器都具有的:程序计数器(程序指针),状态寄存器(标识处理器的状态),累加寄存器(用
5、于算术运算)处理器通常所说的8位/16位/32位/64位,是指其内部寄存器的位宽堆栈先进后出,中断和任务调度中保存现场和局部变量很多处理器都有一个或者多个堆栈指针编程模式:处理器指令集定义了操作,程序员通过操作改变处理器的系统状态,每一条指令:指令前后状态的变化这些状态是有处理器可见寄存器和存储器中的数据项构成的。存储器系统-内存映射内存映射:如何划分不同的内存和I/O设备之间的地址空间(memoryMap)Intel的X86处理器,对I/O设备设置了单独的地址空间,用单独指令来访问,I/O端口映射
6、方式portedI/O;大部分处理器I/O设备和内存存在相同的地址空间,用相同指令进行访问,memory-mappedI/O;I/O地址RAMROM端口I/OI/O空间内存空间otherI/O地址RAMROM内存I/O内存空间otherARM的存储器格式存储器组织字(Word):在ARM体系结构中,字的长度为32位,而在8位/16位处理器体系结构中,字的长度一般为16位,请读者在阅读时注意区分。半字(Half-Word):在ARM体系结构中,半字的长度为16位,与8位/16位处理器体系结构中字的长度
7、一致。字节(Byte):在ARM体系结构和8位/16位处理器体系结构中,字节的长度均为8位。ARM体系结构将存储器看作是从零地址开始的字节的线性组合。从零字节到三字节放置第一个存储的字数据,从第四个字节到第七个字节放置第二个存储的字数据,依次排列。作为32位的微处理器,ARM体系结构所支持的最大寻址空间为4GB存储器数据顺序Big-Endian和Little-Endian处理器在存放多字节的数据时候,一般将低位字节存放在低地址单元,譬如X86系列的处理器;这种方法成为小印第安序(低端优先);在嵌入式
8、系统中被广泛应用的PowerPC处理器中,则把低位字节放在高地址单元,这种方法成为大印第安序(高端优先);123456781234120100010101020103LongwordwordByte785634123412120100010101020103LongwordwordByte七种工作模式处理器的工作模式:对处理器不同状态分类,对每一种方式规定其可以控制的资源。以减少不同工作方式之间的切换代价。对于程序员而言,处理器的不同工作模式就是不同的编程模式ARMV