基于SEP4O20的Linux NandFlash驅動(dòng)設計
3.1 NandFlash讀函數的核心代碼
//讀取數據,長(cháng)度可能為528,512,16;但由于NandFlash的控制器只支持整頁(yè)的讀寫(xiě)和//oob區的讀,而這里發(fā)送的命令是讀取數據,所以要整頁(yè)讀,數據長(cháng)度為528。本文引用地址:http://dyxdggzs.com/article/151948.htm
3.2 NandFlash寫(xiě)函數的核心代碼
由于NandFlash本身只支持整頁(yè)的寫(xiě),而不支持直接對oob區的寫(xiě)操作,而MTD上層需要對oob區進(jìn)行一系列的操作,因此在對oob進(jìn)行操作時(shí)需要先讀取該頁(yè)數據區,并將上層傳送的oob區數據一起組成一整頁(yè),然后才能寫(xiě)入NandFlash。
4 結束語(yǔ)
本文以NandFlash芯片的特點(diǎn)入手,分析了LinuxMTD層架構及優(yōu)點(diǎn),給出了基于SEP4020微處理器的NandFlash驅動(dòng)設計,并利用SEP4020內置的dma技術(shù),提高了對NandFlash的讀寫(xiě)速度。根據實(shí)驗表明,本文實(shí)現的NandFlash驅動(dòng)提供的平均讀寫(xiě)速度穩定在250kB/s,這樣的速度在一般的嵌入式應用中已經(jīng)足夠。
評論