flash从M29W320DB换成JS28F320 ,接线方式相同,只有数据线高八位D8~D15 接线反序( flash D8接 dsp D15, flash D9接 dsp D14,......);
驱动按M29W320DB.c改完后烧程序相当慢(几个小时),主要原因是write 数据进flash时SR寄存器SR.7置1很慢(SR.7置1表示flash已经准备好);
程序检测位耗时就是在下面两行
WriteFlash(ulOffset, 0x0070 ); //表示开始读SR寄存器
ReadFlash(ulOffset, &status ); //读不到1,以致一直在这里等待(等待是外围有个for)
怀疑是设置的问题:如下
设置BF518的flash控制器如下:
ERROR_CODE SetupForFlash() /////////////////////////////////
{
ERROR_CODE ErrorCode = NO_ERR;
*pEBIU_AMBCTL0 = 0xFF02FF02;
*pEBIU_AMBCTL1 = 0xFF02FF02;
ssync();
*pEBIU_AMGCTL = 0x00FF;
ssync();
unsigned short portg_mux = *pPORTG_MUX;
portg_mux |= 0x9000;
portg_mux &= 0x9fff;
*pPORTG_MUX = portg_mux;
*pPORTG_FER |= (PG15 | PG11);
return NO_ERR;
}
//===============================
写入word的方法是按照adi提供的(VisualDSP 5.0\Blackfin\lib\src\drivers\flash\PC28F128K )的程序一个样,一个word一个word写入。主要是那个flash的status位反转不过来。