|
我在对Nor flash进行擦时
最后擦除完成或者对字编程操作完成后,进行校验的函数如下:
bool SST39VF320X::Check_Toggle_Ready (U32 Dst, U32 MaxCycles)
{
U16 CurrData, PreData;
U32 TimeOut = 0;
PreData = *(U16 *) (BaseAddres + Dst * AddrsShift); // read data
PreData = PreData & 0x0040; // get DQ6
while (TimeOut < MaxCycles) // check if time-out
{
CurrData = *(U16 *) (BaseAddres + Dst * AddrsShift); // read again
CurrData = CurrData & 0x0040; // retrieve bit DQ6
if (PreData == CurrData)
{
DelayUs(4); // delay 1us for bus recovery
return TRUE; // return true if DQ6 stops toggling.
}
PreData = CurrData;
TimeOut++;
}
return FALSE; // timeout error
}
当在进行延时的时候,如果延时操作是1us,或者小些的延时,写入操作就会出现断断续续的写,比如我要写;1.2.3.4.5,结果写出来的结果是:1. .3. .5
如果延时大些,比如四或者五微秒,就会出现程序跑飞的现象,这是为什么呢!!这个延时和什么有关呢??
请教高手:
|
|