嵌入式系统的软硬件设计-硬件基础课件_第1页
嵌入式系统的软硬件设计-硬件基础课件_第2页
嵌入式系统的软硬件设计-硬件基础课件_第3页
嵌入式系统的软硬件设计-硬件基础课件_第4页
嵌入式系统的软硬件设计-硬件基础课件_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

嵌入式系统的软硬件设计2.硬件基础.1嵌入式系统的软硬件设计2.硬件基础.1嵌入式系统的硬件基础多媒体设备Flash操作系统(OS)软件结构硬件架构应用程序处理器BootloaderSDRAM总线显示设备输入设备通信接口模拟/数字转换电路.2嵌入式系统的硬件基础多媒体设备Flash操作系统(OS)软件主要内容2.1ARM微处理器基础2.2嵌入式微处理器的片内功能模块.3主要内容2.1ARM微处理器基础.32.1ARM微处理器基础ARM处理器的数据格式ARM处理器的存储器格式ARM处理器的工作模式ARM异常处理ARM处理器的寄存器组织.42.1ARM微处理器基础ARM处理器的数据格式.4ARM处理器的数据格式ARM的数据类型数据类型长度Byte8Halfword16Word32111098字876半字654半字43字节32字节21字节10字节0ARM的操作数均面向32位,只有数据传输指令支持字节和半字的数据类型。字节和半字的数据均扩展到32位参与运算和处理。.5ARM处理器的数据格式ARM的数据类型数据类型长度Byte82.ARM的存储器格式

ARM有两种存储格式:大端存储格式和小端存储格式。大端存储格式:低地址中存放的是字数据的高字节,高地址存放的是字数据的低字节。32位字的大端存储格式.62.ARM的存储器格式ARM有两种存储格式:大端存储格式2.ARM的存储器格式小端存储格式:低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。16位结构的半字的大端存储格式.72.ARM的存储器格式小端存储格式:低地址中存放的是字数据的3.指令存储ARM的存储器有数据存储器和程序存储器两种(51单片机为统一存储);51单片机的指令长度不等,指令代码的存放的起始地址没有规律;ARM的指令长度相同:ARM指令为4个字节,起始地址被4整除;Thumb指令为2个字节,起始地址被2整除;0x2003、0x2007不是正确的指令地址。.83.指令存储ARM的存储器有数据存储器和程序存储器两种(514.数据存储51单片机所有的数据是8位,单字节的,对数据的操作不会出现异常;ARM处理器对数据操作时,必须找到正确的地址;对32位数据操作时,地址数据的末两位必须全为0;对16位半字进行操作时,地址数据的末位应该为0;思考:如果上述条件不符合,会怎么样?地址对准与非地址对准:通常把正确的地址入口称为地址对准;把不正确的地址入口称为非地址对准。.94.数据存储51单片机所有的数据是8位,单字节的,对数据的操32位的地址对准称为字对准;16位的地址对准称为半字对准。在ARM中,如果存储单元的地址没有遵守对齐规则,则称为非对齐的存储访问操作。非对齐的指令预取操作非对齐的数据访问操作5.非对齐的存储访问操作

.1032位的地址对准称为字对准;5.非对齐的存储访问操作.10非对齐的指令预取操作

非对齐的指令预取操作只会出现在跳转时;当处理器处于ARM状态期间,如果写入到寄存器PC中的值是非字对齐的,指令执行的结果不可预知,地址值中最低两位被忽略。当处理器处于THUMB状态期间,如果写入到寄存器PC中的值是非半字对齐的,指令执行的结果不可预知,地址值中最低位被忽略。.11非对齐的指令预取操作非对齐的指令预取操作只会出现在跳转时;非对齐的数据访问操作

对于Load/Store操作,如果是非对齐的数据访问操作,系统定义了三种可能的结果:执行的结果不可预知;忽略字单元地址的低两位的值或半字单元地址的最低位的值;由存储系统实现忽略字单元地址的低两位的值或忽略半字单元地址的最低位的值,即该地址值原封不动地送到存储系统;哪种结果会出现,取决于处理器所执行的指令.12非对齐的数据访问操作对于Load/Store操作,如果是非6存储管理单元(MMU)MMU是在ARM9以后出现的CPU内部功能单元,主要负责进行CPU和物理内存之间进行地址转换,主要工作如下:虚拟存储空间到物理存储空间的映射,即从虚拟地址到物理地址的转换;存储器访问权限的控制;设置虚拟存储空间的缓冲的特性;MMU的实现过程实际上就是一个查表映射的过程,其关键是页表。.136存储管理单元(MMU)MMU是在ARM9以后出现的CPUARM处理器的工作状态和工作模式ARM状态与Thumb状态ARM处理器有两种工作状态:ARM工作状态:处理器执行32位的ARM指令;Thumb工作状态:处理器执行16位Thumb指令。ARM状态是默认状态,系统复位后自动进入ARM状态;ARM状态与Thumb状态可以相互切换,不影响处理器的模式和寄存器的内容;.14ARM处理器的工作状态和工作模式ARM状态与Thumb状态工作状态的切换ARM状态与Thumb状态可以互相切换;切换方式有:特殊指令或某些特定的情形发生;由ARM切换到Thumb状态当操作数寄存器的状态位(位[0])为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态;当处理器处于Thumb状态时发生异常(如IRQ、FIQ等)时,处理器强制切换到ARM状态,然后在异常处理返回时,自动切换到Thumb状态。带交换的分支指令.15工作状态的切换ARM状态与Thumb状态可以互相切换;带交换工作状态的切换由Thumb切换到ARM状态

当操作数寄存器的状态位(位[0])为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。.16工作状态的切换由Thumb切换到ARM状态.162.ARM处理器的工作模式处理器模式描述用户模式(Usr)ARM处理器正常的程序执行状态快速中断模式Fiq)用于高速数据传输或通道处理标准中断模式Irq)用于通用的中断处理管理模式(Svc)操作系统使用的保护模式中止模式(Abt)用于虚拟存储及存储保护未定义模式(Und)出现未定义指令终止时进入该模式系统模式(Sys)运行具有特权的操作系统任务.172.ARM处理器的工作模式处理器模式描述用户模式(Usr)特权模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。在用户模式中运行的应用程序不能够访问一些受操作系统保护的系统资源,也不能直接进行处理器模式的切换。用户模式和特权模式处理器模式用户模式(Usr)特权模式系统模式(Sys)异常模式(others).18特权模式下,程序可以访问所有的系统资源,也可以任意地进行处理模式切换处理器模式可通过软件切换,也可通过外部中断或者异常处理过程进行切换。当应用程序发生异常中断时,处理器进入相应的异常模式。系统模式并不是通过异常进入的,它和用户模式具有完全一样的寄存器。但是系统模式属于特权模式,可以访问所有的系统资源,也可以直接进行处理器模式切换。它主要供操作系统任务使用。.19模式切换处理器模式可通过软件切换,也可通过外部中断或者异常处ARM的异常处理

当内部或者外部源产生并引发处理器(暂时)中止正常的程序执行流程,转而处理突发事件,称之为异常;异常不等同于中断,异常中涵盖了常见的中断。在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。.20ARM的异常处理当内部或者外部源产生并引发处理器(暂时)中异常类型

ARM支持7类异常,异常发生后,强制处理器从异常类型对应的固定存储器地址开始执行程序;异常类型:复位:按下复位按钮或软件设置的复位,使得ARM处理器进入复位异常处理;软件中断异常:有指令SWI触发,使处理器立即进入管理模式,以请求特定的管理功能;.21异常类型ARM支持7类异常,异常发生后,强制处理器从异常类异常类型预取中止:存储器系统发出abort信号,表明处理器预取的地址不存在或者该地址不允许当前指令访问,若处理器试图读取该地址的指令,则产生预取中止;数据访问中止:与3类似,处理器试图读取不存在或者不允许的地址的数据时,产生数据中止;IRQ:属于正常的中断请求,可通过对处理器的nIRQ引脚输入低电平产生;.22异常类型预取中止:存储器系统发出abort信号,表明处理器预异常类型快速中断请求(FIR)异常:处理器的FIQ引脚输入有效,产生FIR异常;FIQ异常是为了支持数据传输或者通道处理而设计的;未定义指令异常:ARM处理外部协处理器指令时,必须等待外协处理器应答,若外协处理器没有响应,则出现未定义指令异常;ARM处理器从程序存储器中取出一条指令,译码时发现该指令非有效指令,则出现未定义指令异常;.23异常类型快速中断请求(FIR)异常:处理器的FIQ引脚输入有异常的优先级复位数据中止FIQIRQ预取中止未定义和SWI其中FIQ、IRQ以及SWI一般是人为设定,为完成某种功能。高低.24异常的优先级复位高.24异常处理-进入异常

当一个异常出现以后,ARM微处理器会执行以下几步操作:将下一条指令的地址存入相应连接寄存器LR。将CPSR(当前程序状态寄存器)复制到相应的SPSR(备份的程序状态寄存器)中。根据异常类型,强制设置CPSR的运行模式位。强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。.25异常处理-进入异常当一个异常出现以后,ARM微处理器会执行异常处理-从异常返回异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:将连接寄存器LR的值减去相应的偏移量后送到PC中。将SPSR复制回CPSR中。若在进入异常处理时设置了中断禁止位,要在此清除。.26异常处理-从异常返回异常处理完毕之后,ARM微处理器会执行以预取与自修改代码预取指令:在当前指令还没有执行完之前,就从存储器中取指令;自修改代码:异常出现时,在当前代码后,所有预取指令都被忽略掉,开始执行在异常向量中的指令;转移发生时,从超出分支指令的顺序位置预取的任何指令都被忽略掉。.27预取与自修改代码预取指令:在当前指令还没有执行完之前,就从存ARM处理器的寄存器组织

ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。这些寄存器不能被同时访问,具体哪些寄存器是可编程访问的,取决微处理器的工作状态及具体的工作模式。在ARM工作状态、任意工作模式下,通用寄存器R14~R0、程序计数器PC、一个或两个状态寄存器都是可访问的。.28ARM处理器的寄存器组织ARM微处理器共有37个32位寄存1)ARM状态下的通用寄存器组织.291)ARM状态下的通用寄存器组织.291)ARM状态下的通用寄存器组织

通用寄存器包括R0~R15,可以分为三类:未分组寄存器R0~R7分组寄存器R8~R14程序计数器PC(R15)

未分组寄存器R0~R7在所有的运行模式下,R0~R7都指向同一个物理寄存器,即使用相同的物理寄存器;在异常处理进行运行模式转换时,可能会造成寄存器中数据的破坏,因此进入异常处理时需要保护现场。.301)ARM状态下的通用寄存器组织通用寄存器包括R0分组寄存器—R8~R12R8~R12所对应的物理寄存器与处理器当前的运行模式有关:每个寄存器对应两个不同的物理寄存器;当使用fiq模式时,访问寄存器R8_fiq~R12_fiq;当使用除fiq模式以外的其他模式时,访问寄存器R8_usr~R12_usr。R13、R14是比较特殊的寄存器,每个寄存器对应6个不同的物理寄存器;用户模式与系统模式共用一个,另外5个物理寄存器对应于其他5种不同的运行模式;.31分组寄存器—R8~R12R8~R12所对应的物理寄存器与处分组寄存器—堆栈指针(SP)R13R13在ARM指令中常用作堆栈指针;在Thumb指令集中,某些指令强制性的要求使用R13作为堆栈指针。每种处理器模式都将R13初始化为指向该模式专用的栈地址;进入异常模式时,可以将需要保护的寄存器放入R13所指向的堆栈,而当程序从异常模式返回时,则从对应的堆栈中恢复。.32分组寄存器—堆栈指针(SP)R13R13在ARM指令中常用作分组寄存器—连接寄存器(LR)R14R14也称作子程序连接寄存器;当执行BL子程序调用指令时,处理器自动把调用处的地址存放在R14中。子程序执行完后,使用一条指令将R14的地址恢复给程序计数器PC;ARM执行异常中断时,硬件也自动把程序中断处的地址拷贝到R14,中断服务完成后,使用一条指令把R14的地址值恢复给PC;指令:MOVPC,R14orBXLR.33分组寄存器—连接寄存器(LR)R14R14也称作子程序连接寄程序计数器PC(R15)ARM状态下,位[1:0]为0,位[31:2]用于保存PC;Thumb状态下,位[0]为0,位[31:1]用于保存PC;R15是随时变化的,允许使用指令对其读写;指令读出的R15值是指令地址+8(4),用于快速的对临近的指令和数据进行位置无关的寻址;将写到R15中的值作为指令地址,并以此地址发生转移;对R15的赋值必须要有十分的把握!.34程序计数器PC(R15)ARM状态下,位[1:0]为0,位[2)程序状态寄存器(CPSR/SPSR)寄存器R16用作CPSR;CPSR可在任何运行模式下被访问,它包括一些程序状态位和一些程序控制位;R16是各种模式下的通用状态寄存器;各异常模式下又有一个专用的SPSR(备份的程序状态寄存器);异常发生时,处理器自动将CPSR的值存储到SPSR;从异常退出时,返回程序时,处理器自动把SPSR中保存的程序状态恢复到CPSR。.352)程序状态寄存器(CPSR/SPSR)寄存器R16用作C2)程序状态寄存器(CPSR/SPSR)用户模式和系统模式没有SPSR,在这两种模式下访问SPSR,结果不可预知。.362)程序状态寄存器(CPSR/SPSR)用户模式和系统模式程序状态寄存器的条件标志位标志位含义N当前指令运算结果的bit[31]的值;ZZ=1:运算的结果为零或者比较结果相同;Z=0表示运算的结果为非零;C加法运算结果进位时,C=1;减法运算借位时,C=0;移位操作的非加/减运算指令,C为移出的最后一位;其他的非加/减运算指令,C的值通常不改变。V加/减法运算指令,V=1表示符号位溢出。对于其他的非加/减运算指令,V的值通常不改变。Q在ARMv5及以上版本的E系列处理器中,Q标志指示DSP运算指令是否溢出。.37程序状态寄存器的条件标志位标志位含义N当前指令运算结果的bi程序状态寄存器的控制位

