1.boot程序优先判断是否有APP程序,再做外设初始化。
int main(void)
{
/* USER CODE BEGIN 1 */
uint16_t iapFlag = 0;
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
iapFlag = STMFLASH_ReadHalfWord(IAPFLAGADDR);
if(iapFlag == 0xFFFF)
{
iapFlag = 0;
STMFLASH_Write(IAPFLAGADDR, &iapFlag, 1);
}
if(iapFlag == 0)
{
iap_load_app(FLASH_APP_ADDR);
}
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_CAN_Init();
CAN_Config();
// MX_IWDG_Init();
MX_TIM2_Init();
/* USER CODE BEGIN 2 */
ota_boot_init();