📄 main.c
字号:
#include "include.h"
extern void RUNAPP();
extern unsigned char flash_erase_chip( );
extern uchar WriteMainFlash(uchar which,uint len, uint Address,uchar *wdata);
void initial_system(void)//ok
{
SCON = 0x50; /* SCON: mode 1, 8-bit UART, enable rcvr */
TMOD |= 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */
TH1 = 221; /* TH1: reload value for 1200 baud @ 16MHz */
TR1 = 1; /* TR1: timer 1 run */
TI = 1; /* TI: set TI to send first char of UART */
}
char code menu[] =
"\n"
" ======Welcome to play boot progrom ======\n"
" 0. erase the main flash\n"
" 1. write some data to the 1 section of the main flash\n"
" 2. write some data to the 2 section of the main flash\n"
" 3. write some data to the 3 section of the main flash\n"
" 4. write some data to the 4 section of the main flash\n"
" 5. write some data to the 5 section of the main flash\n"
" 6. write some data to the 6 section of the main flash\n"
" 7. write some data to the 7 section of the main flash\n"
" 8. write some data to the 8 section of the main flash\n"
" 9. run to main flash\n";
//=============================================================================
void main(void)
{
// uchar buf[50];
uchar key;
uchar err;
uint i,j;
uchar addr;
uchar xdata wbuf[1024];
initial_system();
printf(menu);
do
{
do
{
key = _getkey ();
}while(key==0);
switch(key)
{
case '0':
printf("eraseing...\r");
err = flash_erase_chip();
if(err)
printf("eraseing fail\r");
else
printf("eraseing 0k\r");
break;
case '1':
printf("write section 1...\r");
addr = 0;
for(j=0;j<32;j++)
{
for(i=0;i<1024;i++)
{
wbuf[i] = 0x55;
}
printf( "... %02d K\r", j );
WriteMainFlash(0,1024,addr,wbuf);
addr += 1024;
}
if(err)
printf("write section 1 fail\r");
else
printf("write section 1 0k\r");
break;
case '2':
printf("write section 2...\r");
addr = 0;
for(j=0;j<32;j++)
{
for(i=0;i<1024;i++)
{
wbuf[i] = 0x55;
}
printf( "... %02d K\r", j );
WriteMainFlash(1,1024,addr,wbuf);
addr += 1024;
}
if(err)
printf("write section 2 fail\r");
else
printf("write section 2 0k\r");
break;
case '3':
break;
case '4':
break;
case '5':
break;
case '6':
break;
case '7':
break;
case '8':
break;
case '9':
printf("run main program.\r");
RUNAPP();
break;
default:
break;
}
}while(1);
}
/*switch(key)
{
case '0':
addr = 0;
clear_lcd(0,MAX_LCD_NUM);//清最大显示行数4行
strcpy(buf,"正在写主FLASH...0");
lcd_disp(1,0,buf);
for(j=0;j<32;j++)
{
for(i=0;i<1024;i++)
{
wbuf[i] = 0x55;
}
sprintf( buf, "... %02d K", j );
lcd_disp(2,0,buf);
WriteMainFlash(0,1024,addr,wbuf);
addr += 1024;
}
break;
case '1':
addr = 0;
clear_lcd(0,MAX_LCD_NUM);//清最大显示行数4行
strcpy(buf,"正在写主FLASH...1");
lcd_disp(1,0,buf);
for(j=0;j<32;j++)
{
for(i=0;i<1024;i++)
{
wbuf[i] = 0x55;
}
sprintf( buf, "... %02d K", j );
lcd_disp(2,0,buf);
WriteMainFlash(1,1024,addr,wbuf);
addr += 1024;
}
break;
case '2':
addr = 0;
clear_lcd(0,MAX_LCD_NUM);//清最大显示行数4行
strcpy(buf,"正在写主FLASH...2");
lcd_disp(1,0,buf);
for(j=0;j<32;j++)
{
for(i=0;i<1024;i++)
{
wbuf[i] = 0x55;
}
sprintf( buf, "... %02d K", j );
lcd_disp(2,0,buf);
WriteMainFlash(2,1024,addr,wbuf);
addr += 1024;
}
break;
case '3':
addr = 0;
clear_lcd(0,MAX_LCD_NUM);//清最大显示行数4行
strcpy(buf,"正在写主FLASH...3");
lcd_disp(1,0,buf);
for(j=0;j<32;j++)
{
for(i=0;i<1024;i++)
{
wbuf[i] = 0x55;
}
sprintf( buf, "... %02d K", j );
lcd_disp(2,0,buf);
WriteMainFlash(3,1024,addr,wbuf);
addr += 1024;
}
break;
case '4':
addr = 0;
clear_lcd(0,MAX_LCD_NUM);//清最大显示行数4行
strcpy(buf,"正在写主FLASH...4");
lcd_disp(1,0,buf);
for(j=0;j<32;j++)
{
for(i=0;i<1024;i++)
{
wbuf[i] = 0x55;
}
sprintf( buf, "... %02d K", j );
lcd_disp(2,0,buf);
WriteMainFlash(4,1024,addr,wbuf);
addr += 1024;
}
break;
case '5':
addr = 0;
clear_lcd(0,MAX_LCD_NUM);//清最大显示行数4行
strcpy(buf,"正在写主FLASH...5");
lcd_disp(1,0,buf);
for(j=0;j<32;j++)
{
for(i=0;i<1024;i++)
{
wbuf[i] = 0x55;
}
sprintf( buf, "... %02d K", j );
lcd_disp(2,0,buf);
WriteMainFlash(5,1024,addr,wbuf);
addr += 1024;
}
break;
case '6':
addr = 0;
clear_lcd(0,MAX_LCD_NUM);//清最大显示行数4行
strcpy(buf,"正在写主FLASH...6");
lcd_disp(1,0,buf);
for(j=0;j<32;j++)
{
for(i=0;i<1024;i++)
{
wbuf[i] = 0x55;
}
sprintf( buf, "... %02d K", j );
lcd_disp(2,0,buf);
WriteMainFlash(6,1024,addr,wbuf);
addr += 1024;
}
break;
case '7':
addr = 0;
clear_lcd(0,MAX_LCD_NUM);//清最大显示行数4行
strcpy(buf,"正在写主FLASH...7");
lcd_disp(1,0,buf);
for(j=0;j<32;j++)
{
for(i=0;i<1024;i++)
{
wbuf[i] = 0x55;
}
sprintf( buf, "... %02d K", j );
lcd_disp(2,0,buf);
WriteMainFlash(7,1024,addr,wbuf);
addr += 1024;
}
break;
case '8':
self_detect_USB();
break;
case '9':
RunMain();
break;
case BRANCH1:
clear_lcd(0,MAX_LCD_NUM);//清最大显示行数4行
strcpy(buf,"正在擦除主FLASH...");
lcd_disp(1,0,buf);
err = flash_erase_sector(0);
break;
case BRANCH2:
break;
case BRANCH3:
break;
case BRANCH4:
break;
case BRANCH5:
break;
case BRANCH6:
break;
case BRANCH7:
break;
case BRANCH8:
break;
case PAGEUP:
break;
case PAGEDOWN:
break;
case TAB:
break;
default:
break;
}
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -