Использование OpenOCD для определения использования оперативной памяти в микроконтроллере (ARM Cortex-M3) - PullRequest
0 голосов
/ 20 февраля 2020

Я бы хотел посмотреть, сколько ОЗУ использует прошивка, написав известный шаблон и сравнив содержимое ОЗУ, чтобы увидеть, сколько было изменено.

Я пробовал

reset halt
load_image pattern.bin 0xaddress
resume
(let target run for a bit)
halt
dump_image sram.bin 0xaddress 0xsize

но, похоже, я получил содержимое fla sh и нигде не вижу тестовый шаблон. Я использую правильные команды? Если я «проверяю» вручную путем загрузки и выгрузки, данные идентичны. Может ли halt повлиять на содержимое ОЗУ? В противном случае, можно ли предположить, что приложение фактически инициализирует всю оперативную память, что делает анализ трудным / невозможным?

Следует отметить, что у меня есть только "дамп" прошивки, т.е. я его не собираю.

1 Ответ

0 голосов
/ 20 февраля 2020

Мне пришлось сделать soft_reset_halt, чтобы получить P C по адресу вектора сброса. Моя версия OpenOCD предупреждает меня, что команда устарела. Затем я смог обнаружить несколько появлений моего тестового шаблона в дампе ОЗУ. Кроме того, существуют заметные различия между образом ОЗУ и микропрограммой, поэтому кажется, что микропрограмма действительно использует большую часть ОЗУ.

(это может не быть проблемой, если ваш интерфейс использует линию физического сброса ?)

...