打印

关于IAP的问题,谢谢

[复制链接]
1427|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
goodGstudy|  楼主 | 2008-8-19 20:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
iap, RAM, se, PLL, ST
我用的是LPCC2148芯片,程序如下:
#define iap_entry(a,b)  ((void *)())(0x7ffffff1))(a,b)
writeflash(uint32 dst,uint32 src,uint32 number)
{
   __disable_interrupt();
   mamcr=0;
   pllcon=0;
   pllfeed=0xaa;
   pllfeed=0x55;

  selectsector(12,12);//对FLASH选择后在进行擦除

  ..........

}
void selectsector(dst,rst)
{
   paramin[0]=54;
   paramin[1]=12;
   paramin[2]=12;
   
   iap_entry(paramin,paramout);
}
但是当我在计算机上进行simulator的时候,进入iap_entry()函数后就跑飞了,再单步执行后发现执行到:
..................
80B7D92  0000 LSL  R0,R0,#0
...................

请问各位大侠,这是什么原因啊?是不是对FLASH 的操作必须在仿真板上完成?不能用simulator实现?

谢谢各位!

相关帖子

沙发
xwj| | 2008-8-19 20:45 | 只看该作者

IAP的基本原则:不能写自己这一块

因为被写的块肯定不能同时读取,除非有特别的锁定逻辑,否则肯定跑飞


所以IAP程序一般要放在其他的FLASH块或RAM上执行

使用特权

评论回复
板凳
goodGstudy|  楼主 | 2008-8-19 21:03 | 只看该作者

IAP程序一般要放在其他的FLASH块或RAM上执行?

IAP程序一般要放在其他的FLASH块或RAM上执行?
你的意思是说在IAR软件环境中仿真不能实现对FLASH的操作吗?必须把程序下载到RAM中调试?

谢谢你啊

使用特权

评论回复
地板
goodGstudy|  楼主 | 2008-8-19 21:05 | 只看该作者

我写的FLASH块不是被程序占据

使用特权

评论回复
5
yugen| | 2008-8-22 14:36 | 只看该作者

不能软件模拟

iap是调用芯片内的固件来实现的,所以不能用软件模拟,必须在真实的芯片中才行。

使用特权

评论回复
6
goodGstudy|  楼主 | 2008-8-22 22:08 | 只看该作者

谢谢 大家啊

我是最近才开始做ARM相关的项目,我现在才明白为什么我在软件中不能仿真了,下一步我就想办法搞块开发板子来仿真了。
谢谢啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

37

帖子

0

粉丝