导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→为何访问FLASH ID时程序跑飞[xianray]

 *第24668篇: 为何访问FLASH ID时程序跑飞

  
楼 主:xianray 2004年8月12日10:37
 为何访问FLASH ID时程序跑飞
为何访问FLASH ID时程序跑飞

我使用s3c4510的开发板,板上只有一块SST39SF040(512K×8bits)的FLASH芯片,我想通过C代码访问FLASH ID。但不知为何当我写入三个指令时程序跑飞了,我的代码如下:
#define flash_base 0x0
void read_id()
{

  unsigned long ulManuID;
  unsigned long ulDeviceID;
  
 *((volatile unsigned short *)(0x5555 + flash_base  )) = 0x0aa;
 *((volatile unsigned short *)(0x2aaa + flash_base  )) = 0x055;
 *((volatile unsigned short *)(0x5555 + flash_base  )) = 0x90;

 SSTSF040_Delay();
 
 /*ulManuID is a value of the manufactory, ulDeviceID is a ID of the device */ 
 ulManuID = *(volatile unsigned short *)(0 + flash_base  );
 ulDeviceID = *(volatile unsigned short *)(1 + flash_base );
 
 *(volatile unsigned short *)(0x5555 + flash_base  ) = 0x0AA;
 *(volatile unsigned short *)(0x2aaa + flash_base  ) = 0x055;
 *(volatile unsigned short *)(0x5555 + flash_base  ) = 0x0F0;

 SSTSF040_Delay();

}

我用ICE单步执行以上指令,当程序执行到指令(*((volatile unsigned short *)(0x5555 + flash_base  )) = 0x0aa;)时程序跑飞,并且MCPU进入Abt状态。请各位有认之士告之当中原因,如何解决,小弟在这里谢谢啦。

  
2楼:gumor 2004年8月14日20:24
 我也有同样的问题,我估计是因为写FLAS
我也有同样的问题,我估计是因为写FLASH的代码本身就在FLASH中的缘故,周一计划用逻辑分析仪分析一下,在与你探讨。
你的写FLASH的代码本身在FLASH中吗?如果在,估计是由于写指令后150us后,FLASH会启动编程锁定功能,如果再去读指令(取代码),则程序肯定飞。
以上是我分析的结果,望能与你共享这个问题的结果。

>>>>>>对该主题发表你的看法

本主题贴数2,分页: [第1页]


[上一篇主题]:转让MICETEK EASYPROBE 8052F plus仿真器

[下一篇主题]:各位大虾,急求SAA3010D的解码程序!