根據(jù)韋東山修改的mini2440 nand flash裸機(jī)程序
知識(shí)點(diǎn)梳理
nand flash的頁(yè)讀取函數(shù)原型是void nf_readpage(unsigned int block,unsigned int page,unsigned char *dstaddr),它的功能是從nand flash的第block塊的第page頁(yè)讀取1頁(yè)(對(duì)于K9F2G來(lái)說(shuō),1頁(yè)等于2KB)的內(nèi)容,存放到指針dstaddr所指的地址處。有的人可能就會(huì)說(shuō)了,既然nf_readpage可以讀取1頁(yè)的數(shù)據(jù)到指定的地址處,而sdram的地址是0x30000000,那直接可以使用它將nand flash的代碼復(fù)制到sdram去啊,答案當(dāng)然是可以?。〉怯袀€(gè)前提,復(fù)制到sdram的內(nèi)容必須在2KB以內(nèi),一旦超過(guò)了2KB,那就需要借用RdNF2SDRAM()函數(shù)了,相信這樣解釋就能明白這兩個(gè)函數(shù)的區(qū)別于聯(lián)系了。
再說(shuō)說(shuō)絕對(duì)地址與相對(duì)地址,首先知道k9f2g有2048個(gè)塊,每個(gè)塊有64個(gè)頁(yè),每頁(yè)有2K字節(jié)。我們平常所說(shuō)的第幾塊第幾頁(yè)就是相對(duì)地址,比如第2塊第3頁(yè)是相對(duì)地址。而絕對(duì)地址=塊號(hào)*64+頁(yè)號(hào),例如前邊的第2塊第3頁(yè)換成絕對(duì)地址就是131(131=2*64+3)。
下面解釋一下RdNF2SDRAM()函數(shù):
113行:從117行可以看出,這里的i指的是相對(duì)地址
114行:在nand flash內(nèi)的起始地址,這里的4096表示的是字節(jié),k9f2g內(nèi)存大小是256Mbyte,這里之所以令start_addr=4096,是因?yàn)樵蹅冊(cè)趎and.lds文件中,將main.c文件的地址定義在了4096處。如下圖:
如果AT(4096)改為AT(5120),那么這里start_addr就等于5120。還要注意這里4096byte也就是4KB,為什么把他定義在nand flash的4KB之后呢,因?yàn)橛布娐窌?huì)自動(dòng)將nand flash里的前4KB的內(nèi)容搬移到stepping stone中去執(zhí)行,如果定義在3KB之后,main.c函數(shù)直接就執(zhí)行了,哪里還用復(fù)制。
地址線 | [A28:A18] | [A17:A12] | [A11:A0] |
地址表示 | 塊地址 | 頁(yè)地址 | 頁(yè)內(nèi)偏移地址 |
不論是在nand flash頁(yè)讀取函數(shù)還是也寫入函數(shù)內(nèi),都需要向地址寄存器送地址,如下圖:
為什么是這樣呢?由于頁(yè)讀取和寫入函數(shù)均是以頁(yè)為單位進(jìn)行的,所以每次都要在頁(yè)的第0個(gè)字節(jié)開始,也就是說(shuō)頁(yè)內(nèi)偏移地址為0,所以對(duì)地址線的低12位設(shè)為0即可,如第93行,94行。
第95行,此時(shí)處于第3個(gè)地址周期因此需要發(fā)送blockpage(此時(shí)blockpage是頁(yè)的絕對(duì)地址)的A12-A19位,因此,將blockpage與0xff相與即可。一定要注意頁(yè)的絕對(duì)地址是A28-A12共同表示的,與A11-A0無(wú)關(guān)。
第96行,此時(shí)處于第3個(gè)地址周期因此需要發(fā)送blockpage(此時(shí)blockpage是頁(yè)的絕對(duì)地址)的A20-A27位,因此,將blockpage右移8位,與0xff相與即可。
第97行,此時(shí)處于第3個(gè)地址周期因此需要發(fā)送blockpage(此時(shí)blockpage是頁(yè)的絕對(duì)地址)的A28位,從圖1可以看到,此時(shí)雖然是發(fā)送8位,但是只有第0位是有效的,其他位無(wú)效。因此,將blockpage右移16位,然后再與0x1相與,只保留第0位。
mini2440開發(fā)板的時(shí)鐘
編譯生成bin文件,下載運(yùn)行
代碼源文件
百度文庫(kù)pdf地址:http://wenku.baidu.com/view/85e30572168884868662d603
pdf文件下載地址:http://download.csdn.net/detail/mybelief321/5234586
源代碼下載地址:http://download.csdn.net/detail/mybelief321/5234602
評(píng)論