/*====================================================================================================*/
int main( void )
{
  GPIO_Config();

#if FLASH_RW_U8
  Flash_ErasePage(FLASH_PAGE_ADDR(60));
  Flash_WritePageU8(FLASH_PAGE_ADDR(60), WriteDataU8, 1024);
  Flash_ReadPageU8(FLASH_PAGE_ADDR(60), ReadDataU8, 1024);
  LED_R = (Cmp_ArrU8(WriteDataU8, ReadDataU8, 1024) == SUCCESS) ? 0 : 1;
#endif

#if FLASH_RW_U16
  Flash_ErasePage(FLASH_PAGE_ADDR(60));
  Flash_WritePageU16(FLASH_PAGE_ADDR(60), WriteDataU16, 512);
  Flash_ReadPageU16(FLASH_PAGE_ADDR(60), ReadDataU16, 512);
  LED_G = (Cmp_ArrU16(WriteDataU16, ReadDataU16, 512) == SUCCESS) ? 0 : 1;
#endif

#if FLASH_RW_U32
  Flash_ErasePage(FLASH_PAGE_ADDR(60));
  Flash_WritePageU32(FLASH_PAGE_ADDR(60), WriteDataU32, 256);
  Flash_ReadPageU32(FLASH_PAGE_ADDR(60), ReadDataU32, 256);
  LED_B = (Cmp_ArrU32(WriteDataU32, ReadDataU32, 256) == SUCCESS) ? 0 : 1;
#endif

  Delay_100ms(10);
  while(1) {
    LED_R = !LED_R;
    LED_G = !LED_G;
    LED_B = !LED_B;
    Delay_100ms(1);
  }
}
/*=====================================================================================================*/
int main( void )
{
  SystemInit();
  GPIO_Config();

  LED_R = 0;
  if(KEY_WU == 1) {
    Flash_ErasePage(FLASH_PAGE_ADDR(60));
    Delay_10ms(100);
  }
  LED_R = 1;

  while(1) {
    LED_R = ~LED_R;
    Delay_10ms(10);
    if(KEY_BO == 1) { // Write Flash
      Flash_WritePageU8(FLASH_PAGE_ADDR(60), WriteData, 1024);
      if(CmpArr_U8(WriteData, ReadData, 1024) == SUCCESS)
        LED_G = 0;
    }
    if(KEY_WU == 1) { // Read Flash
      Flash_ReadPageU8(FLASH_PAGE_ADDR(60), ReadData, 1024);
      if(CmpArr_U8(WriteData, ReadData, 1024) == SUCCESS)
        LED_B = 0;
    }
  }
}
/*====================================================================================================*/
int main( void )
{
  GPIO_Config();

#if FLASH_RW_U8
  Flash_ErasePage(FLASH_PAGE_ADDR(FLASH_RW_PAGE));
  Flash_WritePageU8(FLASH_PAGE_ADDR(FLASH_RW_PAGE), WriteDataU8, FLASH_RW_SIZE);
  Flash_ReadPageU8(FLASH_PAGE_ADDR(FLASH_RW_PAGE), ReadDataU8, FLASH_RW_SIZE);
  if(Cmp_ArrU8(WriteDataU8, ReadDataU8, FLASH_RW_SIZE) == SUCCESS)
    LED_R_Reset;
  else
    LED_R_Set;
#endif

#if FLASH_RW_U16
  Flash_ErasePage(FLASH_PAGE_ADDR(FLASH_RW_PAGE));
  Flash_WritePageU16(FLASH_PAGE_ADDR(FLASH_RW_PAGE), WriteDataU16, FLASH_RW_SIZE >> 1);
  Flash_ReadPageU16(FLASH_PAGE_ADDR(FLASH_RW_PAGE), ReadDataU16, FLASH_RW_SIZE >> 1);
  if(Cmp_ArrU16(WriteDataU16, ReadDataU16, FLASH_RW_SIZE >> 1) == SUCCESS)
    LED_G_Reset;
  else