通电启动时,ROM首先检测CMPA中关于重定位镜像文件的位置和大小,然后检测两个镜像的版本号,所以在使用双镜像机制时,主要对镜像文件重定位和版本号进行配置。
ROM从内部Flash启动双镜像文件流程图如下:
2.1 镜像文件重定位
LPC5536内部Flash支持重映射,当设置重映射偏移量后,Flash AHB 总线将访问偏移后的地址。例如,当偏移量设置为128K(0x20000),对0x0的访问将被重新映射到地址0x20000。通过这个特性,ROM可以实现双镜像引导。下面是一个关于内部Flash存放两个镜像文件的简图。
2.2 配置镜像的版本
在头文件偏移量为0x24处设置镜像版本号,如下表格所示,第16位-31位设置镜像文件版本号,第10位表示镜像文件是否存在版本号,使用双镜像机制时,此位设置为1.
- 配置CMPA中数据值
修改cmpa.bin文件,通过blhost把修改后的bin文件写入CMPA,以配置image1偏移量和重映射大小,流程如下:
a. 打开一个全0的cmpa.bin,修改0x3E23C处数据为0x20000,高位在右低位在左,如下:
b. 修改重映射大小。地址0x3E238处修改为0x1d800,如下:
借助blhsot 工具烧写,blhost 2.6.7是一个命令行调试工具,界面如下:
首先,从设备管理器查看开发板与电脑连接端口号
然后,按下复位键,输入连接测试命令blhost -pcom12 -- get-property 1
判断是否正常通信,如连接成功会提示信息:
通过使用blhost -pcom12 -- write-memory 0x3e200 cmpa_new.bin命令,写入CMPA:
为确保正确写入,查看设置之后CMPA数据
通过命令blhost -pcom12 -- read-memory 0x3e200 512查看设置后的CMPA数据:
根据实验效果,Image0的功能是LPC5536-evk开发板上红灯闪烁,Image1功能是绿灯闪烁。
Image0 设置版本号为1,Image1 设置版本号为2:
打开红灯闪烁的工程,修改头文件偏移量0x24处为0x10400
打开绿灯闪烁的工程,修改头文件偏移量0x24处为0x20400
LPC5536JBD100用户可用的内部Flash共246K,所以Image0 分配到0x0-0x1FFFF地址范围内,Image1分配到0x20000-0x3D7FF地址范围内。如果使用MCUXpresso ID,设置如下:
工程->右键属性->MCU settings,设置起始地址和大小,完成后点击应用按钮。
红灯闪烁工程:
重现编译工程。
3.4 功能测试
测试程序为两个点灯程序,分别为红灯闪烁和绿灯闪烁程序,红灯闪烁为image0,版本号1,绿灯闪烁为image0,版本号2,所以测试结果如果绿灯闪烁,则成功。
-
下载程序
使用IDE中GUI Flash Tool,分别下载两个镜像文件到开发板中:
![bc3e8a66-1b95-11ee-962d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9E/40/wKgaomToBFiAXBPZAAFn0b4IfHQ958.png)
同样的方式下载另外一个程序,注意在烧写第二个程序时,不能勾选“masserase”,如果使用其它工具烧写,也应关闭和”masserase”相同功能的选项,避免擦除第一个镜像文件。
- 测试结果
下载程序后,复位,绿灯闪烁。
升级测试:将红灯闪烁工程版本号修改为3,即修改0x10400为0x30400,重新烧写镜像文件,应该会看到红灯闪烁。
四. 总结
双镜像机制为嵌入式设备的升级和启动增加保险,应用过程中需要注意在CMPA区域设置镜像偏移量、重映射大小和配置镜像版本的方式,同时也需要注意两个工程中Flash配置。
END
更多恩智浦AI-IoT市场和产品信息,邀您同时关注“NXP客栈”微信公众号
![bc84daa2-1b95-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9E/40/wKgaomToBFiAL_wcAABCdkRE230973.jpg)
NXP客栈
恩智浦致力于打造安全的连接和基础设施解决方案,为智慧生活保驾护航。
长按二维码,关注我们
恩智浦MCU加油站
这是由恩智浦官方运营的公众号,着重为您推荐恩智浦MCU的产品信息、开发技巧、教程文档、培训课程等内容。
![bc9b35e0-1b95-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9E/40/wKgaomToBFmAdRRuAAATNlPH08Y814.jpg)
长按二维码,关注我们
原文标题:LPC5536: 双镜像机制使用指南
文章出处:【微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。
-
mcu
+关注
关注
146文章
17370浏览量
352982 -
恩智浦
+关注
关注
14文章
5892浏览量
108507
原文标题:LPC5536: 双镜像机制使用指南
文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
Nexperia SiC MOSFET LTspice模型使用指南
![Nexperia SiC MOSFET LTspice模型<b class='flag-5'>使用指南</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
基于恩智浦LPC5536的光伏MPPT控制方案
![基于恩智浦<b class='flag-5'>LPC5536</b>的光伏MPPT控制方案](https://file1.elecfans.com/web3/M00/07/3C/wKgZPGekDb2ASqIWAAAZ0XrGgFU968.png)
示波器使用指南 如何选择合适的示波器
中短程超声波应用优化和使用指南:TUSS4470和TDC1000
![中短程超声波应用优化和<b class='flag-5'>使用指南</b>:TUSS4470和TDC1000](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
评论