сравнить два шестнадцатеричных файла

Мне нужно проверить, совпадает ли код, записанный на какой-нибудь плате Arduino, с моим. Я знаю, как получить hex-файл из Arduino. Мой вопрос: что влияет на hex-код? Тип платы? Тип микропроцессора? Версия avrdude? Что-нибудь еще?

, 👍0


1 ответ


Лучший ответ:

0

Строки в типичном шестнадцатеричном файле включают VLI (индикатор переменной длины). Выходные шестнадцатеричные файлы из IDE могут иметь другую длину, чем те, которые создает avrdude. Вот простой пример:

Файл 1:

03ABC
03DEF

Файл 2:

06ABCDEF

Эти файлы будут по-разному сравниваться друг с другом, но передавать одну и ту же информацию, по-разному разделенную между строками.

Чтобы провести подлинное сравнение, вам придется это учитывать.

Тип платы?

Разные платы, но с одинаковым процессором, могут иметь идентичные файлы.

Тип микропроцессора?

Разные процессоры почти наверняка будут иметь разные шестнадцатеричные файлы.

версия avrdude?

Вероятно, нет, однако см. мои комментарии выше о VLI.

что-нибудь еще?

Как я уже сказал, компилятор может генерировать строки с (скажем) 16 байтами на строку, но avrdude может считывать строки с 32 байтами на строку. Таким образом, они будут выглядеть по-разному, но передавать те же шестнадцатеричные коды, если вы это разрешите.

,