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