微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM学习中LPC2104的Boot与Remap详解

ARM学习中LPC2104的Boot与Remap详解

时间:08-30 来源:互联网 点击:

统复位是内部软复位,CPU下一步将对Flash块中的异常向量表进行加和校验。如果加和检验结果为零,Bootload程序将撤销Bootload子块中异常向量表部分在0x00000000—0x00000003F地址空间上的映射,恢复Flash块的异常向量表在这64字节地址空间上的映射关系(如图3),然后跳转到异常向量表地址0x00000000处转入用户程序的执行。如果加和校验结果不为零,Bootload程序将进行UART0接口的波特率自动侦测,随时响应ISP宿主机的编程请求,执行处理器芯片的ISP编程工作。

  若Bootload没有发现看门狗溢出标志置位,则表明当前的系统复位是外部硬复位,CPU将采样P0.14引脚的外部逻辑电平输入。如果为0,Bootload执行UART0的自动波特率侦测,随时响应ISP宿主机的编程请求;如果为1,Bootload的后续动作将与前面检测到看门狗溢出标志置位的程序执行完全相同。

Remap(可选)

最后这一步可选的Remap动作完全处于用户的控制之下,Remap的对象是片内SRAM存储器块的异常向量部分,共计64字节大小。用户可以编程决定何时Remap、Remap之后是否再修改异常向量表以及如何修改异常向量表等等。需要强调的是,引发Remap动作的指令与建立SRAM块中异常向量的所有功能代码全部驻留在Flash块的用户编程区中,是用户应用软件的一部分。

曾经有网友对Philips在LPC2000系列处理器中引入这个可选的Remap功能提出质疑:LPC2000系列处理器片内的Flash块被分割成了两组,每组都配备了相互独立的128位宽度的读取缓冲,在绝大多数情况下,CPU从Flash块的访问是全速进行的,不存在有等待的状况;另一方面,一般应用LPC2000的嵌入式系统并不需要动态地改变异常向量表。因此,对片内SRAM进行Remap后,并不能提高处理器对异常的响应能力,实际意义不大。

事实上,LPC2000系列处理器引入SRAM的Remap功能对于IAP操作具有重要的意义。相对于其它基于ARM7DMI内核的处理器而言,LPC2000系列处理器有一个独具特色的功能—IAP。在IAP擦除/写入操作时,片上Flash块,包括该块上的异常向量部分,是无法被访问读取的,为了在IAP擦除/写入操作时有效地响应异常,必须在调用IAP擦除/写入操作之前,将SRAM中的异常向量部分提前映射到系统的异常向量表地址空间上。(待续)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top