Обновить логгер УМП и исправить запуск UART и EEPROM

Перейти на компактные 12-словные записи v4 и сохранять 10 процентов банка после отключения. Добавить трёхсекундное ожидание роста ЗПТ и настраиваемый лимит пусков. Явно инициализировать состояние UART и гарантировать публикацию параметров EEPROM перед запуском Timer2. Сохранить воспроизводимые сборки, регрессионные проверки, документацию и обновлённые результаты сборки; исключить временные артефакты.
This commit is contained in:
2026-10-12 12:25:41 +03:00
parent f741741cf8
commit 1e911e5250
38 changed files with 2089 additions and 1485 deletions
+15
View File
@@ -63,6 +63,21 @@ routes = can_globals + "\n" + "".join(function(message, name) for name in
("modbus_exception", "receive_ump", "ReceiveCommandModbus3", "ReceiveCommandModbus6"))
# Задаёт routes + по выражению справа; значение используется последующими операциями.
routes += function(ecan, "UMP_CAN_service")
# Берёт три записи штатного CAN из рабочего обработчика, чтобы проверки не копировали его условия.
slots_start = ecan.index("\tfor (slot = 0; slot < 3; slot++, adr++, mask <<= 1)")
# Завершает фрагмент перед журналированием; оно не влияет на доступность технологических регистров.
slots_end = ecan.index("/* Фиксируем применённую команду", slots_start)
# Обёртка задаёт только поля кадра; проверки доступа остаются извлечённым рабочим кодом.
routes += """/* Проверяет рабочие записи CAN без аппаратных mailbox и обработки остальных событий ISR. */
static void native_can_slots(unsigned int adr, unsigned int mask, int a, int b, int c) {
/* Индекс выбирает одно из трёх слов; маска достоверности передана вызывающим тестом в аргументе mask. */
unsigned int slot;
/* Передаёт исходные слова рабочим условиям записи регистра. */
int Data[3] = {a, b, c};
"""
# Добавляет неизменённый фрагмент Handlai и закрывает обёртку с пояснением назначения блока.
routes += ecan[slots_start:slots_end] + "/* Завершает записи трёх слов штатного CAN-кадра. */\n}\n"
# Открывает управляемый ресурс tempfile.TemporaryDirectory(prefix="gas167-test-") as tmp с автоматическим освобождением.
with tempfile.TemporaryDirectory(prefix="gas167-test-") as tmp:
# Задаёт directory по выражению справа; значение используется последующими операциями.