Комментарии 11
А при сбросе память обнуляется? Я к тому, что нельзя ли все то же самое в начале программы делать, чтобы даже по вотчдогу дамп сохранялся?
+2
Хм, а вот это очень интересный вопрос!
Действительно, у меня кольцевой буфер лога в ОЗУ, которая не обнуляется при старте. Точнее, инициализируется нулем размер занятой памяти, но сами данные в буфере не затираются. И если была перезагрузка по настоящему сторожевому, то можно попытаться проанализировать оставшиеся данные в буфере!!!
Большое спасибо за идею!
Действительно, у меня кольцевой буфер лога в ОЗУ, которая не обнуляется при старте. Точнее, инициализируется нулем размер занятой памяти, но сами данные в буфере не затираются. И если была перезагрузка по настоящему сторожевому, то можно попытаться проанализировать оставшиеся данные в буфере!!!
Большое спасибо за идею!
0
При сбросе память не обнуляется, её обнуляют, если можно так сказать, функции инициализации из crt0.o, если конечно вы не сами это реализуете, а если сами, то и проблем нет перечитать при старте всю оперативу или записать во флэш до момента её инициализации.
+1
Спасибо за статью. Тема интересная, но времени нет самому поэкспериментировать. Нашёл весьма интересный материал по дальнейшему развитию:
embeddedartistry.com/blog/2021/01/18/is-memfault-the-future-of-fault-debugging-we-think-so
По сути, готовое решение для сбора, отправки и исследования дампов.
embeddedartistry.com/blog/2021/01/18/is-memfault-the-future-of-fault-debugging-we-think-so
По сути, готовое решение для сбора, отправки и исследования дампов.
+1
Как вариант, дамп можно еще в цикле выводить в SWO. К контролеру при этом подключаться программатором в hot plug режиме без сброса. Такой варинт хорош, если без вочдога работать.
+1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Создание аналога посмертного сore dump для микроконтроллера