1、1.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 2嵌入式系统的硬件基础嵌入式系统的硬件基础多媒体设备多媒体设备Flash操作系统(操作系统(OS)软件结构软件结构硬件架构硬件架构应用程序应用程序处理器处理器BootloaderSDRAM总线总线显示设备显示设备输入设备输入设备通信接口通信接口模拟模拟/数字数字转换电路转换电路.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 3主要内容主要内容2.1 ARM微处理器微处理器基础基础2.2 嵌入式微处理器的片内功能模块嵌入式微处理器的片内功能模块.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 42.1
2、 ARM2.1 ARM微处理器基础微处理器基础oARM处理器的数据格式处理器的数据格式oARM处理器的存储器格式处理器的存储器格式oARM处理器的工作模式处理器的工作模式oARM 异常处理异常处理oARM 处理器的寄存器组织处理器的寄存器组织.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 5ARMARM处理器的数据格式处理器的数据格式oARM的数据类型的数据类型数据类型数据类型长度长度Byte8Halfword16Word3211 10 9 8 字字8 7 6半字半字65 4半字半字43字节字节32字节字节21字节字节10字节字节0 ARM的操作数均面向的操作数均面向32位,位
3、,只有数据传输指令支持字节只有数据传输指令支持字节和半字的数据类型。和半字的数据类型。 字节和半字的数据均扩展字节和半字的数据均扩展到到32位参与运算和处理。位参与运算和处理。.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 62. ARM2. ARM的存储器格式的存储器格式 qARM有两种存储格式:有两种存储格式:大端存储格式大端存储格式和小端存储和小端存储格式。格式。q大端存储格式:大端存储格式:低地址中存放的是字数据的高字节,低地址中存放的是字数据的高字节,高地址存放的是字数据的低字节。高地址存放的是字数据的低字节。 3232位字的大端存储格式位字的大端存储格式.嵌入式系统
4、的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 72.ARM2.ARM的存储器格式的存储器格式小端存储格式:低地址中存放的是字数据的低字小端存储格式:低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。节,高地址存放的是字数据的高字节。1616位结构的半字的大端存储格式位结构的半字的大端存储格式.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 83.3.指令存储指令存储nARM的存储器有数据存储器和程序存储器两种的存储器有数据存储器和程序存储器两种(51单片机为统一存储)单片机为统一存储) ;n51单片机的指令长度不等,指令代码的存放的起单片机的指令长度不等,指令代
5、码的存放的起始地址没有规律;始地址没有规律;nARM的指令长度相同:的指令长度相同:ARM指令为指令为4个字节,起个字节,起始地址被始地址被4整除;整除;Thumb指令为指令为2个字节,起始地个字节,起始地址被址被2整除;整除;0 x2003、0 x2007不是正确的指令地址。不是正确的指令地址。.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 94.4.数据存储数据存储n51单片机所有的数据是单片机所有的数据是8位,单字节的,对数据的位,单字节的,对数据的操作不会出现异常;操作不会出现异常;nARM处理器对数据操作时,必须找到正确的地址处理器对数据操作时,必须找到正确的地址;对
6、对32位数据操作时,地址数据的末两位必须全为位数据操作时,地址数据的末两位必须全为0;对对16位半字进行操作时,地址数据的末位应该为位半字进行操作时,地址数据的末位应该为0;n思考:如果上述条件不符合,会怎么样?思考:如果上述条件不符合,会怎么样?n地址对准与非地址对准地址对准与非地址对准:通常把正确的地址入口称为地址对准;通常把正确的地址入口称为地址对准;把不正确的地址入口称为非地址对准。把不正确的地址入口称为非地址对准。.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 10n32位的地址对准称为字对准;位的地址对准称为字对准;n16位的地址对准称为半字对准。位的地址对准称为半
7、字对准。n在在ARM中,如果存储单元的地址没有遵守对齐中,如果存储单元的地址没有遵守对齐规则,则称为非对齐的存储访问操作规则,则称为非对齐的存储访问操作。u非对齐的指令预取操作非对齐的指令预取操作u非对齐的数据访问操作非对齐的数据访问操作5.5.非对齐的存储访问操作非对齐的存储访问操作 .嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 11非对齐的指令预取操作非对齐的指令预取操作 n非对齐的指令预取操作只会出现在跳转时;非对齐的指令预取操作只会出现在跳转时;n当处理器处于当处理器处于ARM状态期间,如果写入到寄存器状态期间,如果写入到寄存器PC中的值是非字对齐的,中的值是非字对齐
8、的,N指令执行的结果不可预知,指令执行的结果不可预知,地址值中最低两位被忽略。地址值中最低两位被忽略。n当处理器处于当处理器处于THUMB状态期间,如果写入到寄状态期间,如果写入到寄存器存器PC中的值是非半字对齐的,中的值是非半字对齐的,N指令执行的结果不可预知,指令执行的结果不可预知,地址值中最低位被忽略。地址值中最低位被忽略。.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 12非对齐的数据访问操作非对齐的数据访问操作 n对于对于Load/Store操作,如果是非对齐的数据访问操作,如果是非对齐的数据访问操作,系统定义了三种可能的结果:操作,系统定义了三种可能的结果:执行的结
9、果不可预知;执行的结果不可预知;忽略字单元地址的低两位的值或半字单元地址的最低忽略字单元地址的低两位的值或半字单元地址的最低位的值;位的值;由存储系统实现忽略字单元地址的低两位的值或忽略由存储系统实现忽略字单元地址的低两位的值或忽略半字单元地址的最低位的值,即该地址值原封不动地半字单元地址的最低位的值,即该地址值原封不动地送到存储系统;送到存储系统;x 哪种结果会出现,取决于处理器所执行的指令哪种结果会出现,取决于处理器所执行的指令.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 136 6 存储管理单元(存储管理单元(MMUMMU)nMMU是在是在ARM9以后出现的以后出现的C
10、PU内部功能单元,内部功能单元,主要负责进行主要负责进行CPU和物理内存之间进行地址转换,和物理内存之间进行地址转换,主要工作如下:主要工作如下:虚拟存储空间到物理存储空间的映射,即从虚拟地址虚拟存储空间到物理存储空间的映射,即从虚拟地址到物理地址的转换;到物理地址的转换;存储器访问权限的控制;存储器访问权限的控制;设置虚拟存储空间的缓冲的特性;设置虚拟存储空间的缓冲的特性;nMMU的实现过程实际上就是一个查表映射的过程,的实现过程实际上就是一个查表映射的过程,其关键是页表。其关键是页表。.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 14ARMARM处理器的工作状态和工作模式
11、处理器的工作状态和工作模式 ARM状态与状态与Thumb状态状态ARM处理器有两种工作状态:处理器有两种工作状态: ARM工作状态:处理器执行工作状态:处理器执行32位的位的ARM指令;指令; Thumb工作状态:处理器执行工作状态:处理器执行16位位Thumb指令指令。ARM状态是默认状态,系统复位后自动进入状态是默认状态,系统复位后自动进入ARM状态;状态;ARM状态与状态与Thumb状态可以相互切换,不影响状态可以相互切换,不影响处理器的模式和寄存器的内容;处理器的模式和寄存器的内容;.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 15工作状态的切换工作状态的切换nARM
12、状态与状态与Thumb状态可以互相切换;状态可以互相切换;n切换方式有:切换方式有:特殊指令特殊指令或或某些特定的情形发生;某些特定的情形发生;n由由ARM切换到切换到Thumb状态状态当操作数寄存器的状态位(位当操作数寄存器的状态位(位0)为)为1时,可以采用时,可以采用执行执行BX指令的方法,使微处理器从指令的方法,使微处理器从ARM状态切换到状态切换到Thumb状态;状态;当处理器处于当处理器处于Thumb状态时发生异常(如状态时发生异常(如IRQ、FIQ等)时,处理器强制切换到等)时,处理器强制切换到ARM状态,然后在异常状态,然后在异常处理返回时,自动切换到处理返回时,自动切换到Th
13、umb状态。状态。带交换带交换的分支的分支指令指令.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 16工作状态的切换工作状态的切换n由由Thumb切换到切换到ARM状态状态 当操作数寄存器的状态位(位当操作数寄存器的状态位(位0)为)为0时,执行时,执行BX指令时可以使微处理器从指令时可以使微处理器从Thumb状态切换到状态切换到ARM状态。状态。 在处理器进行异常处理时,把在处理器进行异常处理时,把PC指针放入异常模指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到也可以使处理器切换到ARM状态。状态
14、。.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 172. ARM2. ARM处理器的工作模式处理器的工作模式处理器模式处理器模式描述描述用户模式(用户模式(Usr)ARMARM处理器正常的程序执行状态处理器正常的程序执行状态快速中断模式快速中断模式Fiq)用于高速数据传输或通道处理用于高速数据传输或通道处理标准中断模式标准中断模式Irq)用于通用的中断处理用于通用的中断处理管理模式(管理模式(Svc)操作系统使用的保护模式操作系统使用的保护模式中止模式(中止模式(Abt)用于虚拟存储及存储保护用于虚拟存储及存储保护未定义模式(未定义模式(Und) 出现未定义指令终止时进入该模
15、式出现未定义指令终止时进入该模式系统模式(系统模式(Sys)运行具有特权的操作系统任务运行具有特权的操作系统任务.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 18特权模式下,程序可以访问所有的系统资源,也可特权模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。以任意地进行处理器模式的切换。在用户模式中运行的应用程序不能够访问一些受操在用户模式中运行的应用程序不能够访问一些受操作系统保护的系统资源,也不能直接进行处理器模作系统保护的系统资源,也不能直接进行处理器模式的切换。式的切换。用户模式和特权模式用户模式和特权模式处理器模式处理器模式用户模式用户模式(U
16、sr)特权模式特权模式系统模式系统模式(Sys)异常模式异常模式(others).嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 19模式切换模式切换X 处理器模式可通过软件切换,也可通过外部中断处理器模式可通过软件切换,也可通过外部中断或者异常处理过程进行切换。或者异常处理过程进行切换。当应用程序发生异当应用程序发生异常中断时,处理器进入相应的异常模式。常中断时,处理器进入相应的异常模式。X 系统模式并不是通过异常进入的,它和用户模式系统模式并不是通过异常进入的,它和用户模式具有完全一样的寄存器。但是系统模式属于特权具有完全一样的寄存器。但是系统模式属于特权模式,可以访问所有的
17、系统资源,也可以直接进模式,可以访问所有的系统资源,也可以直接进行处理器模式切换。行处理器模式切换。它主要供操作系统任务使用。它主要供操作系统任务使用。.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 20ARMARM的异常处理的异常处理 n当内部或者外部源产生并引发处理器(暂时)中当内部或者外部源产生并引发处理器(暂时)中止正常的程序执行流程,转而处理突发事件,称止正常的程序执行流程,转而处理突发事件,称之为异常;之为异常;n异常不等同于中断,异常中涵盖了常见的中断。异常不等同于中断,异常中涵盖了常见的中断。n在处理异常之前,当前处理器的状态必须保留,在处理异常之前,当前处理器
18、的状态必须保留,这样当异常处理完成之后,当前程序可以继续执这样当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,它们将会按行。处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。固定的优先级进行处理。.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 21异常类型异常类型 nARM支持支持7类异常,异常发生后,强制处理器类异常,异常发生后,强制处理器从异常类型对应的固定存储器地址开始执行程从异常类型对应的固定存储器地址开始执行程序;序;按下复位按钮或软件设置的复位,使得按下复位按钮或软件设置的复位,使得ARM处理器进入复位异常处理;处理器进入复位异常处理
19、;有指令有指令SWI触发,使处理器立触发,使处理器立即进入管理模式,以请求特定的管理功能;即进入管理模式,以请求特定的管理功能;.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 22异常类型异常类型存储器系统发出存储器系统发出abort信号,表明处信号,表明处理器预取的地址不存在或者该地址不允许当前理器预取的地址不存在或者该地址不允许当前指令访问,若处理器试图读取该地址的指令,指令访问,若处理器试图读取该地址的指令,则产生预取中止;则产生预取中止;与与3类似,处理器试图读取不存类似,处理器试图读取不存在或者不允许的地址的数据时,产生数据中止;在或者不允许的地址的数据时,产生数据中
20、止;属于正常的中断请求,可通过对处理器的属于正常的中断请求,可通过对处理器的nIRQ引脚输入低电平产生;引脚输入低电平产生;.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 23异常类型异常类型:处理器的:处理器的FIQ引脚引脚输入有效,产生输入有效,产生FIR异常;异常;FIQ异常是为了支持异常是为了支持数据传输或者通道处理而设计的;数据传输或者通道处理而设计的;nARM处理外部协处理器指令时,必须等待外协处处理外部协处理器指令时,必须等待外协处理器应答,若外协处理器没有响应,则出现未定理器应答,若外协处理器没有响应,则出现未定义指令异常;义指令异常;nARM处理器从程序存储器
21、中取出一条指令,译码处理器从程序存储器中取出一条指令,译码时发现该指令非有效指令,则出现未定义指令异时发现该指令非有效指令,则出现未定义指令异常;常;.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 24异常的优先级异常的优先级 复位复位 数据中止数据中止 FIQ IRQ 预取中止预取中止 未定义和未定义和SWIn其中其中FIQ、IRQ以及以及SWI一般是人为设定,一般是人为设定,为完成某种功能。为完成某种功能。高高低低.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 25异常处理进入异常异常处理进入异常 n当一个异常出现以后,当一个异常出现以后,ARM微处理器会执
22、行以微处理器会执行以下几步操作:下几步操作:n将将下一条指令的地址下一条指令的地址存入相应连接寄存器存入相应连接寄存器LR。n将将CPSR(当前程序状态寄存器)复制到相应的(当前程序状态寄存器)复制到相应的SPSR(备份的程序状态寄存器)中。(备份的程序状态寄存器)中。n根据异常类型,强制设置根据异常类型,强制设置CPSR的运行模式位。的运行模式位。1.强制强制PC从相关的异常向量地址取下一条指令执行,从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。从而跳转到相应的异常处理程序处。.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 26异常处理从异常处理从异常
23、异常返回返回n异常处理完毕之后,异常处理完毕之后,ARM微处理器会执行以微处理器会执行以下几步操作从异常返回:下几步操作从异常返回:o将连接寄存器将连接寄存器LR的值减去相应的偏移量后送的值减去相应的偏移量后送到到PC中。中。o将将SPSR复制回复制回CPSR中。中。1.若在进入异常处理时设置了中断禁止位,要若在进入异常处理时设置了中断禁止位,要在此清除。在此清除。.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 27预取与自修改代码预取与自修改代码n预取指令:在当前指令还没有执行完之前,就从预取指令:在当前指令还没有执行完之前,就从存储器中取指令;存储器中取指令;n自修改代码:
24、自修改代码:异常出现时,在当前代码后,所有预取指令都被忽异常出现时,在当前代码后,所有预取指令都被忽略掉,开始执行在异常向量中的指令;略掉,开始执行在异常向量中的指令;转移发生时,从超出分支指令的顺序位置预取的任转移发生时,从超出分支指令的顺序位置预取的任何指令都被忽略掉。何指令都被忽略掉。.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 28ARMARM处理器的寄存器组织处理器的寄存器组织 nARM微处理器共有微处理器共有37个个32位寄存器,其中位寄存器,其中31个为通用寄存器,个为通用寄存器,6个为状态寄存器。个为状态寄存器。n这些寄存器不能被同时访问,具体哪些寄存这些寄存
25、器不能被同时访问,具体哪些寄存器是可编程访问的,取决微处理器的工作状器是可编程访问的,取决微处理器的工作状态及具体的工作模式。态及具体的工作模式。n在在ARM工作状态、任意工作模式下,通用寄工作状态、任意工作模式下,通用寄存器存器R14R0、程序计数器、程序计数器PC、一个或两个、一个或两个状态寄存器都是可访问的。状态寄存器都是可访问的。 .嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 291 1)ARMARM状态下的通用寄存器组织状态下的通用寄存器组织.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 301 1)ARMARM状态下的通用寄存器组织状态下的通用寄存
26、器组织 通用寄存器包括通用寄存器包括R0R15,可以分为三类:,可以分为三类:q 未分组寄存器未分组寄存器R0R7q 分组寄存器分组寄存器R8R14q 程序计数器程序计数器PC(R15)q 未分组寄存器未分组寄存器R0R7q 在所有的运行模式下,在所有的运行模式下, R0R7都指向同一个物理都指向同一个物理寄存器,即使用相同的物理寄存器;寄存器,即使用相同的物理寄存器; 在异常处理进行运行模式转换时,可能会造成寄存在异常处理进行运行模式转换时,可能会造成寄存器中数据的破坏,因此进入异常处理时需要保护现器中数据的破坏,因此进入异常处理时需要保护现场。场。.嵌入式系统的软硬件设计硬件基础嵌入式系统
27、的软硬件设计硬件基础 31分组寄存器分组寄存器R8R12u R8R12所对应的物理寄存器与处理器当前的运所对应的物理寄存器与处理器当前的运行模式有关:行模式有关:u 每个寄存器对应两个不同的物理寄存器;每个寄存器对应两个不同的物理寄存器;u 当使用当使用fiq模式时,访问寄存器模式时,访问寄存器R8_fiqR12_fiq;u 当使用除当使用除fiq模式以外的其他模式时,访问寄存器模式以外的其他模式时,访问寄存器R8_usrR12_usr。u R13、R14是比较特殊的寄存器,每个寄存器对是比较特殊的寄存器,每个寄存器对应应6个不同的物理寄存器;个不同的物理寄存器;u用户模式与系统模式共用一个,
28、另外用户模式与系统模式共用一个,另外5个物理寄存器个物理寄存器对应于其他对应于其他5种不同的运行模式;种不同的运行模式;.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 32分组寄存器分组寄存器堆栈指针堆栈指针(SP)R13R13在在ARM指令中常用作堆栈指针;指令中常用作堆栈指针;在在Thumb指令集中,某些指令强制性的要求使用指令集中,某些指令强制性的要求使用R13作为堆栈指针。作为堆栈指针。每种处理器模式都将每种处理器模式都将R13初始化为指向该模式专用初始化为指向该模式专用的栈地址;的栈地址;进入异常模式时,可以将需要保护的寄存器放入进入异常模式时,可以将需要保护的寄存器
29、放入R13所指向的堆栈,而当程序从异常模式返回时,所指向的堆栈,而当程序从异常模式返回时,则从对应的堆栈中恢复则从对应的堆栈中恢复。.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 33分组寄存器分组寄存器连接寄存器(连接寄存器(LR)R14R14也称作子程序连接寄存器;也称作子程序连接寄存器;当执行当执行BL子程序调用指令时,处理器自动把调用子程序调用指令时,处理器自动把调用处的地址存放在处的地址存放在R14中。子程序执行完后,使用一中。子程序执行完后,使用一条指令将条指令将R14的地址恢复给程序计数器的地址恢复给程序计数器PC;ARM执行异常中断时,硬件也自动把程序中断处执行
30、异常中断时,硬件也自动把程序中断处的地址拷贝到的地址拷贝到R14,中断服务完成后,使用一条指,中断服务完成后,使用一条指令把令把R14的地址值恢复给的地址值恢复给PC;指令:指令:MOV PC, R14 or BX LR.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 34程序计数器程序计数器PC(R15)ARM状态下,位状态下,位1:0为为0,位,位31:2用于保存用于保存PC;Thumb状态下,位状态下,位0为为0,位,位31:1用于保存用于保存PC;R15是随时变化的,允许使用指令对其读写;是随时变化的,允许使用指令对其读写;%指令读出的指令读出的R15值是指令地址值是指令
31、地址8(4),),用于快速用于快速的对临近的指令和数据进行位置无关的寻址;的对临近的指令和数据进行位置无关的寻址;%将写到将写到R15中的值作为指令地址,并以此地址发生中的值作为指令地址,并以此地址发生转移;转移;M对对R15R15的赋值必须要有十分的把握!的赋值必须要有十分的把握!.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 352)程序状态寄存器程序状态寄存器(CPSR/SPSR)n 寄存器寄存器R16用作用作CPSR;n CPSR可在任何运行模式下被访问,它包括一些可在任何运行模式下被访问,它包括一些程序状态位和一些程序控制位;程序状态位和一些程序控制位;n R16是各
32、种模式下的通用状态寄存器;是各种模式下的通用状态寄存器;各异常模各异常模式下又有一个专用的式下又有一个专用的SPSR(备份的程序状态寄存(备份的程序状态寄存器);器);异常发生时,处理器自动将异常发生时,处理器自动将CPSR的值存储到的值存储到SPSR;从异常退出时,返回程序时,处理器自动把从异常退出时,返回程序时,处理器自动把SPSR中保存的程序状态恢复到中保存的程序状态恢复到CPSR。.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 362) 程序状态寄存器程序状态寄存器(CPSR/SPSR)n用户模式和系统模式没有用户模式和系统模式没有SPSR,在这两种模式下,在这两种模式
33、下访问访问SPSR,结果不可预知。,结果不可预知。.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 37程序状态寄存器的条件标志位程序状态寄存器的条件标志位标志位标志位含义含义N当前指令运算结果的当前指令运算结果的bit31的值;的值;ZZ=1 :运算的结果为零或者比较结果相同;:运算的结果为零或者比较结果相同;Z=0表示运表示运算的结果为非零;算的结果为非零;C加法运算结果进位时,加法运算结果进位时,C=1;减法运算借位时,减法运算借位时,C=0;移位操作的非加移位操作的非加/减运算指令,减运算指令,C为移出的最后一位;为移出的最后一位;其他的非加其他的非加/减运算指令,减运算
34、指令,C的值通常不改变。的值通常不改变。V加加/减法运算指令,减法运算指令,V=1表示符号位溢出。表示符号位溢出。对于其他的非加对于其他的非加/减运算指令,减运算指令,V的值通常不改变。的值通常不改变。Q在在ARM v5及以上版本的及以上版本的E系列处理器中,系列处理器中,Q标志指示标志指示DSP运运 算指令是否溢出。算指令是否溢出。.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 38程序状态寄存器的控制位程序状态寄存器的控制位 n状态寄存器的低状态寄存器的低8位(位(I、F、T和和M4:0)称为)称为控制位控制位;n发生异常时这些位可以被改变。发生异常时这些位可以被改变。特权
35、模式下特权模式下,这,这些位也可以由程序修改。些位也可以由程序修改。n中断禁止位中断禁止位I、F:I=1 禁止禁止IRQ中断;中断;F=1 禁止禁止FIQ中断。中断。nT运行状态控制位,用于控制指令执行运行状态控制位,用于控制指令执行T0 指示指示ARM执行;执行;T1 指示指示Thumb执行。执行。.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 39n运行模式位运行模式位M4:0是模式位,决定处理器的运行是模式位,决定处理器的运行模式模式 : M4:0 处理器模式处理器模式 10000 用户模式用户模式 10001 FIQ模式模式 10010 IRQ模式模式 10011 管理
36、模式管理模式 10111 中止模式中止模式 11011 未定义模式未定义模式 11111 系统模式系统模式程序状态寄存器的控制位程序状态寄存器的控制位.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 40影响影响CPSRCPSR的指令的指令n影响条件标志位的指令:影响条件标志位的指令:比较指令:比较指令:CMP,CMN;测试指令:测试指令:TEQ,TST;算术指令:算术指令:ADDS,MUL逻辑指令:逻辑指令:MSR,MRC,LDMn一些带一些带“位设置位设置”的算术和逻辑指令的变的算术和逻辑指令的变种指令;种指令;.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础
37、41ThumbThumb状态下的寄存器组织状态下的寄存器组织 nThumb状态下的寄存器集是状态下的寄存器集是ARM状态下寄存器状态下寄存器集的一个子集;集的一个子集;n程序可以直接访问程序可以直接访问8个通用寄存器(个通用寄存器(R7R0)、)、程序计数器(程序计数器(PC)、堆栈指针()、堆栈指针(SP)、连接寄)、连接寄存器(存器(LR)和)和CPSR;n同样,每一种特权模式下都有一组同样,每一种特权模式下都有一组SP、LR和和SPSR; .嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 42ThumbThumb状态下的寄存器组织图状态下的寄存器组织图.嵌入式系统的软硬件设
38、计硬件基础嵌入式系统的软硬件设计硬件基础 43ThumbThumb状态下与状态下与ARMARM状态下的寄存器关系图状态下的寄存器关系图.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 44THUMBTHUMB状态下访问高位寄存器状态下访问高位寄存器(R8R8R12R12,Hi-registersHi-registers) n在在Thumb状态下,高位寄存器状态下,高位寄存器R8R12并不是标并不是标准寄存器集的一部分,但可使用汇编语言程序受准寄存器集的一部分,但可使用汇编语言程序受限制地访问这些寄存器;限制地访问这些寄存器;使用带特殊变量的使用带特殊变量的MOV指令,数据可以在低
39、位指令,数据可以在低位寄存器和高位寄存器之间进行传送;寄存器和高位寄存器之间进行传送;高位寄存器的值可以使用高位寄存器的值可以使用CMP和和ADD指令进行指令进行比较,或加上低位寄存器中的值。比较,或加上低位寄存器中的值。 .嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 45S3C241S3C2410X0X内核内核.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 46嵌入式微处理器常用的内部模块嵌入式微处理器常用的内部模块u通用总线接口(通用总线接口(GPIO)u先进中断控制器(先进中断控制器(AIC)u串、并口(串、并口(USART,PIO)u定时器(定时器(T
40、C)uA/D和和D/Au.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 47通用总线接口(通用总线接口(GPIOGPIO)n主要功能:主要功能:用于产生访问片外存储器和外用于产生访问片外存储器和外部器件的信号;部器件的信号;n特性:特性:EBI的寻址能力为的寻址能力为64M,具有,具有8个片选线和个片选线和24条条地址线,地址线的高地址线,地址线的高4位与片选线复用;位与片选线复用;16位数据线可以配置为位数据线可以配置为8位或位或16位;位;独立的读写控制线允许微处理器与外设直接接独立的读写控制线允许微处理器与外设直接接口;口;.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬
41、件设计硬件基础 48EBIEBI引脚描述引脚描述名称名称描述描述类型类型A0A23地址总线地址总线OD0D15数据总线数据总线I/ONCS0NCS3片选(低电平有效)片选(低电平有效)OCS4CS7片选(高电平有效)片选(高电平有效)ONRD读使能读使能ONWR0NWR1 低、高字节写使能低、高字节写使能ONOE输出使能输出使能ONEW写使能写使能ONLB,NUB低字节和高字节选择线低字节和高字节选择线ONWAIT等待请求等待请求I.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 49EBI_MCREBI_MCRnALE:地址线使能,决定有效的地址线及片选线数目。:地址线使能,决
42、定有效的地址线及片选线数目。ALE有效地址位有效地址位寻址空间寻址空间有效片选有效片选0XXA20A2316M无无100A20A228MCS4101A20,A214MCS4,CS5110A202MCS4CS6111无无1MCS4CS7DRP选择的数据读协议选择的数据读协议0外部存储器的读协议为标准读协议外部存储器的读协议为标准读协议1外部存储器的读协议为早读协议外部存储器的读协议为早读协议.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 50EBI_CSREBI_CSR片选寄存器片选寄存器DBW 数据总线宽度数据总线宽度00保留保留0116位位108位位11保留保留WSE:等待状
43、态使能:等待状态使能0 禁止等待状态发生器,禁止等待状态发生器,不插入等待状态;不插入等待状态;1 使能等待状态器使能等待状态器NWS标准等待状态数目标准等待状态数目.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 51PAGES页容量页容量/MB基地址有效位数基地址有效位数00112位(位(3120)01410位(位(3122)02168位(位(3124)03646位(位(3126) TDF为设置数据浮空输出时间,一共为设置数据浮空输出时间,一共3bits,其值,其值对应数据传送之后加入的周期数。对应数据传送之后加入的周期数。EBI_CSREBI_CSR各位域的作用各位域的作用
44、 .嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 52BAT选择的字节访问类型选择的字节访问类型0字节写访问(支持两个字节的写和一个字节读字节写访问(支持两个字节的写和一个字节读信号,用来连接两个信号,用来连接两个8位器件以合成位器件以合成16位存储位存储页)页)1字节选择访问(可以通过两个字节选择线以及字节选择访问(可以通过两个字节选择线以及独立的读独立的读/写信号分别访问高写信号分别访问高/低字节,用来在低字节,用来在一个存储页连接一个存储页连接16位器件)位器件)CSEN:片选使能:片选使能 0:片选禁止:片选禁止 1:片选使能:片选使能BA:基地址:基地址 包含基地址最
45、高的位。若页容量大于包含基地址最高的位。若页容量大于1M,EBI 译译码器将忽略基地址中没有用到的位。码器将忽略基地址中没有用到的位。.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 538 8位数据总线的连接位数据总线的连接1616位数据总线的连接位数据总线的连接EBIEBI与外部存储器连接示例与外部存储器连接示例.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 54两个两个8 8位存储器数位存储器数据总线的连接据总线的连接.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 55不能选择字节访问的不能选择字节访问的1616位存储器数据总线的连接位存储器
46、数据总线的连接一个一个1616位存储器数据总线的位存储器数据总线的连接(可连接(可8 8位、位、1616位访问)位访问).嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 56先进中断控制器先进中断控制器AICAICnAIC是一个具有是一个具有8优先级、可单独屏蔽的向量优先级、可单独屏蔽的向量中断控制器。中断控制器。存储逻辑控制存储优先级控制器NIRQ管理器NFIQ管理器ARM7TDMI核NFIQNIRQFIQ中断源先进外围总线(APB)内部中断源外部中断源AICAIC方框图方框图.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 57中断源中断源nAIC最多支持最多支
47、持32个中断源,具体为:个中断源,具体为:中断源中断源中断名称中断名称中断描述中断描述中断源中断源 中断名称中断名称 中断描述中断描述0FIQ快速中断快速中断7WDIRQ看门狗中断看门狗中断1SWIRQ软件中断软件中断8PIOIRQ并行并行I/O2US0IRQUSART016IRQ0外部中断外部中断03US1IRQUSART117IRQ1外部中断外部中断14TC0IRQ定时器定时器018IRQ2外部中断外部中断25TC1IRQ定时器定时器1others保留保留6TC2IRQ定时器定时器2.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 58中断源中断源vNFIQ只能由只能由FIQ
48、引脚产生,而引脚产生,而NIRQ则可以由片则可以由片内外围及外部中断请求线内外围及外部中断请求线IRQ0-IRQ2产生;产生;v允许用户定义不同允许用户定义不同NIRQ中断源的优先级;中断源的优先级;v内部中断源可编程为电平敏感中断或边沿触发内部中断源可编程为电平敏感中断或边沿触发中断;中断;v外部中断可编程为上升沿、下降沿和高电平、外部中断可编程为上升沿、下降沿和高电平、低电平中断敏感。低电平中断敏感。.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 59中断控制中断控制n若若AIC同时接收到多个中断,则具有最高优先级同时接收到多个中断,则具有最高优先级的中断优先;若中断级别相
49、同,则中断源编号的中断优先;若中断级别相同,则中断源编号低的优先。低的优先。n由中断使能命令寄存器(由中断使能命令寄存器(IECR)和中断禁止命)和中断禁止命令寄存器(令寄存器(IMR)使能或者禁止所有中断源;)使能或者禁止所有中断源;n通过中断标志设置命令寄存器(通过中断标志设置命令寄存器(ISCR)和中断)和中断标志清除命令寄存器(标志清除命令寄存器(ICCR),可以单独地设),可以单独地设置或者清除所有被编程为边沿触发的中断标志;置或者清除所有被编程为边沿触发的中断标志;.嵌入式系统的软硬件设计硬件基础嵌入式系统的软硬件设计硬件基础 60n软件中断必须编程为边沿触发,以便通过写软件中断必
50、须编程为边沿触发,以便通过写AIC_ICCR 来置位和清除中断标志;来置位和清除中断标志;n伪中断:若处理器核已检测到伪中断:若处理器核已检测到NIRQ,但还未读,但还未读中断向量寄存器(中断向量寄存器(IVR),此时),此时AIC撤销了撤销了NIRQ;伪中断可能发生的情况:伪中断可能发生的情况:v对于任一电平敏感的中断,在处理器核检测到对于任一电平敏感的中断,在处理器核检测到中断有效的同时,中断有效的同时,AIC撤销了中断信号;撤销了中断信号;v在软件通过操作中断禁止命令寄存器禁止某一在软件通过操作中断禁止命令寄存器禁止某一中断的同时,此中断施加了。中断的同时,此中断施加了。.嵌入式系统的软