?? main.c
字號:
/**************************************************************************
文件名稱: main.c
作者: Andy
版本: 0.1
創建時間 : 2007-04
描述:
文件實現了NandFlash的讀寫數據測試
修改歷史:
****************************************************************************/
#include "stdio.h"
#include "ccblkfn.h"
#include "sysreg.h"
#include "dm_bf5xx.h"
uint8_t Verify_Table[4096];
uint8_t Test_Data_Table[4096];
uint8_t Read_Table[4096];
extern int_t bytecount;
uint_t Blockn_Address = 0;
uint16_t Pagen_address = 0;
bool write_page(uint_t Page_Address,uint8_t *Buffer);
bool read_page(uint_t Page_Address,uint8_t *Buffer);
bool Block_Erase(uint_t Block_Address);
void Create_Invalid_Blocks_Table(void);
void Reset_NAND(void);
void delay(uint_t DelayValue);
void Read_Chip_ID(void);
/****************************************************************************
* 名稱 : RW_Test
* 功能 : 校驗寫入數據的正確性,將前100頁寫入數據,讀出做比較
* 入口參數 :無
* 出口參數 :無
****************************************************************************/
RW_Test()
{
int_t Block,Page,i,j;
for(Block=1;Block<100;Block++)
{
Block_Erase(Block);
for(Page=0;Page<64;Page++)
{
for(j = 0;j<bytecount;j++)
{
Test_Data_Table[j] = j+Page;
}
write_page(Block*64+Page,Test_Data_Table);
udelay(0xfff);
read_page(Block*64+Page,Verify_Table);
for(i=0;i<bytecount;i++)
{
if(Test_Data_Table[i] != Verify_Table[i])
{
printf("ERORR! Block is %x, page is %x\n\r",Block,Page);
printf("ERORR! Test_Data_Table is %x, Verify_Table is %x\n\r",Test_Data_Table[i],Verify_Table[i]);
}
}
}
}
printf("TEST 100 Bank is OK!\n\r");
}
/****************************************************************************
* 名稱 :Setup_FlashFlags
* 功能 :初始化PF
* 入口參數 :無
* 出口參數 :無
****************************************************************************/
void Setup_FlashFlags(void)
{
*pFIO_INEN = 0x0800;//pf11輸入使能
*pFIO_DIR = 0x0700;//pf11設置為輸入
}
/****************************************************************************
* 名稱 :Init_NandFlash
* 功能 :初始化 NandFlash
* 入口參數 :無
* 出口參數 :無
****************************************************************************/
void Init_NandFlash(void)
{
Init_EBIU();
Setup_FlashFlags();
Reset_NAND();
Read_Chip_ID();
}
/****************************************************************************
* 名稱 :main
* 功能 :NandFlash 讀寫測試函數
* 入口參數 :無
* 出口參數 :無
****************************************************************************/
void main(void)
{
Set_PLL(22,5);
int_t Block,Page,i;
Init_NandFlash();
printf("The Nandflash is Testing! \n\rPlease Waiting...\n\r");
Init_TEST_DATA_BUFFER();
RW_Test();
printf("TEST END\n");
while(1);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -