|
80黑幣
三個(gè)疑問(wèn),
第一是宏定義設(shè)置的讀寫(xiě)地址按照正常設(shè)置應(yīng)該是zone7 起始地址,但是設(shè)置后讀寫(xiě)不正確,改為現(xiàn)在的就可以,這個(gè)值是之前離職同事留下來(lái)的;
第二是宏定義設(shè)置的NF_BYTE_NUM ,這個(gè)設(shè)置為512時(shí)是可以寫(xiě)的,設(shè)置為1024就會(huì)跑死在讀頁(yè)函數(shù)里,下邊給了flash手冊(cè)中的描述,不知道我代碼里理解的是否正確;
第三個(gè)是最后的圖里有個(gè)地址和地址周期,按照官方的例程是起始地址加上圖上的地址,在這個(gè)里寫(xiě),但是這個(gè)芯片我沒(méi)有看懂,因?yàn)檎J且粋(gè)地址一個(gè)命令。
詳細(xì)的flash手冊(cè)我放在了附件里,下邊是我的flash描述及代碼部分內(nèi)容,如果有朋友了解外部flash
• Organization – Page size x8: 2112 bytes (2048 + 64 bytes) – Page size x16: 1056 words (1024 + 32 words) – Block size: 64 pages (128K + 4K bytes) – Plane size: 2 planes x 1024 blocks per plane – Device size: 2Gb: 2048 blocks
#define NF_BYTE_NUM 1024//512//2048 //頁(yè)字節(jié)數(shù)2048bytes 16位數(shù) 1024words 這里設(shè)置512讀就可以1024就不正常
#define NF_SPARE_NUM 32//64 //額外字節(jié)64bytes 16位數(shù)32words
#define NF_PAGE_NUM 64 //每個(gè)塊有64頁(yè)
#define NF_BLOCK_NUM 2048 //2 planes x 1024 blocks
#define rNFDATA (*(volatile unsigned int *)0x240000) //The is at CMD file zone7 star address 0x0200000
#define rNFCMD (*(volatile unsigned int *)0x240001)
#define rNFADDR (*(volatile unsigned int *)0x240002)
#define NF_RDDATA() (rNFDATA) //讀數(shù)據(jù)
#define NF_WRDATA(data) {rNFDATA=data;} //寫(xiě)數(shù)據(jù)
#define NF_CMD(cmd) {rNFCMD=cmd;} //發(fā)送命令
#define NF_ADDR(addr) {rNFADDR=addr;} //寫(xiě)入地址
ZONE7 : origin = 0x0200000, length = 0x100000
|
|