Добавить защищённое обновление приложения через RS и CAN с сохранением загрузчика, проверкой CRC, восстановлением передачи и защитой EEPROM. Подключить общий процесс сборки C2000 и автоматический счётчик версии для согласованных RAM, Flash, CAN и паспортов бинарных образов. Уточнить запуск ЦАП, обработку измерений и параметров нагрузки, начальную индикацию и документацию регистров GAS. Дополнить модели аппаратуры и изолировать заголовки CAN в тестах. Проверка: 26 тестов выпуска, 4 теста восстановления CAN и восемь программных моделей CAN, Flash, EEPROM, ЦАП, параметров и TESTLAMP.
36 lines
3.4 KiB
C
36 lines
3.4 KiB
C
/* Выход ЦАП и автомат защиты нагрузки с проверкой напряжения и свежести CAN. Русские пояснения сохранены в UTF-8. */
|
|
/* В такте Timer1 проверяет команды, напряжение и давность CAN; управляет STOP, повторным пуском и током ЦАП. */
|
|
void Load_runner(void);
|
|
/* Объявляет интерфейс функции Anal_output; реализация вызывается через этот прототип. */
|
|
void Anal_output(long vrot, long maxx);
|
|
/* Объявляет интерфейс функции Init_DAC; реализация вызывается через этот прототип. */
|
|
void Init_DAC(void);
|
|
/* Вычисляет такты ЦАП; для недопустимого сохранённого тайм-аута CAN возвращает 600 мс. */
|
|
void Setup_DAC_time(void);
|
|
|
|
/* Счётчик пускового импульса и выдержки инициализации доступны логгеру. */
|
|
/* Объявляет IMPowse — данные IMPowse; WAKEpowse — данные WAKEpowse. Память определена в другом модуле. */
|
|
extern unsigned long IMPowse, WAKEpowse;
|
|
/* Объявляет period_dac — период ЦАП; time_dac — time ЦАП. Память определена в другом модуле. */
|
|
extern unsigned int period_dac, time_dac;
|
|
|
|
/* Call once before IRQ; complete technological CAN packets update voltage. */
|
|
/* Сбрасывает все переменные автомата нагрузки до разрешения прерываний; COFF не обнуляет всю .ebss. */
|
|
void Load_control_init(void);
|
|
#if defined(FLASH_BOOT) /* Только Flash-загрузчик использует проверку штатного безопасного состояния нагрузки. */
|
|
int Load_flash_safe(void); /* При запрещённых IRQ требует завершённый STOP, снятые команды и отправленный текущий код 4 мА; не выполняет аварийных записей GPIO. */
|
|
#endif /* RAM-вариант сохраняет прежний набор обработчиков и размер кода. */
|
|
/* Принимает напряжение выбранной нагрузки из достоверных слов CAN и сбрасывает возраст только нужного измерения. */
|
|
void Load_voltage_can(unsigned int header, unsigned int a,
|
|
/* Объявляет b — данные b. */
|
|
unsigned int b, unsigned int c);
|
|
|
|
/* 0x1300/8 words: signature, version, simulation, timeout, status, attempts,
|
|
* voltage, age. Only 0x1302 (simulation) and 0x1303 (timeout) are writable. */
|
|
/* Фиксирует управляющие входы перед выполнением автомата защиты нагрузки. */
|
|
unsigned int Load_protection_prepare(unsigned int function, unsigned int address,
|
|
/* Объявляет value — данные value; out — данные out. Хранит указатель на данные. */
|
|
unsigned int value, unsigned int *out, unsigned int *error);
|
|
|
|
void Load_boot_stop(void); /* Удерживает штатный STOP и 4 мА до перехода из main в отдельный CAN-загрузчик M95M02. */
|