Release v1.27: Аудит надёжности и исправления стабильности
Версия v1.27 (23.03.25)
Критические исправления
- Flash write из ISR - отложенная запись в main loop
- sensor_type - восстанавливается из Flash после чтения
Высокая важность
- volatile для shared переменных (display_state, sensor_type и др.)
- I2C - таймаут 100 ms вместо бесконечного
- Flash - CRC+magic, валидация при чтении
- cleanup() - идемпотентность
- sprintf - snprintf
- GUI - перенос screen_update из TIM6 ISR в main loop
Средняя важность
- default в switch(display_state), handle_input_buttons NULL check
- SPI abort при таймауте, HAL_UART_Transmit проверка
Низкая важность
- max_digits ≤ 4, menu_enter NULL check, strncat fix, WFI timeout
Версионирование
- FW_VERSION_NUM - единый источник в gui_dynamic_vars.h
- .cursor/rules/firmware-version.mdc
Подробнее: CHANGELOG_v1.27.md