Comments 11
А при сбросе память обнуляется? Я к тому, что нельзя ли все то же самое в начале программы делать, чтобы даже по вотчдогу дамп сохранялся?
Хм, а вот это очень интересный вопрос!
Действительно, у меня кольцевой буфер лога в ОЗУ, которая не обнуляется при старте. Точнее, инициализируется нулем размер занятой памяти, но сами данные в буфере не затираются. И если была перезагрузка по настоящему сторожевому, то можно попытаться проанализировать оставшиеся данные в буфере!!!
Большое спасибо за идею!
Действительно, у меня кольцевой буфер лога в ОЗУ, которая не обнуляется при старте. Точнее, инициализируется нулем размер занятой памяти, но сами данные в буфере не затираются. И если была перезагрузка по настоящему сторожевому, то можно попытаться проанализировать оставшиеся данные в буфере!!!
Большое спасибо за идею!
При сбросе память не обнуляется, её обнуляют, если можно так сказать, функции инициализации из crt0.o, если конечно вы не сами это реализуете, а если сами, то и проблем нет перечитать при старте всю оперативу или записать во флэш до момента её инициализации.
Спасибо за статью. Тема интересная, но времени нет самому поэкспериментировать. Нашёл весьма интересный материал по дальнейшему развитию:
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
По сути, готовое решение для сбора, отправки и исследования дампов.
Как вариант, дамп можно еще в цикле выводить в SWO. К контролеру при этом подключаться программатором в hot plug режиме без сброса. Такой варинт хорош, если без вочдога работать.
Sign up to leave a comment.
Создание аналога посмертного сore dump для микроконтроллера