📄 main.c
字号:
#include "main.h"
extern U32 NFReadID(void);
extern void NFReadPage(U32 addr, U8 *buf);
extern U32 NFEraseBlock(U32 addr);
extern U32 NFWritePage(U32 addr, U8 *buf);
/********************************************************************************************************
** 函数功能 :长软件延时
** 入口参数 :dly 延时参数,值越大,延时越久
** 出口参数 :无
*********************************************************************************************************/
void DelayNS (U32 dly)
{
U32 i;
for ( ; dly>0; dly--)
for (i=0; i<10000; i++);
}
/********************************************************************************************************
** 函数功能 :main
** 入口参数 :无
** 出口参数 :无
*********************************************************************************************************/
int main( )
{
// U32 cnt=0;
U32 i;
U8 NFBuf[1000];
U32 Num,NFAddr = 0;
U32 NF_id=0;
ChangePllValue(88, 6, 1);
PortInit();
console_init(115200);
while(1)
{
uartprintf("\n\r\n\r\n\r\n\r\n\r\n\r 请输入功能代码:");
uartprintf("\n\r\n\r 1、查看NandFlash ID:");
uartprintf("\n\r\n\r 2、察看NF_addr位置的数据:");
uartprintf("\n\r\n\r 3、擦除指定地址所在的block");
uartprintf("\n\r\n\r 4、写指定位置的一个page");
uartprintf("\n\r\n\r 5、改变新的操作位置:");
uartprintf("\n\r\n\r 6、");
uartprintf("\n\r\n\r flash 操作位置 0x%x",NFAddr);
Num = getch();
switch ( Num )
{
case '1':
uartprintf("\n\r\n\r\n\r\n\r 1、查看NandFlash ID.............");
NF_id = NFReadID();
uartprintf("\n\r\n\r\n\r\n\r NF_id = 0x%x",NF_id);
break;
case '2':
uartprintf("\n\r\n\r 2、察看NF_addr位置的数据:\n\r\n\r");
NFReadPage(NFAddr,&NFBuf[0]);
for(i=0; i<512; i++)
{
printf("0x%x ",NFBuf[i]);
}
uartprintf("\n\r\n\r 操作地址是: 0x%x",(( NFBuf[901] * 256 + NFBuf[900]) <<9) );
break;
case '3':
uartprintf("\n\r\n\r 3、擦除指定地址所在的block...........");
NFEraseBlock(NFAddr);
break;
case '4':
uartprintf("\n\r\n\r 4、写指定位置的一个page");
for(i=0;i<512; i++)
{
NFBuf[i] = i+2;
}
NFWritePage(NFAddr, NFBuf);
break;
case '5':
uartprintf("\n\r\n\r 5 原操作位置 0x%x",NFBuf);
uartprintf("\n\r\n\r\n\r\n\r now!Input 4 byte data...........");
NFAddr = 0;
Num = getch();
NFAddr = ( NFAddr <<8) | Num;
Num = getch();
NFAddr = ( NFAddr <<8) | Num;
Num = getch();
NFAddr = ( NFAddr <<8) | Num;
Num = getch();
NFAddr = ( NFAddr <<8) | Num;
uartprintf("\n\r\n\r NFAddr = 0x%x",NFAddr);
break;
default:
break;
}
DelayNS(100);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -