|
代码是2440开发板的Nand Flash 实验
/*------------------------------------------------------------/
函数名称: ReadPage
功能描述:
传 参: U32 addr, U8 *buf
返 回 值: 无
-------------------------------------------------------------*/
void ReadPage(U32 addr, U8 *buf)
{
U16 i;
NFChipEn();
WrNFCmd(READCMD0);
WrNFAddr(0);
WrNFAddr(0);
WrNFAddr(addr);
WrNFAddr(addr>>8);
WrNFCmd(READCMD1);
InitEcc();
WaitNFBusy();
for(i=0; i<2048; i++)
buf = RdNFDat();
NFChipDs();
}
/*------------------------------------------------------------/
函数名称: nandMain
功能描述: 入口函数
传 参: 无
返 回 值: 无
-------------------------------------------------------------*/
void nandMain(void)
{
U16 ID,i;
U8 buf[512];
U32 NFBlockNO=6;
U32 NFPagesNO = 25;
U32 status;
U32 BlockPages;
BlockPages =(NFBlockNO<<6)+NFPagesNO;
Uart_Init(115200);
Uart_Printf("\nthe main is running\n");
InitNandCfg(); //初始化函数
ID=ReadChipId();//ID=ECf1
Uart_Printf("\nnand flash`s ID is:%x\n",ID);
if(EraseBlock(BlockPages)&0x1==TRUE)
{
Uart_Printf("\nblock %d is erased\n",NFBlockNO);
ReadPage(BlockPages,buf);
........
为什么定义的缓冲区才512字节,而读取2048字节,岂不是溢出了吗?
|
|