官方的bootloader程序里,读取FLASH数据ret = DataRecord_Read(DATA_START_ADDR, (uint32_t *)g_systemDataRecord, 512);然后判断if (g_systemDataRecord->canBootloaderUpgrade == CAN_BOOTLOADER_UPGRADE),即是读取 FLASH里特定地址的数据,来判断数据从而决定是否进入后面的是更新APP还是直接跳转到APP。FLASH该位置的数据是在APP程序System_UpdateAPP函数里写入的,DataRecord_WriteUpgrade(CAN_BOOTLOADER_UPGRADE)。以上,是否说明,必须要把官方APP程序先用JLINK烧写到单片机,以把FLASH里的数据写好,再用jlink下载BOOTLOADER程序到单片机后(两个程序先下载哪个有没有要求),然后才能通过上位机从CAN总线更新程序?
|