This commit is contained in:
qiyongshuang
2023-12-01 10:33:09 +08:00
parent de6d68c654
commit ec059e0b18
395 changed files with 37947 additions and 28760 deletions
+48 -59
View File
@@ -56,7 +56,10 @@ uint32_t NbrOfPage;
volatile FLASH_Status FLASHStatus = FLASH_COMPLETE;
volatile TestStatus MemoryProgramStatus = PASSED;
volatile TestStatus MemoryEraseStatus = PASSED;
u32 buf[64];
#define Fadr (0x08020000)
#define Fsize ((((256*4))>>2))
u32 buf[Fsize];
/*********************************************************************
* @fn Flash_Test
@@ -116,9 +119,7 @@ void Flash_Test(void)
printf("Memory Program PASS!\r\n");
}
FLASH_Lock();
FLASH_Lock();
}
/*********************************************************************
@@ -130,71 +131,59 @@ void Flash_Test(void)
*/
void Flash_Test_Fast(void)
{
u16 i,j,flag;
u32 i;
u8 Verify_Flag = 0;
FLASH_Status s;
for(i=0; i<64; i++){
for(i = 0; i < Fsize; i++){
buf[i] = i;
}
printf("FLASH Fast Mode Test\n");
printf("Read flash\r\n");
for(i=0; i<Fsize; i++){
printf("adr-%08x v-%08x\r\n", Fadr +4*i, *(u32*)(Fadr +4*i));
}
FLASH_Unlock_Fast();
s = FLASH_ROM_ERASE(Fadr, Fsize*4);
if(s != FLASH_COMPLETE)
{
printf("check FLASH_ADR_RANGE_ERROR FLASH_ALIGN_ERROR or FLASH_OP_RANGE_ERROR\r\n");
return;
}
FLASH_EraseBlock_32K_Fast(FAST_FLASH_PROGRAM_START_ADDR);
printf("Erase flash\r\n");
for(i=0; i<Fsize; i++){
printf("adr-%08x v-%08x\r\n", Fadr +4*i, *(u32*)(Fadr +4*i));
}
printf("Program 32KByte start\n");
for(i=0; i<128; i++){
FLASH_ProgramPage_Fast(FAST_FLASH_PROGRAM_START_ADDR + 256*i, buf);
}
s = FLASH_ROM_WRITE(Fadr, buf, Fsize*4);
if(s != FLASH_COMPLETE)
{
printf("check FLASH_ADR_RANGE_ERROR FLASH_ALIGN_ERROR or FLASH_OP_RANGE_ERROR\r\n");
return;
}
for(i=0; i<128; i++){
for(j=0; j<64; j++){
if(*(u32*)(FAST_FLASH_PROGRAM_START_ADDR+256*i+4*j) != j){
flag = 0;
break;
}
else{
flag = 1;
}
}
printf("Write flash\r\n");
for(i=0; i<Fsize; i++){
printf("adr-%08x v-%08x\r\n", Fadr +4*i, *(u32*)(Fadr +4*i));
}
}
for(i = 0; i < Fsize; i++){
if(buf[i] == *(u32 *)(Fadr + 4 * i))
{
Verify_Flag = 0;
}
else
{
Verify_Flag = 1;
break;
}
}
if(flag){
printf("Program 32KByte suc\n");
}
else printf("Program fail\n");
printf("Erase 256Byte...\n");
FLASH_ErasePage_Fast(FAST_FLASH_PROGRAM_START_ADDR);
printf("Read 4KByte...\n");
for(i=0;i<1024; i++){
printf("%08x ",*(u32*)(FAST_FLASH_PROGRAM_START_ADDR+4*i));
}printf("\n");
printf("Erase 4KByte...\n");
FLASH_ErasePage(FAST_FLASH_PROGRAM_START_ADDR);
printf("Read 8KByte...\n");
for(i=0;i<2048; i++){
printf("%08x ",*(u32*)(FAST_FLASH_PROGRAM_START_ADDR+4*i));
}printf("\n");
printf("Erase 32KByte...\n");
FLASH_EraseBlock_32K_Fast(FAST_FLASH_PROGRAM_START_ADDR);
printf("Read 32KByte...\n");
for(i=0;i<(1024*9); i++){
printf("%08x ",*(u32*)(FAST_FLASH_PROGRAM_START_ADDR+4*i));
}printf("\n");
FLASH_Lock_Fast();
FLASH_Lock();
if(Verify_Flag)
printf("%d Byte Verify Fail\r\n", (Fsize*4));
else
printf("%d Byte Verify Suc\r\n", (Fsize*4));
}
/*********************************************************************
@@ -205,6 +205,7 @@ void SystemCoreClockUpdate (void)
*/
static void SetSysClock(void)
{
//GPIO_IPD_Unused();
#ifdef SYSCLK_FREQ_HSE
SetSysClockToHSE();
#elif defined SYSCLK_FREQ_48MHz_HSE