NandFlash系列之二:S3C2410讀寫Nand Flash分析
三、寫操作過(guò)程
寫操作的過(guò)程為: 1、發(fā)送寫開始指令;2、發(fā)送第1個(gè)cycle地址;3、發(fā)送第2個(gè)cycle地址;4、發(fā)送第3個(gè)cycle地址;5、發(fā)送第4個(gè)cycle地址;6、寫入數(shù)據(jù)至頁(yè)末;7、發(fā)送寫結(jié)束指令
下面通過(guò)分析寫入頁(yè)的代碼,闡述讀寫過(guò)程。
static void WritePage(U32 addr, U8 *buf) //addr表示flash中的第幾頁(yè),即‘flash地址>>9’
{
U32 i;
NFChipEn(); //使能NandFlash
WrNFCmd(PROGCMD0); //發(fā)送寫開始指令’0x80’
WrNFAddr(0); //寫地址的第1個(gè)cycle
WrNFAddr(addr); //寫地址的第2個(gè)cycle
WrNFAddr(addr>>8); //寫地址的第3個(gè)cycle
WrNFAddr(addr>>16); 寫地址的第4個(gè)cycle
WaitNFBusy(); //等待系統(tǒng)不忙
for(i=0; i512; i++)
WrNFDat(buf[i]); //循環(huán)寫入1頁(yè)數(shù)據(jù)
WrNFCmd(PROGCMD1); //發(fā)送寫結(jié)束指令’0x10’
NFChipDs(); //釋放NandFlash
}
四、總結(jié)
本文以S3C2410處理器和k9f1208系統(tǒng)為例講述了nand flash的讀寫過(guò)程。在讀寫過(guò)程中沒(méi)有考慮到壞塊問(wèn)題,有關(guān)ecc及壞塊處理問(wèn)題將在下個(gè)專題中講述。
評(píng)論