mini2440板上nor flash开始烧写是正常的,但后来烧入光盘上images\2440ucos2_N35.bin 后就出现flash id不匹配的故障,此后就再也不能正常烧写了,但用ads的AXD调试程序是正常的。
我想这应该是一个软件问题,是SST39VF1601中数据紊乱所致,所以想通过AXD调试程序时,用自编程序将nor flash整片擦除来解决问题。程序如下:
static void Erase_Entire_Chip (void)
{
#define mywr(addr, x) *((volatile U16 *)((addr)<<1)) = (U16)(x)
mywr(0x00005555, 0xAAAA);
mywr(0x00002AAA, 0x5555);
mywr(0x00005555, 0x8080);
mywr(0x00005555, 0xAAAA);
mywr(0x00002AAA, 0x5555);
mywr(0x00005555, 0x1010);
dely(10000);
}
main ()
{
....
Erase_Entire_Chip();
....
}
实际运行后,发现nor flash并没有被擦除。
哪位高人能解答一下,以上方法是否可行?如果可行以上细节有什么问题?