/*------------------------------------------------------------ * Function Name : ConfirmAutoUpdatePassword * Description : 验证自动升级密码 * Input : None * Output : None * Return : None *------------------------------------------------------------*/ static TestStatus ConfirmAutoUpdatePassword( void ) { TestStatus status = FAILED; const uint32_t DEFAULT_PASSWORD = 0X00000000; uint32_t RTC_BKP_DATA = 0; bsp_InitRTC(); RTC_BKP_DATA = ReadRTC_BKP_DR(0); if (RTC_BKP_DATA == PRIVATE_PASSWORD) { WriteToRTC_BKP_DR(0,DEFAULT_PASSWORD); RTC_BKP_DATA = ReadRTC_BKP_DR(0); if (RTC_BKP_DATA == DEFAULT_PASSWORD) { status = PASSED; } } bsp_DeInitRTC(); return status; }
/** * @brief Main program * @param None * @retval None */ int main(void) { /*!< At this stage the microcontroller clock setting is already configured, this is done through SystemInit() function which is called from startup files (startup_stm32f40xx.s/startup_stm32f427x.s) before to branch to application main. To reconfigure the default setting of SystemInit() function, refer to system_stm32f4xx.c file */ /* Initialize Leds mounted on EVAL board */ STM_EVAL_LEDInit(LED1); STM_EVAL_LEDInit(LED2); STM_EVAL_LEDInit(LED3); STM_EVAL_LEDInit(LED4); /* RTC configuration */ RTC_Config(); /* Write To RTC Backup Data registers */ WriteToRTC_BKP_DR(0xA53C); /* Check if the written data are correct */ if(CheckRTC_BKP_DR(0xA53C) == 0) { /* Turn on LED1 */ STM_EVAL_LEDOn(LED1); } else { /* Turn on LED3 */ STM_EVAL_LEDOn(LED3); } while (1) { } }