《ARM嵌入式系统第一讲.ppt》由会员分享,可在线阅读,更多相关《ARM嵌入式系统第一讲.ppt(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、ARM嵌入式系统原理及应用嵌入式系统原理及应用主讲:盛晨辉主讲:盛晨辉教学计划教学计划第二讲第二讲 基于基于LPC2000系列系列ARM的工程设计的工程设计第三讲第三讲 ARM程序设计程序设计第一讲第一讲 嵌入式系统概述及嵌入式系统概述及ARM7体系结构体系结构第五讲第五讲 ARM外围硬件系统与接口技术外围硬件系统与接口技术第四讲第四讲 LPC2000系列系列ARM内部硬件结构内部硬件结构第六讲第六讲 LPC2000系列系列ARM硬件结构及实验硬件结构及实验(1)第七讲第七讲 LPC2000系列系列ARM硬件结构及实验硬件结构及实验(2)第八讲第八讲 LPC2000系列系列ARM硬件结构及实验
2、硬件结构及实验(3)第一讲第一讲 嵌入式系统概述及嵌入式系统概述及ARM7体系结构体系结构ARM7体系结构体系结构LPC2000系列系列ARM概述概述ARM嵌入式系统概述嵌入式系统概述参考资料及文献:参考资料及文献:ARM嵌入式系统基础教程(第嵌入式系统基础教程(第2版)版)第一章、第二章、第四章第一章、第二章、第四章嵌入式系统概述嵌入式系统概述概述概述 即使不可见,嵌入式系统也是无处不在。嵌即使不可见,嵌入式系统也是无处不在。嵌入式系统不仅存在于生活的方方面面,而且在很入式系统不仅存在于生活的方方面面,而且在很多领域和行业得到广泛应用,包括工业自动化、多领域和行业得到广泛应用,包括工业自动化
3、、国防、运输以及航空航天等。国防、运输以及航空航天等。嵌入式系统具有无数的种类,每种种类都有嵌入式系统具有无数的种类,每种种类都有自己独特的个性。自己独特的个性。计算机分为两大类计算机分为两大类通用计算机:通用计算机:PC机、服务器、工作站机、服务器、工作站专用计算机:硬件软件可剪裁,通常是以专用计算机:硬件软件可剪裁,通常是以嵌入式操作系统嵌入式操作系统+用户应用程序,明显的用户应用程序,明显的可嵌入性,对体积、成本、价格、功耗非可嵌入性,对体积、成本、价格、功耗非常敏感,功能具有很强的针对性,通常要常敏感,功能具有很强的针对性,通常要求可靠性和实时性求可靠性和实时性嵌入式系统的定义嵌入式系
4、统的定义从技术角度定义:以应用为中心,以计算机技术为基础,硬件软件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。从系统角度定义:嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。术语“嵌入式”反映了它通常是更大系统中的完整系统。嵌入的系统中可以有多个嵌入式系统。嵌入式微处理器的分类嵌入式微处理器的分类嵌入式微处理器MPU嵌入式微控制器嵌入式微控制器MCU嵌入式数字信号处理器DSPARM技术的发展技术的发展ARM(Advanced RISC Machines)是一家坐落在英国剑桥的电子公司,1990年11月由苹果电脑、Acorn和VLS
5、I Technology共同组建。ARM公司既不设计芯片,也不生产芯片,他们以高效的IP(Intellectual Property)内核为产品。ARM技术的发展技术的发展目前,几十家大的半导体公司都是使用目前,几十家大的半导体公司都是使用ARM公司公司的授权,在的授权,在ARM内核及其技术的基础上添加自己内核及其技术的基础上添加自己的设计并推出各种芯片产品,即的设计并推出各种芯片产品,即ARM微处理器或微处理器或ARM微控制器。微控制器。ARM芯片已遍及工业控制、消费电子、通信系统、芯片已遍及工业控制、消费电子、通信系统、网络系统、无线电系统以及生活的各个方面。已网络系统、无线电系统以及生活
6、的各个方面。已经改变了人们生活、工作和娱乐方式。经改变了人们生活、工作和娱乐方式。世界上大多数嵌入式系统世界上大多数嵌入式系统32位微控制器芯片都是位微控制器芯片都是基于基于ARM内核的。内核的。ARM已经成为嵌入式微处理器的代名词,已经成为嵌入式微处理器的代名词,ARM公司成为全球性公司成为全球性RISC标准的缔造者。标准的缔造者。第一讲第一讲 主要内容主要内容ARM7体系结构体系结构LPC2000系列系列ARM概述概述ARM嵌入式系统概述嵌入式系统概述ARM体系结构体系结构 ARM处理器为处理器为RISC芯片,其简单的结构使得芯片,其简单的结构使得ARM内核内核非常小,功耗也很低。非常小,
7、功耗也很低。RISC体系结构应具有如下特点:体系结构应具有如下特点:采用固定长度的指令格式,便于译码;采用固定长度的指令格式,便于译码;使用单周期指令,便于流水线操作;使用单周期指令,便于流水线操作;使用大量寄存器,数据处理指令只对寄存器操作,不直接操使用大量寄存器,数据处理指令只对寄存器操作,不直接操作存储器;作存储器;简单的寻址模式;简单的寻址模式;在一条数据处理指令中,同时完成逻辑处理和位移处理两个在一条数据处理指令中,同时完成逻辑处理和位移处理两个功能,实现功能,实现ALU和移位寄存器的最大利用;和移位寄存器的最大利用;所有的指令都可以根据前面的执行结构决定是否被执行,提所有的指令都可
8、以根据前面的执行结构决定是否被执行,提高指令的执行效率;高指令的执行效率;在循环处理中使用地址的自动增减,提高运行效率。在循环处理中使用地址的自动增减,提高运行效率。各各ARM体系结构版本体系结构版本为清楚表达各为清楚表达各ARM体系结构使用的指令集,体系结构使用的指令集,ARM公司定义了公司定义了5种主要的种主要的ARM指令集体指令集体系版本,即系版本,即V1V5。各版本号有着巨大的改进和完善,并仍在各版本号有着巨大的改进和完善,并仍在改进中。改进中。ARM处理器核简介处理器核简介ARM公司开发的很多系列的处理器内核,公司开发的很多系列的处理器内核,基于各种内核的处理器都有各自的特点和基于各
9、种内核的处理器都有各自的特点和应用领域。目前使用比较广泛的系列是:应用领域。目前使用比较广泛的系列是:ARM7ARM9ARM9EARM10SecurCoreIntel的的XscaleARM处理器核简介处理器核简介ARM7ARM7系列微处理器包括四种类型内核:系列微处理器包括四种类型内核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ-S。ARM7TDMI(-S)是目前使是目前使用最广泛的用最广泛的32位嵌入式位嵌入式RISC处理器。处理器。T:支持:支持16位压缩指令集位压缩指令集ThumbD:支持片上:支持片上DebugM:内嵌硬件乘法器:内嵌硬件乘法器Multipli
10、erI:嵌入式:嵌入式ICE,支持片上断点调试,支持片上断点调试S:可综合版本:可综合版本ARM7TDMI(-S)ARM7TDMI(-S)基于基于ARM 体系结构体系结构V4 版版本,是目前低端的本,是目前低端的ARM 内核,具有优异的内核,具有优异的性能,功耗很低,使用的门的数量少,因性能,功耗很低,使用的门的数量少,因而应用广泛。而应用广泛。ARM7TDMI(-S)支持支持32 位寻址范围,弥补位寻址范围,弥补了了ARM6 不能在低于不能在低于5V 电压下工作的不足。电压下工作的不足。ARM7TDMI(-S)内核框图内核框图ARM7TDMI(-S)ARM7TDMI(-S)使用使用流水线来提
11、高指令流流水线来提高指令流的速度。的速度。ARM7TDMI(-S)的流水线分为三级:的流水线分为三级:取址取址 译码译码 执行执行。ARMThumbPCPC取指取指PC-4PC-2译码译码PC-8PC-4执行执行周期1周期2周期3周期4周期5周期6取指 译码 执行取指 译码 执行取指 译码 执行取指 译码 执行ARM处理器状态处理器状态为了更好地控制代码量,设计了为了更好地控制代码量,设计了2套指令系统,套指令系统,分别为分别为ARM指令集和指令集和Thumb指令集,指令集,ARM指令集为指令集为32位,位,Thumb指令集为指令集为16位。位。ARM指令集具完整功能,指令集具完整功能,Thu
12、mb功能上可功能上可看做看做ARM指令集的子集,具有很高的代码密指令集的子集,具有很高的代码密度度ARM状态状态(默认默认):执行字方式的:执行字方式的ARM指令。指令。Thumb状态:执行半字方式的状态:执行半字方式的Thumb指令。指令。ARM处理器状态处理器状态ARM指令集和指令集和Thumb指令集不能同时有效指令集不能同时有效ARM状态下要使用状态下要使用Thumb指令必须进行状指令必须进行状态切换,反之亦然。态切换,反之亦然。当前程序状态寄存器当前程序状态寄存器CPSR中的控制位中的控制位T反映处理器的当前状态反映处理器的当前状态T=0表示表示ARM状态;状态;T=1表示表示Thum
13、b状态。状态。l处理器状态的切换并不影响处理器的模式和处理器状态的切换并不影响处理器的模式和寄存器的内容寄存器的内容ARM处理器状态处理器状态BX指令控制程序跳转的同时进行状态切换。指令控制程序跳转的同时进行状态切换。使用使用BX指令进行状态切换后,流水线中的指令进行状态切换后,流水线中的取指和译码指令会被清除,避免出现处理取指和译码指令会被清除,避免出现处理器错误。器错误。BX指令这种清空流水线的功能使得处理器指令这种清空流水线的功能使得处理器状态间的切换是安全的。使用状态间的切换是安全的。使用MSR(写状态写状态寄存器寄存器)直接修改直接修改CPSR的的T位的做法是不安位的做法是不安全的。
14、全的。ARM处理器模式处理器模式ARM处理器共支持处理器共支持7种处理器模式,并以当前程种处理器模式,并以当前程序状态寄存器序状态寄存器CPSR中的控制位中的控制位M4:0反映处理器反映处理器正在操作的模式。正在操作的模式。处理器模式处理器模式说明说明用户用户(usr)正常工作模式,不能直接切换到其他模式正常工作模式,不能直接切换到其他模式特特权权模模式式系统系统(sys)与用户模式相似,但能直接切换到其他模式与用户模式相似,但能直接切换到其他模式异异常常模模式式管理管理(svc)只有在系统复位和软件中断响应时才进入此模式只有在系统复位和软件中断响应时才进入此模式中止中止(abt)在在ARM7
15、内核中无效内核中无效未定义未定义(und)只有在未定义指令异常响应时才进入此模式只有在未定义指令异常响应时才进入此模式中断中断(irq)只有在只有在IRQ异常响应时才进入此模式异常响应时才进入此模式快速中断快速中断(fiq)只有在只有在FIQ异常响应时才进入此模式异常响应时才进入此模式ARM处理器模式处理器模式只有特权模式下才能对当前程序状态寄存器只有特权模式下才能对当前程序状态寄存器CPSR的所有控制位直接进行读的所有控制位直接进行读/写访问,而在非特权模写访问,而在非特权模式下只允许对式下只允许对CPSR的控制位进行间接访问。的控制位进行间接访问。进入异常模式时,处理器总是切换到进入异常模
16、式时,处理器总是切换到ARM状态,状态,而非而非Thumb状态。状态。处理器复位后进入管理模式,操作系统内核通常处理器复位后进入管理模式,操作系统内核通常处于管理模式。处于管理模式。用户模式是正常运行的工作模式,系统模式具有用户模式是正常运行的工作模式,系统模式具有与用户模式完全相同的寄存器,但系统模式是特与用户模式完全相同的寄存器,但系统模式是特权模式,可以访问所有的系统资源,主要提供给权模式,可以访问所有的系统资源,主要提供给操作系统的任务使用。操作系统的任务使用。ARM处理器内部寄存器处理器内部寄存器ARM7DMI内部有内部有37个用户可访问的个用户可访问的32位寄位寄存器,其中存器,其
17、中6个个32位宽的状态寄存器目前只位宽的状态寄存器目前只使用了其中的使用了其中的12位。位。31个通用寄存器个通用寄存器6个状态寄存器个状态寄存器在不同的工作模式下,程序员可以访问的在不同的工作模式下,程序员可以访问的寄存器不完全相同。寄存器不完全相同。ARM处理器内部寄存器处理器内部寄存器当前程序状态当前程序状态寄存器寄存器CPSRARM内核通过内核通过CPSR来监视和控制内部操作,每来监视和控制内部操作,每种异常模式都有一个对应的程序状态保存寄存器种异常模式都有一个对应的程序状态保存寄存器SPSR,用于保存任务在异常发生之前的,用于保存任务在异常发生之前的CPSR的的内容。内容。CPSR包
18、括:包括:4个条件代码标识个条件代码标识(负标识负标识N、零标识、零标识Z、进位标识、进位标识C和溢出标识和溢出标识V)2个中断禁止位个中断禁止位(IRQ禁止与禁止与FIQ禁止禁止)5个当前处理器模式编码位个当前处理器模式编码位(M4:0)1个用于指示当前执行指令状态的位个用于指示当前执行指令状态的位(ARM或或Thumb)当前程序状态当前程序状态寄存器寄存器CPSRN Z C V IF T M4 M3 M2 M1 M0控制位控制位保留位保留位标识位标识位N、Z、C、V是条件代码标识位,可以通过算术和逻辑操是条件代码标识位,可以通过算术和逻辑操作来设置这些位,作来设置这些位,ARM处理器对这些
19、位进行测试以决定处理器对这些位进行测试以决定是否执行一条指令,实现条件执行。是否执行一条指令,实现条件执行。N 负标识,运算结果的最高位,记录标识设置操作的结果负标识,运算结果的最高位,记录标识设置操作的结果Z 零标识,如果标识设置操作的结果为零标识,如果标识设置操作的结果为0,置位,置位C 进位标识,记录无符号加法溢出,减法借位进位标识,记录无符号加法溢出,减法借位V 溢出标识,记录标识设置操作的有符号溢出溢出标识,记录标识设置操作的有符号溢出当前程序状态当前程序状态寄存器寄存器CPSRCPSR的低八位为控制位,分别是:的低八位为控制位,分别是:中断禁止中断禁止I和和F处理器状态位处理器状态
20、位T处理器模式位处理器模式位M4M0发生异常时,控制位改变。当处理器在一发生异常时,控制位改变。当处理器在一个特权模式下操作时,可用软件操作这些个特权模式下操作时,可用软件操作这些位。位。异常向量表异常向量表地址地址异常异常进入时的进入时的模式模式IF0 x00000000复位复位管理管理禁止禁止 禁止禁止0 x00000004未定义指令未定义指令 未定义未定义IF0 x00000008软件中断软件中断管理管理禁止禁止 F0 x0000000C中止中止(预取预取)中止中止IF0 x00000010中止中止(数据数据)中止中止IF0 x00000014保留保留保留保留0 x00000018IRQ
21、中断中断禁止禁止 F0 x0000001CFIQ快速中断快速中断禁止禁止 禁止禁止异常优先级异常优先级优先级优先级异常异常最高最高最低最低1复位复位2数据中止数据中止3FIQ4IRQ5预取指中止预取指中止6未定义指令未定义指令6软件中断软件中断SWI进入异常进入异常保存返回地址到保存返回地址到LR保存保存CPSR的当前值到相应异常模式下的的当前值到相应异常模式下的SPSR设置设置CPSR为相应的异常模式,禁止相应中为相应的异常模式,禁止相应中断控制位,防止不受控制的中断嵌套断控制位,防止不受控制的中断嵌套设置设置PC为相应异常处理程序的中断入口向为相应异常处理程序的中断入口向量地址量地址退出异
22、常退出异常用用LR中的值减去偏移量再恢复中的值减去偏移量再恢复PC用用SPSR恢复恢复CPSR在入口处置位的中断禁止控制位清零在入口处置位的中断禁止控制位清零复位异常复位异常nRESET信号被拉低时,信号被拉低时,ARM处理器放弃处理器放弃正在执行的指令;正在执行的指令;nRESET信号恢复高电信号恢复高电平时,平时,ARM处理器执行以下操作:处理器执行以下操作:强制进入管理模式强制进入管理模式禁止禁止IRQ和和FIQ进入进入ARM状态状态强制强制PC从从0 x0000 0000开始执行开始执行复位后,除复位后,除PC和和CPSR之外的所有寄存器的之外的所有寄存器的值都是随机的。值都是随机的。
23、中断请求异常中断请求异常IRQIRQ中断异常发生时,内核自动做如下处理:中断异常发生时,内核自动做如下处理:将返回地址保存到将返回地址保存到R14_irq中中将将CPSR保存到保存到SPSR_irq中中禁止新的禁止新的IRQ中断,进入中断,进入ARM状态,进入状态,进入IRQ异常模式异常模式强制强制PC执行执行0 x0000 0018地址的指令地址的指令如果需要嵌套如果需要嵌套IRQ中断,那么必须在中断服务中断,那么必须在中断服务程序中重新使能程序中重新使能IRQ中断。中断。FIQ快速中断异常快速中断异常CPSR的的F位被清零时,可以发生位被清零时,可以发生FIQ异常。异常。FIQ是优先级最高
24、的中断,进入该中断后会是优先级最高的中断,进入该中断后会同时禁止任何外部中断源再次发生中断,同时禁止任何外部中断源再次发生中断,除非在软件中重新使能除非在软件中重新使能FIQ和和IRQ。FIQ有有8个专用寄存器,使得进入个专用寄存器,使得进入FIQ时不时不用压栈,以提高响应速度。用压栈,以提高响应速度。FIQ入口地址在向量表顶部,可以不需要跳入口地址在向量表顶部,可以不需要跳转,直接放置中断服务程序。转,直接放置中断服务程序。未定义指令异常未定义指令异常当当ARM处理器遇到一条自己和系统内任何处理器遇到一条自己和系统内任何协处理器都无法执行的指令时,发生未定协处理器都无法执行的指令时,发生未定
25、义指令异常。义指令异常。软件可以使用这一机制通过仿真未定义的软件可以使用这一机制通过仿真未定义的协处理器指令来扩展协处理器指令来扩展ARM指令集。指令集。中止异常中止异常中止表示当前对存储器的访问不能被完中止表示当前对存储器的访问不能被完成。成。中止有两种类型:预取指中止和数据中中止有两种类型:预取指中止和数据中止。止。SWI软件中断异常软件中断异常由于系统正常工作是在用户模式下进行的,由于系统正常工作是在用户模式下进行的,如果需要切换到特权模式就必须使用软件如果需要切换到特权模式就必须使用软件中断切换到管理模式。中断切换到管理模式。该异常由执行指令该异常由执行指令SWI产生,用于用户模式产生
26、,用于用户模式下的程序调用特权操作指令。下的程序调用特权操作指令。ARM体系的存储系统体系的存储系统ARM处理器采用冯诺依曼结构,指令和数处理器采用冯诺依曼结构,指令和数据共用一条据共用一条32位数据总线。位数据总线。ARM存储器可存储器可以看做一个从以看做一个从0开始的线性递增字节集合:开始的线性递增字节集合:字节字节03保存第保存第1个存储的字个存储的字字节字节47保存第保存第2个存储的字个存储的字字节字节811保存第保存第3个存储的字个存储的字ARM处理器可以将存储器中的字以下列格处理器可以将存储器中的字以下列格式存储:大端式存储:大端(Big-endian)小端小端(Little-en
27、dian)。存储器格式存储器格式位于地址位于地址A的字包含的字节位于地址的字包含的字节位于地址A、A+1、A+2、A+3位于地址位于地址A的半字包含的字节位于地址的半字包含的字节位于地址A、A+1位于地址位于地址A+2的半字包含的字节位于地址的半字包含的字节位于地址A+2、A+3位于地址位于地址A的字包含的半字位于地址的字包含的半字位于地址A、A+2LPC2000系列系列ARM指定为小端指定为小端Little31-2423-1615-87-0字地址高地高地址址低地低地址址11109887654432100Big31-2423-16 15-8 7-0字地址高地高地址址低地低地址址89101184
28、567401230第一讲第一讲 主要内容主要内容ARM7体系结构体系结构LPC2000系列系列ARM概述概述ARM嵌入式系统概述嵌入式系统概述LPC2000系列系列ARM概述概述LPC2000系列系列ARM是基于一个支持实时仿真和跟是基于一个支持实时仿真和跟踪的踪的32位位ARM7TDMI-S的微控制器,芯片内集成的微控制器,芯片内集成丰富的外设,功耗却很低。丰富的外设,功耗却很低。具有具有64/144引脚封装。引脚封装。片内片内SRAM及及FLASH使单片运行成为可能。使单片运行成为可能。外扩大容量存储器。外扩大容量存储器。片内片内PLL可实现可实现60MHz操作频率。操作频率。片内片内Bo
29、ot装载程序实现在系统编程装载程序实现在系统编程(ISP)和在应用和在应用编程编程(IAP)。LPC2000系列系列ARM概述概述4/8路路10位位A/D转换器,转换时间低至转换器,转换时间低至2.44ms2个个32位定时器、位定时器、PWM单元、实时时钟和单元、实时时钟和看门狗。看门狗。多个串行接口:多个串行接口:UART、I2C和和SPI。向量中断控制器。向量中断控制器。2个低功耗模式:空闲和掉电。个低功耗模式:空闲和掉电。可个别使能可个别使能/禁止外部功能来优化功耗。禁止外部功能来优化功耗。双电压:内核双电压:内核1.8V、I/O操作操作3.3V。LPC2000系列系列ARM概述概述不同
30、芯片内部存储器容量不同芯片内部存储器容量对片内对片内Flash编程的编程的3种方法种方法使用使用JTAG仿真器,通过芯片的仿真器,通过芯片的JTAG接口接口下载程序。下载程序。使用在系统编程技术使用在系统编程技术(ISP),通过,通过UART0接接口下载程序。口下载程序。使用在应用编程技术使用在应用编程技术(IAP),可以实现用户,可以实现用户程序运行时对程序运行时对FLASH进行擦除或编程。进行擦除或编程。对片内外存储器的操作对片内外存储器的操作对于对于SRAM,不管是片内片外,都可直接进,不管是片内片外,都可直接进行读写操作。行读写操作。对于片内对于片内FLASH,可以直接读取数据,可,可
31、以直接读取数据,可使用使用ISP或或IAP进行擦除和编程。进行擦除和编程。对于片外对于片外FLASH,可以直接读取数据,但,可以直接读取数据,但是写操作时必须进行时序控制。是写操作时必须进行时序控制。存储器映射存储器映射LPC2000绝大部分存储器单元的地址是在绝大部分存储器单元的地址是在芯片设计生产时就确定的,用户无法修改。芯片设计生产时就确定的,用户无法修改。ARM芯片对芯片对AHB外设、外设、VPB外设、片内及外设、片内及片外存储器进行统一编址。片外存储器进行统一编址。AHB和和VPBAHB和和VPB外设区域都为外设区域都为2MB,每个外设,每个外设空间都为空间都为16KB,各自分配最多
32、,各自分配最多128个外设。个外设。AHB外设挂接在芯片内部外设挂接在芯片内部AHB总线上,具总线上,具有较高的速度。有较高的速度。VPB外设挂接在芯片内部外设挂接在芯片内部VPB总线上,速总线上,速度相对较低。度相对较低。预取指中止和数据中止异常预取指中止和数据中止异常如果试图访问一个保留地址或未分配区域如果试图访问一个保留地址或未分配区域的地址,的地址,LPC2000系列系列ARM将产生预取指将产生预取指中止或数据中止异常。中止或数据中止异常。存储器映射模式存储器映射模式模式模式激活激活说明说明Boot Block模式模式由任何复位硬件激活由任何复位硬件激活Boot Block异常向量映射
33、到异常向量映射到存储器底部存储器底部用户片内用户片内FLASH模式模式由由Boot代码软件激活代码软件激活不需要重映射不需要重映射用户片内用户片内RAM模式模式由用户程序激活由用户程序激活由用户程序激活,异常向量由用户程序激活,异常向量表从静态表从静态RAM底部重映射底部重映射用户外部存用户外部存储器模式储器模式复位时复位时BOOT【1:0】不为不为11时激活时激活中断向量从外部存储器的底中断向量从外部存储器的底部重映射部重映射MEMMAP寄存器描述寄存器描述位位位名称位名称描述描述复位值复位值1:0 MAP1:000:BOOT装载程序模式装载程序模式01:用户用户FLASH模式模式10:用户
34、用户RAM模式模式11:用户外部存储器模式用户外部存储器模式07:2保留保留NA存储器重映射存储器重映射定义定义:为存储器分配地址的过程称为映射,:为存储器分配地址的过程称为映射,为了增加系统的灵活性,系统中部分存储为了增加系统的灵活性,系统中部分存储单元可以同时出现在不同的地址上,即存单元可以同时出现在不同的地址上,即存储器的重映射。重映射通过存储器管理部储器的重映射。重映射通过存储器管理部件实现。件实现。注意注意:存储器重映射并不是对重映射单元:存储器重映射并不是对重映射单元的内容进行了复制,只是将多个地址指向的内容进行了复制,只是将多个地址指向了同一存储单元。了同一存储单元。举例举例:L
35、PC2000系列处理器中系列处理器中Boot Block和和异常向量表进行了重映射。异常向量表进行了重映射。Boot BlockBoot Block是芯片设计厂商在是芯片设计厂商在LPC2000系列系列ARM内部固化的一段代码,用户无法对其内部固化的一段代码,用户无法对其修改或删除。修改或删除。Boot Block在芯片复位后被首先运行。在芯片复位后被首先运行。LPC2200系列芯片的系列芯片的Boot Block为为8KB,有,有的芯片中的芯片中 Boot Block占用了用户占用了用户FLASH空空间。间。Boot Block存在于存在于FLASH的顶部。的顶部。没有片内没有片内FLASH
36、的芯片也存在的芯片也存在Boot Block。Boot Block的重映射的重映射Boot Block有些程序是可以被用户调用的,有些程序是可以被用户调用的,为了增加用户代码的可移植性,所以最好为了增加用户代码的可移植性,所以最好能把能把Boot Block代码固定在某个地址上。由代码固定在某个地址上。由于各芯片片内于各芯片片内FLASH大小不同,所以将大小不同,所以将Boot Block重映射到接近重映射到接近2GB的地方,这样的地方,这样无论片内无论片内FLASH地址如何变化,地址如何变化,Boot Block地址是不变的。地址是不变的。异常向量表异常向量表地址地址异常异常0 x0000
37、0000复位复位0 x0000 0004未定义指令未定义指令0 x0000 0008软件中断软件中断0 x0000 000C预取指中止预取指中止0 x0000 0010数据中止数据中止0 x0000 0014保留保留0 x0000 0018IRQ0 x0000 001CFIQ异常向量表及其重映射异常向量表及其重映射ARM内核发生异常后,会使程序跳转到位内核发生异常后,会使程序跳转到位于于0 x000000000 x0000001C的异常向量表处,的异常向量表处,再经过向量表跳转到异常服务程序。再经过向量表跳转到异常服务程序。Boot Block、FLASH、SRAM、外部存储、外部存储器中的中
38、断向量重映射到器中的中断向量重映射到0 x000000000 x0000001C地址上。地址上。Boot Block的功能的功能不同芯片的不同芯片的Boot Block不尽相同,以不尽相同,以LPC2200系列系列ARM为例:为例:判断运行哪个存储器上的程序。判断运行哪个存储器上的程序。用户代码是否有效,无效时进入用户代码是否有效,无效时进入ISP状态。状态。判断芯片是否加密。判断芯片是否加密。IAPISPMAM存储器加速模块存储器加速模块当系统时钟工作在当系统时钟工作在60MHz时,一条指令的时,一条指令的执行时间只需十几执行时间只需十几ns,而,而Flash的读取速度的读取速度大于大于50
39、ns。LPC2000扩展内部扩展内部Flash部件的总线到部件的总线到128位,位,即可以一次取指即可以一次取指4条条ARM指令。指令。MAM可以将需要的下一个可以将需要的下一个ARM指令锁存,指令锁存,以防止以防止CPU取指被暂停。取指被暂停。MAM存储器加速模块存储器加速模块MAM存储器加速模块存储器加速模块加速级别加速级别 功耗功耗可预测性可预测性关闭关闭低低高高部分使能部分使能 中中中中完全使能完全使能 高高低低关闭:无指令预取指,所有的存储器请求都会关闭:无指令预取指,所有的存储器请求都会导致导致Flash的读操作。的读操作。部分使能:部分使能:CPU顺序执行所需要的代码由缓冲顺序执
40、行所需要的代码由缓冲区提供,但是分支后需要对区提供,但是分支后需要对Flash进行读操作。进行读操作。完全使能:完全使能:CPU需要的任何代码和数据都会尝需要的任何代码和数据都会尝试从缓冲区获取。试从缓冲区获取。外部存储器控制块外部存储器控制块EMC支持静态存储器部件;支持静态存储器部件;4个存储器组可单独配置,每个组可访问个存储器组可单独配置,每个组可访问16MB空间;空间;可扩展可扩展8、16或或32位数据总线,但是同组数位数据总线,但是同组数据总线宽度必须一致;据总线宽度必须一致;支持字节定位读取。支持字节定位读取。外部存储器控制块外部存储器控制块EMC存储器或存储器或外部外部I/O部件
41、部件存储器或存储器或外部外部I/O部件部件存储器或存储器或外部外部I/O部件部件存储器或存储器或外部外部I/O部件部件 Bank0EMC Bank1 Bank2 Bank3ARM7TDMI-SAHB外部存储器控制块外部存储器控制块EMCBank地址范围地址范围00 x8000 0000 0 x80FF FFFF10 x8100 0000 0 x81FF FFFF20 x8200 0000 0 x82FF FFFF30 x8300 0000 0 x83FF FFFFBOOT【1:0】的引导控制的引导控制P2.27/D27/BOOT1P2.26/D26/BOOT0引导方式引导方式00CS0控制的控制的8位存储器位存储器01CS0控制的控制的16位存储器位存储器10CS0控制的控制的32位存储器位存储器11内部内部FLASH存储器存储器其他系统控制模块其他系统控制模块部件部件功能功能晶体振荡器晶体振荡器通过外接晶振或时钟源为系统提供时钟通过外接晶振或时钟源为系统提供时钟PLL将时钟倍频到一个更高的时钟频率将时钟倍频到一个更高的时钟频率VPB分频器分频器将内核时钟与外设时钟分开将内核时钟与外设时钟分开功率控制功率控制使处理器空闲或掉电,或关闭指定部件使处理器空闲或掉电,或关闭指定部件唤醒定时器唤醒定时器系统上电或掉电唤醒后,保证稳定时钟系统上电或掉电唤醒后,保证稳定时钟thanks
限制150内