Сохранить состояние TESTLAMP при кратких провалах входа и исключить повторный вход Timer1 во время передачи индикации. Явно сбрасывать служебный обмен CAN при запуске и выбирать соседнюю фазу по локальному индексу канала АЦП. Сохранить текущую последовательность DATA/CLK и проверочные варианты таймингов, добавить поведенческие тесты и обновить образ прошивки с картой памяти.
49 lines
4.2 KiB
Plaintext
49 lines
4.2 KiB
Plaintext
Бальзам-167: проверочная прошивка с исправлением TESTLAMP
|
||
Сборка: 13.10.2026, 11:00:35 (Москва, UTC+3).
|
||
|
||
Готовый образ:
|
||
UKSSTMS320F28335_testlamp_fix_fa20ed0+.bin
|
||
Размер: 32272 байта. Запас до параметров AT25256B: 236 байт.
|
||
SHA-256: bfe4c3c9b55bb5022f38f254929f893e5eaab57ef3d3fa31771a6b6f97f877a4
|
||
Паспорт: UKSSTMS320F28335_testlamp_fix_fa20ed0+.bin.manifest.json
|
||
Архив этой сборки: fa20ed08+_2026-10-13_11-00-35_UTC+3.
|
||
|
||
Исправления:
|
||
1. В get_Buttons для dsk_EPLT накопительный фильтр получает предыдущее
|
||
значение bTestLamp вместо постоянного нуля. Раньше даже один низкий
|
||
отсчёт GPIO26 при удержании кнопки сразу отключал тест, а следующий
|
||
высокий отсчёт мог снова его включить. Это переключало пакеты ламп
|
||
и семисегментных индикаторов между рабочим и тестовым режимами.
|
||
Порог 1000 по-прежнему измеряется опросами главного цикла.
|
||
2. cpu_timer1_isr_PULT ограничивает IER маской MINT13 и исключает собственный
|
||
Timer1 (INT13). Прежнее IER |= MINT13 включало дополнительные источники
|
||
вместо ограничения приоритетов и могло разрешить повторный вход Timer1.
|
||
Вложенная передача больше не может перемешать DATA/CLK, счётчик каналов
|
||
и фазу яркости. В машинном коде перед EINT проверено AND IER, #0x0139.
|
||
|
||
Штатная тестовая последовательность what_is сохранена: цифры меняются
|
||
и тестовая маска ламп переключается каждые 500 тактов Timer1 (0,5 секунды).
|
||
Это исправление относится к частому нерегулярному мерцанию поверх теста.
|
||
Порядок уровней и задержек SENDBIT/RESET взят из текущего kanal.c проекта;
|
||
для этой сборки он не изменялся. В образ вошли уже имевшиеся правки
|
||
ecan.c, measure.c и kanal.c.
|
||
|
||
Проверено:
|
||
- настоящие get_Buttons, er_anal, what_is и обработчик пульта в хостовой
|
||
модели при O3; короткие провалы входа при удержании TESTLAMP;
|
||
- тестовые пакеты ламп и цифр при уже включённой рабочей лампе;
|
||
- отсутствие повторного входа ISR, отпускание и удалённая команда теста;
|
||
- сохранение обычного PWM: шесть включённых тактов из десяти;
|
||
- возвращение каждой старой ошибки отдельно вызывает провал теста;
|
||
- полная компиляция и линковка TI C2000 22.6.0.LTS, O3, COFF, FPU32;
|
||
- SCI8, четыре RAM-блока, границы AT25256B и совпадение BIN с кандидатом;
|
||
- UTF-8 и русские пояснения к изменённому и добавленному коду.
|
||
|
||
Повторная проверка: python tests/testlamp/run_test.py
|
||
Повторная сборка: python Bin/TestLampFix/rebuild.py
|
||
|
||
На физической плате эта прошивка пока не проверена. Для проверки повторить
|
||
сценарий пользователя: включённые рабочие лампы, нажатие и удержание TESTLAMP,
|
||
затем отпускание. Штатные изменения теста раз в 0,5 секунды сохраняются;
|
||
быстрых переключений между тестовыми и рабочими показаниями быть не должно.
|