《系列ARM硬件结构.ppt》由会员分享,可在线阅读,更多相关《系列ARM硬件结构.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5章 LPC2000系列ARM硬件结构第5章 目录q1.简介q2.引脚配置q3.存储器寻址q4.系统控制模块q5.存储器加速模块q6.外部存储器控制器q7.引脚连接模块q8.向量中断控制器q9.GPIOq10.UART0q11.UART1q12.I2C接口q13.SPI接口q14.定时器0/1q15.脉宽调制器(PWM)q16.A/D转换器q17.实时时钟q18.看门狗5.4 系统控制模块目录复位存储器映射控制复位复位的分类外部复位看门狗复位1.在芯片未上电时,芯片振荡器没有工作;复位UX1tLPC2xxxnRESET电源输入X1X2外部复位复位振荡器稳定需要一段时间UX1tLPC2xxxn
2、RESET电源输入X1X2外部复位2.芯片上电后,晶体振荡器开始振荡。因为振荡从开始到稳定需要一过程,所以外部复位信号至少要保持10ms;=10ms=300ns复位UX1t此时振荡器稳定工作外部复位LPC2xxxnRESET电源输入X1X23.在晶体振荡器保持稳定振荡,或者使用有源钟振时,外部复位信号可以缩短到不小于300ns;复位复位后的系统状态FlashSRAMBoot BlockAHB&VPB0 x000000000 xFFFFFFFF0 x400000000 x80000000地址空间1.复位后用户见到的存储器分布2.BootBlock中的异常向量表重新映射复位复位后的系统状态Flas
3、hSRAMBoot BlockAHB&VPB0 x000000000 xFFFFFFFF0 x400000000 x80000000地址空间复位异常入口未定义异常入口软件中断入口.0 x000000000 x000000040 x000000080 x00000040PC指向3.PC指向0 x0000地址处,CPU执行复位后的第一条指令复位复位后的系统状态FlashSRAMBoot BlockAHB&VPB0 x000000000 xFFFFFFFF0 x400000000 x80000000地址空间复位异常入口未定义异常入口软件中断入口.0 x000000040 x000000080 x00
4、0000404.通过跳转指令,程序跳入Boot Block,执行Boot程序。复位复位后的系统状态PC指向FlashSRAMBoot BlockAHB&VPB0 x000000000 xFFFFFFFF0 x400000000 x80000000地址空间复位异常入口未定义异常入口软件中断入口.0 x000000040 x000000080 x00000040Boot程序工作流程LPC2114/2124复位运行ISP服务程序看门狗复位根据硬件(P1.20、P1.26)配置进入ISP状态吗?(P0.14为低)初始化用户代码是否有效执行用户代码(片内Flash:0 x00000000)NYYYNN在
5、此检测特定引脚检测用户代码是否有效?内部Flash中向量表所有数据的32位累加为零Boot程序工作流程LPC2210/2212/2214复位看门狗复位进入ISP模式?(P0.14为低)初始化用户代码是否有效芯片加密允许调试外部引导芯片加密运行ISP服务程序执行外部用户代码(0 x80000000)执行内部用户代码(0 x00000000)NNYYNNNNYYYY在此检测特定引脚检测用户代码是否有效 AREA vectors,CODE,READONLY ENTRYReset LDR PC,ResetAddr LDR PC,UndefinedAddr LDR PC,SWI_Addr LDR PC,
6、PrefetchAddr LDR PC,DataAbortAddr .当发生异常时,程序总是跳转到地址为0 x00000 x003F的对应入口处,在该地址范围内存储有异常向量表。指令未定义中止入口软件中断入口取数据中止入口预取指中止入口复位入口.存储器映射控制的必要性异常向量表 AREA vectors,CODE,READONLY ENTRYReset LDR PC,ResetAddr LDR PC,UndefinedAddr LDR PC,SWI_Addr LDR PC,PrefetchAddr LDR PC,DataAbortAddr .存储器映射控制的必要性复位后用户看见的地址空间Fla
7、shSRAMBootBlockVPB外设AHB外设0 x000000000 xFFFFFFFF0 x400000000 xE00000000 x80000000片外存储器可能存在的程序存储器FlashSRAMBootBlock片外存储器异常向量表 AREA vectors,CODE,READONLY ENTRYReset LDR PC,ResetAddr LDR PC,UndefinedAddr LDR PC,SWI_Addr LDR PC,PrefetchAddr LDR PC,DataAbortAddr .FlashSRAMBootBlockVPB外设AHB外设0 x000000000 x
8、FFFFFFFF0 x400000000 xE00000000 x80000000片外存储器异常向量表内部Flash可以来自存储器映射控制的必要性复位后用户看见的地址空间内部SRAM AREA vectors,CODE,READONLY ENTRYReset LDR PC,ResetAddr LDR PC,UndefinedAddr LDR PC,SWI_Addr LDR PC,PrefetchAddr LDR PC,DataAbortAddr .FlashSRAMBootBlockVPB外设AHB外设0 x000000000 xFFFFFFFF0 x400000000 xE00000000
9、x80000000片外存储器异常向量表可以来自存储器映射控制的必要性复位后用户看见的地址空间Boot Block AREA vectors,CODE,READONLY ENTRYReset LDR PC,ResetAddr LDR PC,UndefinedAddr LDR PC,SWI_Addr LDR PC,PrefetchAddr LDR PC,DataAbortAddr .FlashSRAMBootBlockVPB外设AHB外设0 x000000000 xFFFFFFFF0 x400000000 xE00000000 x80000000片外存储器异常向量表可以来自存储器映射控制的必要性复
10、位后用户看见的地址空间外部存储器 AREA vectors,CODE,READONLY ENTRYReset LDR PC,ResetAddr LDR PC,UndefinedAddr LDR PC,SWI_Addr LDR PC,PrefetchAddr LDR PC,DataAbortAddr .FlashSRAMBootBlockVPB外设AHB外设0 x000000000 xFFFFFFFF0 x400000000 xE00000000 x80000000片外存储器异常向量表可以来自存储器映射控制的必要性复位后用户看见的地址空间 为了让运行在不同存储器空间中的程序对异常进行控制。可以通
11、过存储器映射控制,将位于不同存储空间的异常向量表重新映射至固定地址0 x000 x3F处,以实现异常向量表的来源控制。MEMMAP为不同值时,ARM内核发生异常,程序跳转到异常向量表的来源也不相同。MAP1:0映射方式00Boot装载程序模式。异常向量表从Boot Block重新映射。01片内Flash模式。异常向量表不重新映射,它位于Flash中。10片内RAM模式。异常向量表从静态RAM重新映射。11外部存储器模式。异常向量表从外部存储器重新映射。该模式仅适用于LPC2200系列。存储器映射控制存储器映射控制寄存器描述存储器映射控制MEMMAP在芯片复位后被修改的条件判断条件MAP1:0说
12、明微控制器型号片内Flash中用户代码有效01从内部Flash执行用户程序LPC2114/21241.引脚BOOT1:0不全为高电平2.芯片没有加密11从外部Flash执行程序LPC2210/2212/22141.引脚BOOT1:0全为高电平2.片内Flash中用户代码有效01从内部Flash执行程序2212/2214Boot程序对MEMMAP的影响LPC2114/2124进入ISP状态吗?(P0.14为低)复位运行ISP服务程序看门狗复位根据硬件(P1.20、P1.26)配置初始化用户代码是否有效执行用户代码(片内Flash:0 x00000000)NYYYNN在此检测特定引脚检测用户代码是
13、否有效复位后MEMMAP00其它情况下MEMMAP00用户代码有效且P0.14为高电平MEMMAP01复位运行ISP服务程序执行用户代码(片内Flash:0 x00000000)Boot程序对MEMMAP的影响LPC2210/2212/2214复位看门狗复位进入ISP模式?(P0.14为低)初始化用户代码是否有效芯片加密允许调试外部引导芯片加密运行ISP服务程序执行外部用户代码(0 x80000000)执行内部用户代码(0 x00000000)NNYYNNNNYYYY在此检测特定引脚检测用户代码是否有效复位复位后MEMMAP00其它情况下MEMMAP00BOOT引脚全为高且用户代码有效MEMM
14、AP01运行ISP服务程序执行外部用户代码(0 x80000000)执行内部用户代码(0 x00000000)芯片未加密且BOOT引脚不全为高MEMMAP11内核执行的异常向量表地址范围地址转换器物理存储器的地址空间内核与物理存储器的关系存储器映射控制原理1.内核产生地址2.经过地址转换器3.映射到物理存储器地址存储器映射的流程存储器映射控制原理存储器映射控制存储器映射控制重新映射前后地址转换前内核地址总线值MEMMAP值转换后存储器地址总线值0 x000000000 x0000003F000 x7FFFE0000 x7FFFE03F010 x000000000 x0000003F100 x4
15、00000000 x4000003F110 x800000000 x8000003F0 x000000400 xFFFFFFFF任意对应不变复位后用户看见的地址空间FlashSRAMBootBlockVPB外设AHB外设0 x000000000 xFFFFFFFF0 x400000000 xE00000000 x80000000片外存储器存储器映射控制存储器映射控制重新映射前后地址0 1MEMMAP1:0=1 00 01 1不重新映射存储器映射控制Remap应用实例中断向量表位于片内RAM 在某些应用中,为了能动态修改异常向量表的内容,需要把异常向量表放在RAM中,并设置存储器映射控制寄存器(MEMMAP)。1.将异常向量表从Flash中复制到内部SRAM的0 x40000000 到0 x4000003F地址处操作流程2.设置MEMMAP值为2存储器映射控制Remap应用实例中断向量表位于片内RAM.cp1=uint32(Vectors);cp2=0 x40000000;for(i=0;i16;i+)*cp2+=*cp1+;MEMMAP=2;.程序代码存储器映射控制Remap应用实例中断向量表位于片内RAM1.将异常向量表从Flash中复制到内部SRAM的0 x40000000 到0 x4000003F地址处操作流程2.设置MEMMAP值为2
限制150内