Я знаю, что это старый пост, но недавно я столкнулся с подобной проблемой и не нашел очень полного ответа в Интернете. Я потерял свой проект MPLAB X IDE из-за отказа жесткого диска, к счастью, я уже запрограммировал устройство с рабочей версией кода.
Восстановление .hex
Выполните следующие действия, чтобы восстановить информацию .hex с запрограммированного устройства:
Используйте MPLAB X IDE и ваш программатор PIC (я использовал PICkit3), чтобы прочитать файл .hex с запрограммированного устройства:
- Начните новый проект для вашего устройства.
- В свойствах проекта выберите вашего программиста.
- Щелкните правой кнопкой мыши папку проекта и выберите «Установить как основной проект».
- Щелкните стрелку рядом с основным проектом «Чтение памяти устройства» и выберите «Чтение памяти устройства в файл». Чтение памяти устройства в файл .hex
Дизассемблировать .hex
Вы можете просмотреть дизассемблированный файл в MPLAB X IDE, но вы не можете редактировать или сохранить его (или, по крайней мере, я не мог понять, как это сделать), и он очень загадочный. Я нашел самый простой, без каких-либо условий, дизассемблер, который упакован с gputils, он называется gpdasm. Чтобы загрузить и установить, посетите страницу gputils здесь:
https://gputils.sourceforge.io/
Теперь откройте командную строку и перейдите в папку, в которой находится ваш файл .hex. Создайте исходный файл сборки из .hex с помощью следующей команды:
gpdasm -p p16f84a -csno hexfile.hex > asmfile.dis
С опциями -c -s -n и -o получается довольно хороший листинг, который очень близок к тому, чтобы его можно было собрать как есть. Очевидно, что имена переменных и метки не могут быть восстановлены, но, по крайней мере, идентифицируются подпрограммы, что значительно упрощает задачу. Надеюсь, это поможет кому-то в будущем.
person
bjoubert89
schedule
12.12.2020