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