s3c2410的nand flash的驅(qū)動分析-基礎(chǔ)電子_第1頁
s3c2410的nand flash的驅(qū)動分析-基礎(chǔ)電子_第2頁
s3c2410的nand flash的驅(qū)動分析-基礎(chǔ)電子_第3頁
全文預(yù)覽已結(jié)束

付費下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

精品文檔-下載后可編輯s3c2410的nandflash的驅(qū)動分析-基礎(chǔ)電子以前都是把別人寫好的代碼直接拿過來用,而沒有去關(guān)心里面到底怎么實現(xiàn)的,昨晚對照著samsung2410和k9f1208的芯片資料把這些代碼讀了一遍,終于明白了對nandflash的操作一步步是怎么實現(xiàn)的了。以下的這些代碼可以在vivi或者kernel里面找到對一個nandflash的操作,總體上可以分為這么四步:一、SelecttheNANDdevice二、SendcommandtoNANDdevice三、OperATION四、De-selecttheNANDdevice下面是以上四步的實現(xiàn)代碼:一、SelecttheNANDdevice#definenand_select()this-hwcontrol(NAND_CTL_SETNCE);\nand_command(mtd,NAND_CMD_RESET,-1,-1);\udelay(10);hwcontrol(NAND_CTL_SETNCE)的作用是設(shè)置2410的NANDFLASHCONFIGURATION(NFCONF)REGISTER的NANDFlashMemorychipenable位為0,具體請參考samsung2410datasheet。NANDFlashMemorychipenable[11]NANDflashmemorynFCEcontrol0:NANDflashnFCE=L(active)1:NANDflashnFCE=H(inactive)(Afterauto-boot,nFCEwillbeinactive.)nand_command(mtd,NAND_CMD_RESET,-1,-1);看字面意思都知道是resetnanddevice,具體實現(xiàn)請看下面。二、SendcommandtoNANDdevice這步又主要有以下幾個過程1、Begincommandlatchcycle實現(xiàn)代碼:this-hwcontrol(NAND_CTL_SETCLE);//setcommandlatchenablethis-hwcontrol(NAND_CTL_DAT_OUT);//這個我還不清楚2、Writeoutthecommandtothedevice實現(xiàn)代碼:this-write_cmd(command);//writethecommandtoNANDFLASHCOMMANDSET(NFCMD)REGISTER3、SetALEandclearCLEtostartaddrESScycle實現(xiàn)代碼:this-hwcontrol(NAND_CTL_CLRCLE);//clearthecommandlatchenablthis-hwcontrol(NAND_CTL_SETALE);//settheaddresslatchenable4、Seriallyinputaddress實現(xiàn)代碼:this-write_addr(address);//writetheaddresstoNANDFLASHADDRESSSET(NFADDR)REGISTER5、Latchinaddress實現(xiàn)代碼:this-hwcontrol(NAND_CTL_CLRALE);//cleartheaddresslatchenablethis-hwcontrol(NAND_CTL_DAT_IN);//這個我也不清楚6、Pausefor?us實現(xiàn)代碼:udelay(?)//延時,總得給NandFlash一點反應(yīng)時間三//時間視具體NandFlash而定三、Operation主要是往NANDFLASHDATA(NFDATA)REGISTER里面寫或者讀數(shù)據(jù)例如:staticu_charread_data(void){return(u_char)NFDATA;}四、De-selecttheNANDdevice實現(xiàn)代碼:#definenand_deselect()this-hwcontrol(NAND_CTL_CLRNCE);跟selecttheNANDdevice相反,把NANDFLASHCONFIGURATION(NFCONF)REGISTER的NANDFlashMemorychipenable位置1至此,對samsung2410平臺上的NandFlash一個操作完成。以上是偶的個人理解,有啥不正確的地方還請大家指出來,感謝。下面是一個我還沒搞明白的問題,希望看到的朋友能指點下:這段代碼來自mizi_linux\drivers\mtd\nand\smc_s3c2410.cstaticvoidsmc_hwcontrol(intcmd){switch(cmd){caseNAND_CTL_SETNCE:NFCONF=~NFCONF_nFCE_HIGH;break;caseNAND_CTL_CLRNCE:NFCONF|=NFCONF_nFCE_HIGH;break;caseNAND_CTL_SETCLE:break;caseNAND_CTL_CLRCLE:break;caseNAND_CTL_SETALE:break;caseNAND_CTL_CLRALE:break;caseNAND_CTL_DAT_IN:break;ca

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論