?? nand.c
字號:
/*
Nand Flash 測試主程序
*/
#include "nand.h" /*nand.h中包括宏定義和子函數的聲明*/
int main(){
// int k,p;
// long int p;
unsigned short i,j; /*i,16位無符號數*/
char data_to_write[512]; /*將要寫到Nand Flash 中的一頁數據(512Bytes)*/
char data_read[512]; /*從Nand Flash中讀回的數據存放的數組*/
// GPFCON = 0x00005555;
// GPFUP = 0xff;
// for (i=0;i<10;i++){
// k=20000;
// j=20000;
// GPFDAT = 0xff;
// for (;j>0;j--);
//
// GPFDAT =0;
// for(k);
// ;
//
// }
// GPFDAT=0x3f;
// for (p=200;p>0;p--)
// for(k=100;k>0;k--);
// GPFDAT=0xcf;
// for (p=200;p>0;p--)
// for(k=100;k>0;k--);
// GPFDAT=0;
for (i=0;i<512;i++){
data_to_write[i]= (i & 0xff);
}
// GPFCON=0x5555;
// for (j=0;j<10;j++){
// p=20000;
// k=20000;
// GPFDAT = 0xff;
// wait(20000);
// for(;p>0;p--);
// GPFDAT = 0;
// wait(20000);
// for(;k>0;k--);
// }
/*關閉WATCH DOG的自動復位功能*/
disable_watchdog_reset(); /*注意:并沒有關閉,只是禁止RESET*/
/*初始化SDRAM,因為我們在SDRAM中設置了堆棧*/
init_SDRAM(); /*我們向13個SDRAM的控制寄存器中寫入了控制字*/
// GPFCON=0x5555;
// for (j=0;j<10;j++){ /使開發板上的LED3閃10次/
// GPFDAT = 0xff;
// wait(30000);
// GPFDAT = 0;
// wait(30000);
// }
/*初始化Nand Flash Controller*/
init_NF(); /*注意:片選信號還沒有使能*/
/*初次使用Nand Flash ,進行一下復位操作*/
reset_NF(); /*復位操作的末尾,進行了Nand Flash
的空閑檢測,所以,至此,Nand Flash is idle*/
/*One_Block_Erase:調用erase_NF(),Erase第二個Block,16KBytes;不要Erase 第一塊*/
erase_NF(1); /*erase_NF中,進行了錯誤檢查,若發現錯誤,
則開發板上的LED1會閃20次
在Erase操作完成之后,我們又關閉了
Nand Flash的片選信號*/
/*One_Page_Program向Nand Flash中的剛剛E rase了的Block中的第一頁寫入512Bytes的數據*/
program_NF(data_to_write, 0x4000,512);/*program_NF中,進行了錯誤檢查,
若發現錯誤,則開發板上的LED0會閃20次
在寫操作完成時候,我們也同樣關閉了
片選信號*/
/*One_Page_Read:將上面寫入的一頁數據重新讀出來,并與原來的
數據比較,若發現不一致,則使開發板上的LED2閃20次*/
read_NF(data_read,0x4000, 1);
/*比較原始數與讀回的數據*/
for (i=0;i<512;i++){
if (data_to_write[i] != data_read[i]){
GPFCON = 0x5555; /*將整個F口配置成輸出端口*/
for (j=0;j<10;j++){ /*使開發板上的LED3閃10次*/
GPFDAT = 0xbf;
wait(30000);
GPFDAT |= (1<<6);
wait(30000);
}
// break; /*跳出循環,不在往下校對*/
}
}
/*checking*/
GPFCON=0x5555;
GPFDAT=(data_read[5]<<4);
/*
GPFCON=0x5555;
GPFDAT=0xcf;
*/ return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -