欢迎来到天天文库
浏览记录
ID:42379495
大小:244.00 KB
页数:7页
时间:2019-09-14
《ARM9学习笔记》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1、嵌入式系统的发展过程嵌入式微处理器(EMPU)-->单片机(SCM)-->嵌入式微控制器(EMCU)-->数字信号处理器(EDSP)-->嵌入式片上系统(ESOC)2、ARM体系结构版本及微处理器系列ARM(AdvancedRISC(ReducedInstructionSetComputer)MachinesLimited)公司,采用ARM技术知识产权IP核的微处理器是我盟通常所说的ARM微处理器。ARM7ARM9ARM11ARMCortex(采用ARMv7架构)ARM7和ARM9对比和ARM7相比,ARM9增加了MMU
2、和Cache。ARM7采用三级流水线结构的风诺依曼结构,ARM9采用五级流水线哈佛结构。后缀解释:T:支持Thumb指令集。D:支持偏上调试(Debug)。M:内嵌硬件乘法器(Mutiplier)。I:支持偏上断点和调试点。E:支持增强型DSP功能。J:Java加速器。S:全合成式。还在使用ARM指令集(InstructionSetArchitecture)有以下版本:ARMv4ARMv4TARMv5TEARMv5TEJARMv6ARMv73、ARM微处理器的工作状态和模式2种状态ARM状态Thumb状态不同状态,单条指令的
3、存储长度是不同的。ARM状态,一条指令4个字节,Thumb状态下一条指令2个字节。7种模式用户模式(Usr)快速中断模式FIQ()外部中断模式IRQ(InterrupRequet)管理模式Supervisor(svc)数据访问中断模式Abort(abt)系统模式System(sys)未定义指令终止模式Undefined除了用户模式外,其它六种成为非用户模式或者特权模式(privilegedmode).出去用户模式和系统模式以外的5种模式成为异常模式(exceptionmode)。4、ARM寄存器ARM处理器含有37个寄存器l
4、31通用寄存器(包括PC,32位)。n未备份寄存器,R0-R7,所有处理器模式下都对应同一个物理寄存器。n备份寄存器,R8-R14,R13和R14对应6个物理寄存器,一个是用户模式和系统模式共用的,其余5个对应5种处理器模式,由CPSR寄存器的M字段(D0-D4)决定。R13常用作堆栈指针q寄存器SP(StackPointerRegister)。R14成为连接寄存器(LR),也叫返回地址寄存器,存放子程序的返回地址。n程序计数器或指令指针寄存器PC(ProgramRegister),即R15,ARM所有模式下都指向一个物理寄
5、存器。l6个状态寄存器(32位)。nCPSR(CurrentProgramStatusRegister)程序状态寄存器,可以在任何模式下被访问,7种模式下指向同一个物理寄存器。nSPSR(SavedProgramStatusRegister)程序状态保存寄存器,系统模式或用户模式下没有SPSR,每种模式对应一个物理寄存器,SPSR常用来当作CPSR的备份寄存器。5 、立即数立即数以#开头,十六进制数#后面加“0x”或“&”,二进制数加“0b”或者“#2_11”,十进制数加“0d”,负数“#-0x1”或“#-1”每个立即数由一
6、个8位的常数循环右移偶数位得到。循环右移的位数由一个4位二进制的两倍表示。如果立即数记作,8位常数记作immed_8,4位循环右移值记作rotate_imm,则有:=immed_8循环右移(2*rotate_imm)。判断一个立即数是否符合8位位图的原则l首先把这个数用2进制表示出来,然后看这个数中“1”的最大间隔是多少,要看两次,一次顺序看,一次循环看,循环看是把16位或32位寄存器的首尾连起来,越过首尾看,两次中如果间隔都大于8(包含首尾的两个1),那这个数肯定是非法的。如果有
7、一次小于等于8则有可能是合法的,可以进行下一步判断。l此时又分为两种情况,n顺序看1的间隔等于8,此时可以看看,这个数最高位1的前面或最低位1的后面是否有偶数个0,只要一种情况下有,这个数就是合法的。n如果循环看1的最大间隔小于等于8,此时可以看看,循环看时,两端得到的间隔个数是否有一个为偶数,如果有一个是偶数,这个数就是合法的。0x1010是非合法的(两次看这个数中“1”的最大间隔大于8)0x1FA是非合法的(顺序看这个数中“1”的最大间隔等于8,这个数最高位1的前面或者最低位1的后面没有偶数个0,)0x7000000E是
8、合法的(因为循环看时,两端得到的间隔个数有一个为偶数)如何判断一个数是否是合法立即数?首先将这个数转换为32bit16进制形式,例如218=0xDA=0x000000DA除零外,仅有一位数为合法立即数。除零外,仅有二位数,并且相邻(包括首尾,如0x1000000A)的为合法立即数。除零外,
此文档下载收益归作者所有