状态寄存器的低8位(I、F、T和M[4:0])称为控制位;发生异常时这些位可以被改变。特权模式下,这些位也可以由程序修改。中断禁止位I、F:I=1禁止IRQ中断;F=1禁止FIQ中断。T运行状态控制位,用于控制指令执行T=0指示ARM执行;T=1指示Thumb执行。.38程序状态寄存器的控制位状态寄存器的低8位(I、F、T和M[运行模式位M[4:0]是模式位,决定处理器的运行模式:M[4:0]处理器模式10000用户模式10001FIQ模式10010IRQ模式10011管理模式10111中止模式11011未定义模式11111系统模式程序状态寄存器的控制位.39运行模式位M[4:0]是模式位,决定处理器的运行模式:程序影响CPSR的指令影响条件标志位的指令:比较指令:CMP,CMN;测试指令:TEQ,TST;算术指令:ADDS,MUL逻辑指令:MSR,MRC,LDM一些带“位设置”的算术和逻辑指令的变种指令;.40影响CPSR的指令影响条件标志位的指令:.40Thumb状态下的寄存器组织

Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集;程序可以直接访问8个通用寄存器(R7~R0)、程序计数器(PC)、堆栈指针(SP)、连接寄存器(LR)和CPSR;同样,每一种特权模式下都有一组SP、LR和SPSR;.41Thumb状态下的寄存器组织Thumb状态下的寄存器集是AThumb状态下的寄存器组织图.42Thumb状态下的寄存器组织图.42Thumb状态下与ARM状态下的寄存器关系图.43Thumb状态下与ARM状态下的寄存器关系图.43THUMB状态下访问高位寄存器

(R8~R12,Hi-registers)

在Thumb状态下,高位寄存器R8~R12并不是标准寄存器集的一部分,但可使用汇编语言程序受限制地访问这些寄存器;使用带特殊变量的MOV指令,数据可以在低位寄存器和高位寄存器之间进行传送;高位寄存器的值可以使用CMP和ADD指令进行比较,或加上低位寄存器中的值。

.44THUMB状态下访问高位寄存器

(R8~R12,Hi-regS3C2410X内核.45S3C2410X内核.45嵌入式微处理器常用的内部模块通用总线接口(GPIO)先进中断控制器(AIC)串、并口(USART,PIO)定时器(TC)A/D和D/A….46嵌入式微处理器常用的内部模块通用总线接口(GPIO).46通用总线接口(GPIO)主要功能:用于产生访问片外存储器和外部器件的信号;特性:EBI的寻址能力为64M,具有8个片选线和24条地址线,地址线的高4位与片选线复用;16位数据线可以配置为8位或16位;独立的读写控制线允许微处理器与外设直接接口;.47通用总线接口(GPIO)主要功能:用于产生访问片外存储器和外EBI引脚描述名称描述类型A0~A23地址总线OD0~D15数据总线I/ONCS0~NCS3片选(低电平有效)OCS4~CS7片选(高电平有效)ONRD读使能ONWR0~NWR1低、高字节写使能ONOE输出使能ONEW写使能ONLB,NUB低字节和高字节选择线ONWAIT等待请求I.48EBI引脚描述名称描述类型A0~A23地址总线OD0~D15EBI_MCRALE:地址线使能,决定有效的地址线及片选线数目。ALE有效地址位寻址空间有效片选0XXA20~A2316M无100A20~A228MCS4101A20,A214MCS4,CS5110A202MCS4~CS6111无1MCS4~CS7DRP选择的数据读协议0外部存储器的读协议为标准读协议1外部存储器的读协议为早读协议.49EBI_MCRALE:地址线使能,决定有效的地址线及片选线数EBI_CSR片选寄存器DBW数据总线宽度00保留0116位108位11保留WSE:等待状态使能0禁止等待状态发生器,不插入等待状态;1使能等待状态器NWS标准等待状态数目.50EBI_CSR片选寄存器DBW数据总线宽度00保留0116位PAGES页容量/MB基地址有效位数00112位(31~20)01410位(31~22)02168位(31~24)03646位(31~26)TDF为设置数据浮空输出时间,一共3bits,其值对应数据传送之后加入的周期数。EBI_CSR各位域的作用.51PAGES页容量/MB基地址有效位数00112位(31~20BAT选择的字节访问类型0字节写访问(支持两个字节的写和一个字节读信号,用来连接两个8位器件以合成16位存储页)1字节选择访问(可以通过两个字节选择线以及独立的读/写信号分别访问高/低字节,用来在一个存储页连接16位器件)CSEN:片选使能0:片选禁止1:片选使能BA:基地址包含基地址最高的位。若页容量大于1M,EBI译码器将忽略基地址中没有用到的位。.52BAT选择的字节访问类型0字节写访问(支持两个字节的写和一个8位数据总线的连接16位数据总线的连接EBI与外部存储器连接示例.538位数据总线的连接16位数据总线的连接EBI与外部存储器连接两个8位存储器数据总线的连接.54两个8位存储器数据总线的连接.54不能选择字节访问的16位存储器数据总线的连接一个16位存储器数据总线的连接(可8位、16位访问).55不能选择字节访问的16一个16位存储器数据总线的连接(可8位先进中断控制器AICAIC是一个具有8优先级、可单独屏蔽的向量中断控制器。AIC方框图.56先进中断控制器AICAIC是一个具有8优先级、可单独屏蔽的向中断源AIC最多支持32个中断源,具体为:中断源中断名称中断描述中断源中断名称中断描述0FIQ快速中断7WDIRQ看门狗中断1SWIRQ软件中断8PIOIRQ并行I/O2US0IRQUSART016IRQ0外部中断03US1IRQUSART117IRQ1外部中断14TC0IRQ定时器018IRQ2外部中断25TC1IRQ定时器1others-保留6TC2IRQ定时器2.57中断源AIC最多支持32个中断源,具体为:中断源中断名称中断中断源NFIQ只能由FIQ引脚产生,而NIRQ则可以由片内外围及外部中断请求线IRQ0-IRQ2产生;允许用户定义不同NIRQ中断源的优先级;内部中断源可编程为电平敏感中断或边沿触发中断;外部中断可编程为上升沿、下降沿和高电平、低电平中断敏感。.58中断源NFIQ只能由FIQ引脚产生,而NIRQ则可以由片内外中断控制若AIC同时接收到多个中断,则具有最高优先级的中断优先;若中断级别相同,则中断源编号低的优先。由中断使能命令寄存器(IECR)和中断禁止命令寄存器(IMR)使能或者禁止所有中断源;通过中断标志设置命令寄存器(ISCR)和中断标志清除命令寄存器(ICCR),可以单独地设置或者清除所有被编程为边沿触发的中断标志;.59中断控制若AIC同时接收到多个中断,则具有最高优先级的中断优软件中断必须编程为边沿触发,以便通过写AIC_ICCR来置位和清除中断标志;伪中断:若处理器核已检测到NIRQ,但还未读中断向量寄存器(IVR),此时AIC撤销了NIRQ;伪中断可能发生的情况:对于任一电平敏感的中断,在处理器核检测到中断有效的同时,AIC撤销了中断信号;在软件通过操作中断禁止命令寄存器禁止某一中断的同时,此中断施加了。.60软件中断必须编程为边沿触发,以便通过写AIC_ICCR来置当处理器核在没有中断挂起的时候去读IVR也会引发伪中断。一旦AIC进入伪中断,只要伪中断未被确认,AIC就不能再向处理器核施加NIRQ和NFIQ;因此必须在中断返回前,通过在伪中断例程里写中断结束命令寄存器(AIC_EOICR)的方式确认伪中断。.61当处理器核在没有中断挂起的时候去读IVR也会引发伪中断。.6PIO口(可编程IO口)PIO口的32个引脚

温馨提示

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

评论

0/150

提交评论