Раз в несколько дней портится глобальный буфер на границе кучи
Прошивка без RTOS на Cortex-M4 без настроенного MPU. Изредка портятся последние байты буфера rx_ring, который по map-файлу лежит в самом конце .bss, прямо перед кучей и стеком. Сбой коррелирует с приходом редкой команды, которая вызывает рекурсивный разбор вложенного JSON. HardFault не возникает.
Как подтвердить гипотезу и защититься?
- Закрасить стек шаблоном и защитить границу MPU
- Сделать буфер rx_ring volatile
- Перенести rx_ring на стек функции разбора
- Включить оптимизацию -O3 для уменьшения стека
