📄 main_entry.c
字号:
if(*address!=0xffff)
{goto CHKB2;}
}
i_printf(", OK!\r\n");
/************************************************************************/
i_printf(">>>Erase Bootloader Flash Area S3,Please Wait...");
Flash_Unlock();
*((volatile unsigned short *)AM_SECTOR_ADDR_03) = AM_SECTOR_ERASE; //0x3030
i_printf(",Blank Check...");
CHKB3:
Delay(50000);
for(address=(unsigned short *)AM_SECTOR_ADDR_03;address<(unsigned short *)AM_SECTOR_ADDR_04;address++)
{
if(*address!=0xffff)
{goto CHKB3;}
}
i_printf(", OK!\r\n");
/************************************************************************/
i_printf(">>>Erase Bootloader Flash Area S4,Please Wait...");
Flash_Unlock();
*((volatile unsigned short *)AM_SECTOR_ADDR_04) = AM_SECTOR_ERASE; //0x3030
i_printf(",Blank Check...");
CHKB4:
Delay(50000);
for(address=(unsigned short *)AM_SECTOR_ADDR_04;address<(unsigned short *)AM_SECTOR_ADDR_1;address++)
{
if(*address!=0xffff)
{goto CHKB4;}
}
i_printf(", OK!\r\n");
}
/************************************************************************/
/*Function Description: Flash Sector Unlock. */
/*Date: 2003-12-2 */
/************************************************************************/
void Flash_Unlock(void)
{
*((volatile unsigned short *)AM_START_ADDR+ AM_ADDR_UNLOCK1) = AM_DATA_UNLOCK1; //0xaaaa
*((volatile unsigned short *)AM_START_ADDR+ AM_ADDR_UNLOCK2) = AM_DATA_UNLOCK2; //0x5555
*((volatile unsigned short *)AM_START_ADDR+ AM_ADDR_UNLOCK1) = AM_SETUP_ERASE; //0x8080
*((volatile unsigned short *)AM_START_ADDR+ AM_ADDR_UNLOCK1) = AM_DATA_UNLOCK1; //0xaaaa
*((volatile unsigned short *)AM_START_ADDR+ AM_ADDR_UNLOCK2) = AM_DATA_UNLOCK2; //0x5555
}
/************************************************************************/
/*Function Name: flash_erase() */
/*Function Description: Flash User Program Areas. */
/*Date: 2003-12-5 */
/************************************************************************/
void flash_erase(int CNT)
{
int i;
unsigned short *address;
/**********************************User Flash S1 *********************************************/
if(CNT>64*0)
{
i_printf(">>>Erase User Flash Area S1,Please Wait...");
Flash_Unlock();
*((unsigned short *)AM_SECTOR_ADDR_1) = AM_SECTOR_ERASE; //0x3030
i_printf(",Blank Check...");
EUS1:
Delay(50000);
for(address=(unsigned short *)AM_SECTOR_ADDR_1;address<(unsigned short *)AM_SECTOR_ADDR_2;address++)
{
if(*address!=0xffff)
{goto EUS1;}
}
i_printf(", OK!\r\n");
}
/**********************************User Flash S2 *********************************************/
if(CNT>64*1)
{
i_printf(">>>Erase User Flash Area S2,Please Wait...");
Flash_Unlock();
*((unsigned short *)AM_SECTOR_ADDR_2) = AM_SECTOR_ERASE; //0x3030
i_printf(",Blank Check...");
EUS2:
Delay(50000);
for(address=(unsigned short *)AM_SECTOR_ADDR_2;address<(unsigned short *)AM_SECTOR_ADDR_3;address++)
{
if(*address!=0xffff)
{goto EUS2;}
}
i_printf(", OK!\r\n");
}
/**********************************User Flash S3 *********************************************/
if(CNT>64*2)
{
i_printf(">>>Erase User Flash Area S3,Please Wait...");
Flash_Unlock();
*((unsigned short *)AM_SECTOR_ADDR_3) = AM_SECTOR_ERASE; //0x3030
i_printf(",Blank Check...");
EUS3:
Delay(50000);
for(address=(unsigned short *)AM_SECTOR_ADDR_3;address<(unsigned short *)AM_SECTOR_ADDR_4;address++)
{
if(*address!=0xffff)
{goto EUS3;}
}
i_printf(", OK!\r\n");
}
/**********************************User Flash S4 *********************************************/
if(CNT>64*3)
{
i_printf(">>>Erase User Flash Area S4,Please Wait...");
Flash_Unlock();
*((unsigned short *)AM_SECTOR_ADDR_4) = AM_SECTOR_ERASE; //0x3030
i_printf(",Blank Check...");
EUS4:
Delay(50000);
for(address=(unsigned short *)AM_SECTOR_ADDR_4;address<(unsigned short *)AM_SECTOR_ADDR_5;address++)
{
if(*address!=0xffff)
{goto EUS4;}
}
i_printf(", OK!\r\n");
}
/**********************************User Flash S5*********************************************/
if(CNT>64*4)
{
i_printf(">>>Erase User Flash Area S5,Please Wait...");
Flash_Unlock();
*((unsigned short *)AM_SECTOR_ADDR_5) = AM_SECTOR_ERASE; //0x3030
i_printf(",Blank Check...");
EUS5:
Delay(50000);
for(address=(unsigned short *)AM_SECTOR_ADDR_5;address<(unsigned short *)AM_SECTOR_ADDR_6;address++)
{
if(*address!=0xffff)
{goto EUS5;}
}
i_printf(", OK!\r\n");
}
/**********************************User Flash S6 *********************************************/
if(CNT>64*5)
{
i_printf(">>>Erase User Flash Area S6,Please Wait...");
Flash_Unlock();
*((unsigned short *)AM_SECTOR_ADDR_6) = AM_SECTOR_ERASE; //0x3030
i_printf(",Blank Check...");
EUS6:
Delay(50000);
for(address=(unsigned short *)AM_SECTOR_ADDR_6;address<(unsigned short *)AM_SECTOR_ADDR_7;address++)
{
if(*address!=0xffff)
{goto EUS6;}
}
i_printf(", OK!\r\n");
}
/**********************************User Flash S7 *********************************************/
if(CNT>64*6)
{
i_printf(">>>Erase User Flash Area S7,Please Wait...");
Flash_Unlock();
*((unsigned short *)AM_SECTOR_ADDR_7) = AM_SECTOR_ERASE; //0x3030
i_printf(",Blank Check...");
EUS7:
Delay(50000);
for(address=(unsigned short *)AM_SECTOR_ADDR_7;address<(unsigned short *)AM_SECTOR_ADDR_8;address++)
{
if(*address!=0xffff)
{goto EUS7;}
}
i_printf(", OK!\r\n");
}
/**********************************User Flash S8 *********************************************/
if(CNT>64*7)
{
i_printf(">>>Erase User Flash Area S8,Please Wait...");
Flash_Unlock();
*((unsigned short *)AM_SECTOR_ADDR_8) = AM_SECTOR_ERASE; //0x3030
i_printf(",Blank Check...");
EUS8:
Delay(50000);
for(address=(unsigned short *)AM_SECTOR_ADDR_8;address<(unsigned short *)AM_SECTOR_ADDR_9;address++)
{
if(*address!=0xffff)
{goto EUS8;}
}
i_printf(", OK!\r\n");
}
/**********************************User Flash S9 *********************************************/
if(CNT>64*8)
{
i_printf(">>>Erase User Flash Area S9,Please Wait...");
Flash_Unlock();
*((unsigned short *)AM_SECTOR_ADDR_9) = AM_SECTOR_ERASE; //0x3030
i_printf(",Blank Check...");
EUS9:
Delay(50000);
for(address=(unsigned short *)AM_SECTOR_ADDR_9;address<(unsigned short *)AM_SECTOR_ADDR_10;address++)
{
if(*address!=0xffff)
{goto EUS9;}
}
i_printf(", OK!\r\n");
}
/**********************************User Flash S10 *********************************************/
if(CNT>64*9)
{
i_printf(">>>Erase User Flash Area S10,Please Wait...");
Flash_Unlock();
*((unsigned short *)AM_SECTOR_ADDR_10) = AM_SECTOR_ERASE; //0x3030
i_printf(",Blank Check...");
EUS10:
Delay(50000);
for(address=(unsigned short *)AM_SECTOR_ADDR_10;address<(unsigned short *)AM_SECTOR_ADDR_11;address++)
{
if(*address!=0xffff)
{goto EUS10;}
}
i_printf(", OK!\r\n");
}
/**********************************User Flash S11 *********************************************/
if(CNT>64*10)
{
i_printf(">>>Erase User Flash Area S11,Please Wait...");
Flash_Unlock();
*((unsigned short *)AM_SECTOR_ADDR_11) = AM_SECTOR_ERASE; //0x3030
i_printf(",Blank Check...");
EUS11:
Delay(50000);
for(address=(unsigned short *)AM_SECTOR_ADDR_11;address<(unsigned short *)AM_SECTOR_ADDR_12;address++)
{
if(*address!=0xffff)
{goto EUS11;}
}
i_printf(", OK!\r\n");
}
/**********************************User Flash S12 *********************************************/
if(CNT>64*11)
{
i_printf(">>>Erase User Flash Area S12,Please Wait...");
Flash_Unlock();
*((unsigned short *)AM_SECTOR_ADDR_12) = AM_SECTOR_ERASE; //0x3030
i_printf(",Blank Check...");
EUS12:
Delay(50000);
for(address=(unsigned short *)AM_SECTOR_ADDR_12;address<(unsigned short *)AM_SECTOR_ADDR_13;address++)
{
if(*address!=0xffff)
{goto EUS12;}
}
i_printf(", OK!\r\n");
}
/**********************************User Flash S13 *********************************************/
if(CNT>64*12)
{
i_printf(">>>Erase User Flash Area S13,Please Wait...");
Flash_Unlock();
*((unsigned short *)AM_SECTOR_ADDR_13) = AM_SECTOR_ERASE; //0x3030
i_printf(",Blank Check...");
EUS13:
Delay(50000);
for(address=(unsigned short *)AM_SECTOR_ADDR_13;address<(unsigned short *)AM_SECTOR_ADDR_14;address++)
{
if(*address!=0xffff)
{goto EUS13;}
}
i_printf(", OK!\r\n");
}
/**********************************User Flash S14 *********************************************/
if(CNT>64*13)
{
i_printf(">>>Erase User Flash Area S14,Please Wait...");
Flash_Unlock();
*((unsigned short *)AM_SECTOR_ADDR_14) = AM_SECTOR_ERASE; //0x3030
i_printf(",Blank Check...");
EUS14:
Delay(50000);
for(address=(unsigned short *)AM_SECTOR_ADDR_14;address<(unsigned short *)AM_SECTOR_ADDR_15;address++)
{
if(*address!=0xffff)
{goto EUS14;}
}
i_printf(", OK!\r\n");
}
/**********************************User Flash S15 *********************************************/
if(CNT>64*14)
{
i_printf(">>>Erase User Flash Area S15,Please Wait...");
Flash_Unlock();
*((unsigned short *)AM_SECTOR_ADDR_15) = AM_SECTOR_ERASE; //0x3030
i_printf(",Blank Check...");
EUS15:
Delay(50000);
for(address=(unsigned short *)AM_SECTOR_ADDR_15;address<(unsigned short *)AM_SECTOR_ADDR_16;address++)
{
if(*address!=0xffff)
{goto EUS15;}
}
i_printf(", OK!\r\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -