Перейти к содержанию
    

Сохранить значения symbolic memory в файл, как ?

Добрый день подскажите, можно ли сохранить из под отладки все значения переменных в symbolic memory, нашел сохранение диапазона адресов в hex файл, но это не визуально.

Дело в том что пытаюсь найти баг, который через несколько суток, перетирает структуру (константные значения тоже перетираются левыми значениями), так вот сделал выдачу по запросам несколько перименных по usart, но это как то медленно происходит,  хочу сразу увидеть что случилось, с озу и откуда началось перетирание.  Появилась идея после "зависона" ПО подключиться к нему через отладчик, но  остановиться в векторе прерывания reset, и от туда считать ОЗУ и тд. Но вот сохранить всю память как она отображается в symbolic memory как-то не нашел.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 минут назад, pokk сказал:

Добрый день подскажите, можно ли сохранить из под отладки все значения переменных в symbolic memory, нашел сохранение диапазона адресов в hex файл, но это не визуально.

А что "не визуально"? Что это значит?  :umnik2:

11 минут назад, pokk сказал:

хочу сразу увидеть что случилось, с озу и откуда началось перетирание.

Поставьте watchpoint на изменение интересующей ячейки памяти. И увидите сразу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, jcxz said:

Поставьте watchpoint на изменение интересующей ячейки памяти. И увидите сразу.

Ошибка происходит через сутки и больше под отладкой столько не просидит(частенько слетает отладочный режим от любого включение бп) + основной комп на ночь обесточивается, а плата гоняется в другой комнате, где есть постоянное сетевое напряжение.    

5 hours ago, jcxz said:

А что "не визуально"? Что это значит?  :umnik2:

Ну голый dump памяти сложно анализировать..., когда тебе надо посмотреть значение кучу массивов и структур, а у тебя только адреса... как-то не очень вручную зависимости искать (примеренная -> адрес).  Хотя уже сейчас есть идея, считать все ОЗУ, а потом на другой плате  через отладчик обратно заполнять ОЗУ и анализировать через memory, symbolic memory сколько угодно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 минут назад, pokk сказал:

Ошибка происходит через сутки и больше под отладкой столько не просидит(частенько слетает отладочный режим от любого включение бп) + основной комп на ночь обесточивается, а плата гоняется в другой комнате, где есть постоянное сетевое напряжение.

Можно запустить высокочастотное периодическое прерывание (скажем 1 МГц или выше - в зависимости от тактовой CPU) и в его ISR контролировать проблемные адреса. При обнаружении модификации - сбрасывать куда-нить дамп регистров и верхушку текущего стека. Чем выше частота - тем точнее будет определена точка модификации. Я сам уже не одну проблему с разрушением памяти таким способом нашёл.

Ещё вариант (если есть MPU): закрыть проблемные адреса от записи через MPU, приоткрывая защиту только на время штатных записей и ловя fault при попытке левых записей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...