Вступить в клуб →
сложнаявопросПрошивка: память, загрузчик и надёжность

Раз в несколько дней портится глобальный буфер на границе кучи

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

Как подтвердить гипотезу и защититься?

  • Закрасить стек шаблоном и защитить границу MPU
  • Сделать буфер rx_ring volatile
  • Перенести rx_ring на стек функции разбора
  • Включить оптимизацию -O3 для уменьшения стека

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела