Считывание шестнадцатеричного файла микрочипа

#pic #microchip

Вопрос:

Я унаследовал шестнадцатеричный файл для дизайна рисунка, который содержит программирование для USB — устройства. Есть ли способ открыть его, чтобы точно узнать, что он означает и как он работает? т. Е. Что-то за пределами необработанных шестнадцатеричных цифр.

Полный новичок здесь — есть ли руководство по документации? Является ли PIC собственным языком? Это показывает, что раздел » Код » обычно является первым пунктом: https://www.kanda.com/blog/microcontrollers/pic-microcontrollers/pic-hex-file-format/. Является ли раздел кода удобочитаемым для человека?

Вот первые несколько строк одного из шестнадцатеричных файлов:

 :020000040000FA
:06000000D8EF17F012001A
:020006001200E6
:0600080025EF14F01200C8
:02000E000004EC
:02001000FFFFF0
:0400120000000000EA
:0600180070EF14F012006D
:02001E000500DB
:1000200073300000DC000000210000001F300000E1
:100030006000000054000000120000001E050000D7
:10004000040000000C30000000000000130000005D
:0C0050000E00000035000000040000005D
:04005C000F0E9212DF
:10006000070E9412968093680150030B136E010ED5
:10007000135204E0E846FE0B1306FCE1E81C0F0BEC
:100080008C6E956A841C010B800DF3CF14F0821CDA
:10009000070B100DF3CF13F0801C0F0B131014106F
:1000A000126E12380F0B070B100DF3CFDCF0020E9F
:1000B000E66E4EEC17F0E552086E08500F0802E2AB
:1000C0000F0E086E0950085C02E20950086EFDEC44
:1000D0000AF00F0E1214010F156E0A0E166E16C0DE
:1000E00031F015C02CF0E6EC17F02C50136E146AAA
:1000F000135000019213145093130F0E1214010F9A
 

Комментарии:

1. Формат шестнадцатеричного файла был фактически изобретен Intel и иногда называется форматом шестнадцатеричного файла Intel (хотя большинство людей называют его просто шестнадцатеричным файлом, хотя раньше существовали другие несовместимые форматы шестнадцатеричных файлов). Вы можете найти довольно хорошее описание в Википедии: en.wikipedia.org/wiki/Intel_HEX

2. Что касается содержимого шестнадцатеричного файла, вам необходимо знать, для какого процессора предназначена эта программа. Затем вы можете скачать таблицу данных для процессора и узнать кодировку инструкций

3. Например, если процессор является PIC18F2682, то загрузите таблицу данных: ww1.microchip.com/downloads/en/devicedoc/39761b.pdf и перейдите на страницу 368, чтобы узнать, как закодированы инструкции. Затем вам нужно расшифровать инструкции в шестнадцатеричном файле в сборку PIC18. Обратите внимание, что существует несколько различных семейств фотографий, поэтому вам нужно загрузить правильную таблицу данных — вам нужно знать, для какого процессора была написана эта программа

4. Это не задача для новичка, вас в основном просят разобрать программу на ассемблере — это похоже на то, как если бы кто-то дал вам Microsoft Word и хотел, чтобы вы создали его исходный код. Но это выполнимо для новичка. Я сделал это однажды давным-давно (лет 20 или около того) в начале своей карьеры внештатного сотрудника. Код, который я получил, был намного длиннее этого, поэтому я закончил тем, что написал свой собственный простой дизассемблер, чтобы примерно сгенерировать сборку, а затем изучил сборку, чтобы вставить комментарии по мере необходимости

5. Спасибо за комментарии. Я попытаюсь найти, какой процессор используется.

Ответ №1:

На самом деле шестнадцатеричный формат по умолчанию в MPLAB X IDE-это Microchip INHX32 HEX-record Format больше о: https://www.lucidtechnologies.info/inhx32.htm. Вы можете изменить формат файла в настройках проекта.

Однако есть возможность вызвать Microchip *.hex файл в MPLAB X IDE. Это руководство действительно для MPLAB X IDE v5.35.

1)Выберите в главном меню File/Import/Hex

2)Нажмите Browse кнопку и выберите нужный *.hex файл.

3)Выберите понравившийся инструмент отладчика Simulator и нажмите Next кнопку.

4)Нажмите Finish кнопку.

5)В дереве проектов вы найдете новый Project с тем же именем, что и импортированный шестнадцатеричный файл.

6)Нажмите правой кнопкой мыши на название проекта и выберите Set as main project

7)Выберите в главном меню Production и выберите Set Configurations Bits

8)Откроется новая вкладка «Биты конфигураций». В нижней части окна нажмите на Memory и выберите Program memory и установите Format значение Code !

9)Теперь вы можете видеть разобранный код, например:

введите описание изображения здесь