|  | 
| embedsky_lhh 发表于 2012-5-25 21:08  建议你先读下ID,看能否读到,这样可以验证下你的复位及初始化及系统时钟等相关功能是否设置正常,还有我看 ...
谢谢斑竹,最近无法上网-_-!
 问题已经找到了,在读取第一个字节的数据到缓冲区之前,需要等待数据准备好,但是FLASH数据手册上给出的步骤中,没有这一步。NND,坑人啊。代码如下:
 复制代码//页读取
#define NFDATA        (*(volatile unsigned long *) 0x4E000010)
int NFPageRead( unsigned int iBlock, unsigned int iPage, unsigned long *pTargeAddr )
{
        unsigned int i;
        
        DevON();
        
        WriteCmd( READ_1ST );
        WritePageAddress( iBlock,  iPage );
        WriteCmd( READ_2ND );
        WiteForDevReady();                          // ※数据手册上未标明此步!!!
        for( i = 0 ; i < NFPageSize / 4 ; i++ )
        {
                pTargeAddr[i] = NFDATA;        // ※字访问!!!
        }
        
        DevOFF();
        return 0;
}
 | 
 |