关于IAP的问题,谢谢
我用的是LPCC2148芯片,程序如下:<br />#define iap_entry(a,b) ((void *)())(0x7ffffff1))(a,b)<br />writeflash(uint32 dst,uint32 src,uint32 number)<br />{<br /> __disable_interrupt();<br /> mamcr=0;<br /> pllcon=0;<br /> pllfeed=0xaa;<br /> pllfeed=0x55;<br /><br /> selectsector(12,12);//对FLASH选择后在进行擦除<br /><br /> ..........<br /><br />}<br />void selectsector(dst,rst)<br />{<br /> paramin=54;<br /> paramin=12;<br /> paramin=12;<br /> <br /> iap_entry(paramin,paramout);<br />}<br />但是当我在计算机上进行simulator的时候,进入iap_entry()函数后就跑飞了,再单步执行后发现执行到:<br />..................<br />80B7D92 0000 LSL R0,R0,#0<br />...................<br /><br />请问各位大侠,这是什么原因啊?是不是对FLASH 的操作必须在仿真板上完成?不能用simulator实现?<br /><br />谢谢各位!<br />IAP的基本原则:不能写自己这一块
因为被写的块肯定不能同时读取,除非有特别的锁定逻辑,否则肯定跑飞<br /><br /><br />所以IAP程序一般要放在其他的FLASH块或RAM上执行IAP程序一般要放在其他的FLASH块或RAM上执行?
IAP程序一般要放在其他的FLASH块或RAM上执行?<br />你的意思是说在IAR软件环境中仿真不能实现对FLASH的操作吗?必须把程序下载到RAM中调试?<br /><br />谢谢你啊<br />我写的FLASH块不是被程序占据
不能软件模拟
iap是调用芯片内的固件来实现的,所以不能用软件模拟,必须在真实的芯片中才行。谢谢 大家啊
我是最近才开始做ARM相关的项目,我现在才明白为什么我在软件中不能仿真了,下一步我就想办法搞块开发板子来仿真了。<br />谢谢啊
页:
[1]