新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 设计基于NXP LPC2000的次级启动加载程序用于代码升级

设计基于NXP LPC2000的次级启动加载程序用于代码升级

作者:时间:2011-03-27来源:电子产品世界收藏

  用户应用程序

本文引用地址:http://www.eepw.com.cn/article/118092.htm

  存储器分布

  用户应用程序存放在和位置不同的的扇区中,并且占用了从0x4000 0000开始的一部分片内SM空间。

  在片内SRAM的最底部,存放了应用程序的中断向量表。要注意在配置系统RW区域时,把这部分空间预留出来,即用户应用程序的RW从0x4000 0040开始。

  中断向量表重映射

  对于ARM7处理器而言,中断向量位于从0x0000 0000到0x0000 001C的地址范围,因此在Boot ROM和SRAM内的一小部分空间必须被映射到这个地址内,使得可以在不同的模式(参考用户手册内存映射章节)下使用中断。

  这一小段空间包括32字节的中断向量以及额外的32字节跳转指令,总共64字节,范围为0x0000 0000到0x0000 003F。

  因为的中断向量表存在于闪存的0x0000 0000到0x0000 003F,因此用户应用程序的中断向量表只能被映射到片内SRAM(对于支持外部总线接口的器件,也可以映射到片外存储器)。在跳转到用户应用程序执行前,要将这64字节的数据复制到片内SRAM的底部(0x4000 0000 – 0x4000 003F),并且将系统的内存映射模式设置为“User RAM Mode”。这样当用户应用程序产生中断时,系统会自动到位于SRAM的中断向量表取中断向量入口,而不是错误地跳转到位于0x0地址处的、属于的中断向量表。

  运行用户应用程序

  更新完成后,修改PC指针,使其指向新的用户程序的起始地址,然后开始执行。

  注意:要保证用户应用程序能运行,必须还要做一些必要的初始化工作,包括RW区域的复制、ZI区域的清零等等,这些没有放在次级启动加载程序里完成,而是在用户应用程序开始运行时首先执行。

  程序(从串口利用XMODEM协议更新代码)上电运行时,串口将会打印出如图4的信息。

  用户可以测试一些IAP命令,或者选择PROG命令更新用户代码,更新完成后,选择RUN命令来执行。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