Обеспечь единый процесс обновления для STM32F103/F407/G474 и TMS320F2812/F28335: discovery, служебные ответы, BUSY, тайм-аут сессии и подтверждение приложения. Добавь самостоятельные проекты CCS, аппаратные хранилища и Python-клиент. Совместимость: структуры конфигурации и порта расширены, поэтому потребители должны пересобраться и обнулить новые поля. Для C28x callbacks используют pcan_boot_byte_t; периодический pcan_boot_poll обслуживает discovery и настроенный тайм-аут.
11 lines
1.4 KiB
C
11 lines
1.4 KiB
C
#ifndef PCAN_BOOT_STM32_H /* Защищает общие объявления двух STM32-портов от повторного включения. */
|
|
#define PCAN_BOOT_STM32_H /* Фиксирует включение интерфейса single-slot загрузчика. */
|
|
#include "../../include/pcan_boot.h" /* Использует актуальные именованные поля конфигурации и callbacks ядра. */
|
|
typedef struct { /* Состояние принадлежит одному загрузчику и одному выделенному bxCAN. */
|
|
pcan_boot_t boot; /* Хранит сессию, manifest, CRC потока и состояние общего автомата. */
|
|
void *can; /* Ссылается на CAN_HandleTypeDef bxCAN либо FDCAN_HandleTypeDef G474; время жизни задаёт проект. */
|
|
uint32_t written; /* Следующее допустимое смещение записи, в байтах от начала приложения. */
|
|
bool ready; /* Разрешает reset только после проверки Flash и успешного COMMIT текущего образа. */
|
|
} pcan_boot_stm32_t; /* Не содержит startup, main или обработчиков прерываний проекта. */
|
|
#endif /* Завершает общий интерфейс STM32F103/F407. */
|