在FL2440開發(fā)板中的地址空間
- SDRAM碌燕,網(wǎng)卡DM9000拿穴,片內(nèi)內(nèi)存SRAM以及寄存器它們都有一個CPU統(tǒng)一編址的地址空間
- NANDFLASH沒有地址總線胀滚,它由兩個線來決定它的數(shù)據(jù)線上傳輸?shù)氖菙?shù)據(jù)巍佑、指令還是地址
注意:一般說nandflash的地址時纷宇,將oob空間忽略掉硕舆,也就是oob空間不參與編址
因為S3C2440中有nandflash控制器秽荞,所以只需要將nandflash芯片中的各個引腳與S3C2440上的nandflash控制器引腳相連,然后配置S3C2440中nandflash的寄存器抚官,進(jìn)行操作即可扬跋,其中寄存器的值需要根據(jù)外接nandflash芯片進(jìn)行查看
對flash存儲器件的可靠性需要考慮三點:位反轉(zhuǎn)、壞塊和可擦除次數(shù)
nandflash與norflash對比
- Norflash 支持XIP凌节,代碼可以直接在其上運行钦听,無需復(fù)制到內(nèi)存上
- 在nandflash上發(fā)生位反轉(zhuǎn)的概率更高洒试,推薦使用EDC/ECC進(jìn)行錯誤校驗和恢復(fù)
- nandflash上有壞塊隨機(jī)分布,在使用前需要將壞塊掃描出來朴上,確保不再使用它們
- norflash上常使用jffs2文件系統(tǒng)垒棋,nandflash上使用yaffs文件系統(tǒng)
訪問NANDFLASH
nandflash寫之前要先擦除
從硬件上訪問
- 發(fā)送命令, CLE拉高, 輸出DATA BUS
- 發(fā)送Addr, ALE拉高, 輸出DATA BUS
- 傳輸數(shù)據(jù)痪宰,Read/Write
通過2440訪問
主要是通過操作寄存器來訪問
初始化:
- 設(shè)置NFCONF寄存器
主要配置時序叼架,以及nandflash的位數(shù) - 設(shè)置NFCONT寄存器
- 復(fù)位nandflash
讀操作:
- 選中芯片
- 發(fā)出讀命令,先發(fā)0x00衣撬,
- 寫地址
寫入地址時乖订,以K9F2G08 256MB的nandflash為例,發(fā)送地址時具练,需要將地址拆分為5個字節(jié)發(fā)送乍构,參看數(shù)據(jù)手冊P9,根據(jù)使用的芯片不同扛点,寫入地址方式也不相同哥遮,具體根據(jù)實際使用的芯片來操作 - 如果是大頁,則還需要發(fā)送0x30命令陵究,否則昔善,不需要發(fā)送0x30
- 等待空閑