就是没做过串口升级呀。。。以前都是用调试器升级程序,串口的只用过STMISP,都不知道从那下手。
我看了OTA的boot.eww,main函数就一个while循环,是不是说循环检测两个crc,一个是升级包的crc另一个是旧程序的?有点蒙
- while (1)
- {
- HalFlashRead(HAL_OTA_CRC_ADDR / HAL_FLASH_PAGE_SIZE,
- HAL_OTA_CRC_ADDR % HAL_FLASH_PAGE_SIZE,
- (uint8 *)&OTA_crcControl, sizeof(OTA_crcControl));
- if (OTA_crcControl.crc[0] == OTA_crcControl.crc[1])
- {
- break;
- }
- else if ((OTA_crcControl.crc[0] != 0) && (OTA_crcControl.crc[0] == crcCalc()))
- {
- OTA_crcControl.crc[1] = OTA_crcControl.crc[0];
- HalFlashWrite((HAL_OTA_CRC_ADDR / HAL_FLASH_WORD_SIZE), (uint8 *)OTA_crcControl.crc, 1);
- }
- else
- {
- dl2rc();
- }
- }
|