⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 blackfin 533 的nandflash代码 很基础的
💻 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 + -