Arduino: как отлаживать шестнадцатеричный файл в AVR Studio

При компиляции скетча Arduino создается файл .hex (хранящийся во временной папке). Когда я открываю этот файл в AVR Studio 4.18, он пытается запуститься в месте, где нет кода. Что мне делать, чтобы иметь возможность отлаживать эти шестнадцатеричные файлы Arduino в симуляторе AVR Studio?


person Mot    schedule 17.06.2011    source источник


Ответы (3)


Хм, хорошо работает, когда я выбираю Симулятор 2 ...

person Mot    schedule 07.07.2011

Вы не можете, вам понадобятся объектные файлы. Если вы хотите использовать симулятор AVR, вам придется написать свой код на C или сборке и собрать его в студии AVR с помощью компилятора GCC или его эквивалента.

person Karim    schedule 27.06.2011
comment
Как вы думаете, почему я не могу отлаживать чистый шестнадцатеричный контент? Мне не нужно смотреть исходный код, мне хватило бы дизассемблированного вывода. - person Mot; 28.06.2011

Поищите man-страницы для avr-objdump и hex2bin от atmel. Это должно позволить вам разобрать файл программы, чтобы сгенерировать то, что вам может понадобиться для симулятора.

Ознакомьтесь с этой темой, в ней объясняется разница между объектным кодом и машинным кодом: Ассемблерный код против машинного кода против объектного кода?

Короче говоря, ваш шестнадцатеричный файл - это необработанный машинный код: коды операций, аргументы, строки и т. Д., То есть части данных, кода и текста, и все они смешаны вместе и для удобства закодированы в шестнадцатеричном коде. Файл программы легче читать в шестнадцатеричном формате, чем в двоичном формате :)

РЕДАКТИРОВАТЬ:

Насколько я помню (прошло много лет с тех пор, как я использовал AVR Studio), вы можете загрузить шестнадцатеричный файл в AVR Studio и создать дизассемблер. Затем скопируйте / вставьте это в файл .asm и сгенерируйте объектные файлы - если это действительно то, что вам нужно.

На этой странице есть информация о AVR Studio и генерации дизассемблера: http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=50456&start=0

person Morten Jensen    schedule 21.05.2012