武汉理工大学嵌入式复习重点

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第一章1.嵌入式系统的定义:以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、重量、功耗严格要求的专用计算机系统。2.3.4.嵌入式系统的特点:嵌入专用嵌入式处理器与通用处理器的最大不同就是嵌入式处理器嵌入在针对特定应用设计的系统中综合性强嵌入式系统是将计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物,是一个技术密集、资金密集、知识高度分散、不断创新的知识集成系统设计高效可裁剪——嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余程序固化软件一般都固化在存储器芯片或处理器本身中,这样提高了系统的执行速度和可靠性需要独立的开发系统嵌入式系统本身不具备自举开发能力,必须有一套开发工具和环境才能进行开发生命周期长嵌入式系统和具体应用结合在一起,其升级换代一般与具体产品同步进行,因此具有较长的生命周期可靠性高、成本低、资源受限、功耗低等等第二章1.嵌入式设计方法的演变硬件设计的进步旧方法:选择和使用标准通用集成电路器件新方法:自己设计和制作部分专用的集成电路器件•由各种EDA工具软件提供支持的软件设计的进步旧方法:无操作系统新方法:基于操作系统设计•简化多任务、实时、复杂软件设计第三章(3.7以后是重点,第三章前面的都不考。从3.7往后看)1.ARM微处理机的工作模式ARM微处理器支持7种工作模式User-用户模式(usr)•ARM处理器正常的程序执行状态System-系统模式(sys)•运行具有特权的操作系统任务IRQ-外部中断模式(irq)•用于通用的中断处理FIQ-快速中断模式(fiq)•用于高速数据传输或通道处理Supervisor-管理模式(svc)•操作系统使用的保护模式•复位、软中断调用(SWI)Abort-中止模式(abt)•当数据或指令预取中止时进入该模式•可用于虚拟存储及存储保护Undefined-未定义指令模式(und)•当未定义的指令执行时进入该模式•可用于支持硬件协处理器的软件仿真特权模式除用户模式以外,其余6种模式称之为特权模式(PrivilegedModes),当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。异常模式除去用户模式和系统模式以外的5种又称为异常模式(ExceptionModes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况2.工作模式的改变通过软件改变•系统调用通过外部中断或异常处理改变•外部中断:IRQ、FIQ–来自中断控制器•异常处理–来自CPU内部工作模式的改变举例软件中断指令•SWI0x0;调用0号软中断•SWI0x12;调用12号软中断外部中断•__irqvoidHandlerTIMER5(void)•{•timeval++;//当前时刻递增•pIC-I_ISPC=INT_TIMER5;//清除中断请求位•}3.ARM微处理器的工作状态一般有两种第一种为ARM状态•处理器执行32位的ARM指令•ARM指令要求字对齐第二种为Thumb状态•处理器执行16位的Thumb指令•Thumb指令要求半字对齐工作状态切换在程序的执行过程中,处理器可以随时在两种工作状态之间切换,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容ARM微处理器在开始执行代码时总是处于ARM状态,也就是复位后进入ARM状态工作状态切换方法进入Thumb状态•执行BX指令–BX:带状态切换的跳转指令–当操作数寄存器的最低位[0]为1时,可以使微处理器从ARM状态切换到Thumb状态–BXR0;R0的最低位[0]为1•处理器工作在Thumb状态,如果发生异常并进入异常处理子程序,则异常处理完毕返回时,自动从ARM状态切换到Thumb状态工作状态切换举例BLabelCMPR1,#0BEQLabelADRLR0,ThumbFun+1BXR0BLXLabel4.ARM处理器的寄存器37个32位寄存器•31个通用寄存器•6个状态寄存器这些寄存器不能被同时访问•取决于处理器的–工作状态–工作模式1)通用寄存器通用寄存器包括R0~R15可以分为三类2)未分组寄存器R0~R7未分组寄存器R0~R7在所有的工作模式下,每个未分组寄存器都指向对应的一个物理寄存器。在中断或异常处理进行工作模式转换时,由于不同的处理器工作模式均使用相同的物理寄存器,可能会造成寄存器中数据的破坏分组寄存器R8~R14分组寄存器R8~R14R8~R12•每个寄存器对应2个不同的物理寄存器•当使用FIQ模式时,访问R8_fiq~R12_fiq•当使用其他模式时,访问R8_usr~R12_usrR13、R14•每个寄存器对应6个不同的物理寄存器•其中一个寄存器是用户模式与系统模式共用•另外5个物理寄存器对应于其他5种不同的工作模式R13寄存器一种习惯用法,常用作堆栈指针SP(StackPointer),也可使用其他的寄存器作为堆栈指针,在Thumb指令集中,某些指令强制使用R13作为堆栈指针。在应用程序初始化时,一般都要初始化每种模式下的R13,使其指向该工作模式的栈空间不同物理寄存器的区分。R14寄存器也称链接寄存器LR(LinkRegister)•当执行BL子程序调用指令时,R14中得到R15(程序计数器PC)的备份•BLLabel;下一条指令地址当发生中断或异常时,对应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用来保存R15的返回值其他情况下,R14用作通用寄存器mode为:usr、fiq、irq、svc、abt、und例如:•R13_usr、R13_fiq、R13_irq•R14_svc、R14_abt、R14_und3)程序计数器R15(PC)R15寄存器寄存器用作程序计数器(PC)在ARM状态下,位[1:0]为0,位[31:2]用于保存PC在Thumb状态下,位[0]为0,位[31:1]用于保存PC由于ARM体系结构采用了多级流水结构,对于ARM指令集而言,PC总是指向当前执行指令的下两条指令的地址,即PC的值为当前执行指令的地址值加8个字节。R15也可用作通用寄存器,但一般不这么使用。因为对R15的使用有一些特殊的限制,当违反了这些限制时,程序的执行结果是未知的。4)CPSR寄存器用作CPSR(CurrentProgramStatusRegister)可在任何工作模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位。异常模式下有一个专用的物理状态寄存器,称为SPSR(SavedProgramStatusRegister),当异常发生时,SPSR用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR。用户模式和系统模式不属于异常模式,没有SPSR。5.Thumb状态下的寄存器Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集程序可以直接访问•8个通用寄存器(R7~R0)•程序计数器(PC)•堆栈指针(SP)•连接寄存器(LR)•CPSR:在每一种异常模式下都有一组SP、LR和SPSR6.程序状态寄存器程序状态寄存器的构成一个当前程序状态寄存器(CPSR)五个备份程序状态寄存器(SPSR):备份的程序状态寄存器用来进行异常处理程序状态寄存器的功能:保存ALU中的当前操作信息,控制允许和禁止中断,设置处理器的工作模式。标志位N当用两个补码表示的带符号数进行运算时表示运算结果为负数表示运算结果为正数或零标志位ZZ=1表示运算结果为零;Z=0表示运算结果为非零标志位V对于加/减法运算指令,当操作数和运算结果为补码表示的带符号数时,V=1表示符号位溢出对于其他的非加/减运算指令,V的值通常不改变标志位C加法运算(包括比较指令CMN):•当运算结果产生了进位时(无符号数溢出),C=1,否则C=0减法运算(包括比较指令CMP):•当运算时产生了借位(无符号数溢出),C=1,否则C=0对于包含移位操作的非加/减运算指令,C为移出值的最后一位对于其他的非加/减运算指令,C的值通常不改变中断禁止位I和FI=1禁止IRQ中断;I=0允许IRQ中断F=1禁止FIQ中断;F=0允许IRQ中断运行状态控制位T对于ARMv5及以上的T系列处理器,当该位为1时,程序运行于Thumb状态,否则运行于ARM状态对于ARMv5及以上的非T系列处理器,当该位为1时,执行下一条指令以引起未定义指令异常;当该位为0时,表示运行于ARM状态工作模式位M[4:0]这些位决定了处理器的工作模式7.ARM微处理器的寻址方式1)立即寻址:操作数本身就在指令中2)寄存器寻址:利用寄存器中的数值作为操作数3)寄存器间接寻址:以寄存器中的值作为操作数的地址,而操作数本身存放在存储器中4)基址寻址:寄存器(该寄存器一般称作基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址5)相对寻址:相对寻址以程序计数器PC的当前值为基地址,指令中的地址标号作为偏移量,将两者相加之后得到操作数的有效地址6)多寄存器寻址:采用多寄存器寻址方式,一条指令可以完成多个寄存器值的传送,最多传送16个通用寄存器的值例如•LDMIAR0!,{R1,R2,R3,R4};R1←[R0],R0=R0+4•;R2←[R0],R0=R0+4•;R3←[R0],R0=R0+4•;R4←[R0],R0=R0+4指令后缀IA表示在每次执行操作后R0按字长度增加注意:在寄存器列表中同一寄存器仅能指定一次;加载/存储操作按照寄存器固定次序进行,所以寄存器排列先后关系随意。多寄存器寻址(块拷贝寻址)(特别注意!!!)IA:IncrementAfter,操作完成后地址递增;:IncrementBefore,地址先递增后完成操作;DA:DecrementAfter,操作完成后地址递减;:DecrementBefore,地址先递减后完成操作7)堆栈寻址:堆栈按先进后出(FILO)的工作方式寻址。8.指令格式opcode{cond}{S}Rd,Rn{,operand2}指令助记符,如ADD,LDR,STR执行条件,如NE,EQ是否影响CPSR的值目标寄存器第一操作数寄存器第二操作数•灵活使用第二操作数能够提高代码质量例子:ADDEQSR0,R1,#0x3f1)指令助记符2)指令条件域条件执行当处理器工作在ARM状态时,几乎所有的指令均根据CPSR中条件码的状态和指令的条件域有条件的执行当指令的执行条件满足时,指令被执行,否则忽略条件码每一条ARM指令包含4位的条件码,位于指令码的最高4位[31:28]条件码共有15种,每种条件码可用两个字符表示,这两个字符可添加在指令助记符的后面。下面的实例多研究下!!!实例1代码:if(ab)a++;elseb++;代码:CMPR0,R11,#1代码:if((a!=10)&&(b!=20))a=a+b;代码:CMPR0,#10实例2if((a==10)&&(b!=20))a=a+b;ARM指令:CMPR0,#10CMPEQR1,#20ADDNER0,R0,R1?第四章1.常用的几种存储器SRAM(静态随机存储器):存储密度小,6管结构,占用较大芯片面积,价格较高,功耗较高,容量较小,存取速度快,接口时序简单。DRAM(动态随机存储器):存储密度大,单管结构,单位存储成本较低,功耗较低,容量较大,接口时序复杂,需要刷新电路。EEPROM:非挥发,存储密度小,单位存储成本较高,容量小,写入有限制,页写要等待,接口时序简单,一般采用串行接口,小量参数存储。Flash(闪存存储器):非挥发,存储密度大,单位存储成本较低,容量大,接口时序复杂——需要擦除及Block写,NORFlash&NANDFlash。FRAM(铁电存储器):非挥发,功耗低,读写速度快,接口时序简单,类似SRAM接口,成本高。并行接口存储器:引脚数目多——三大总线•地址、控制总线•数据总线(8/16/32位)存储容量大•适用于大容量存储场合存取速度快接口时序复杂,编程透明串行接口存储器引脚数

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功