Пример #1
0
/*------------------------------------------------------------
 * 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;
}
Пример #2
0
/**
  * @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)
  {
  }
}