我创建了一个在ram中运行的代码准备测试iap功能。
1、如果我使用jlink工具先片擦除ROM。这是为了确保内部flash都是0xff。然后我在ram中进行仿真发现IAP的入口地址0x1FFF_1FF0处的数据都是0x0000_0000. 这时执行IAP进行flash操作就会出错。
2、如果我先下载一个比如闪灯的代码到flash 0地址开始处。在进行ram仿真,发现IAP的入口地址数据变成了0xbb1af7ff.这时就能使用iap进行flash操作。
请问是什么原因导致0x1fff1fff0 地址的数据出现错误
Hi
我手头没有LPC1778的板子,所以用LPC1788的板子做了个测试。
使用J-Link Commander工具完全擦除LPC1788芯片后,读取0x1FFF1FF0地址的值如下:
如果你手头也有J-Link工具,也可以测试一下(输入下列命令):
usb
device ? (选择NXP LPC1778)
erase all
mem32 0x1fff1ff0 0x10
Segger J-Link Commander 软件可以从这里下载。
Wish it helps.
Have a great day,
Ma Hui
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------