При компиляции скетча Arduino создается файл .hex
(хранящийся во временной папке). Когда я открываю этот файл в AVR Studio 4.18, он пытается запуститься в месте, где нет кода. Что мне делать, чтобы иметь возможность отлаживать эти шестнадцатеричные файлы Arduino в симуляторе AVR Studio?
Arduino: как отлаживать шестнадцатеричный файл в AVR Studio
Ответы (3)
Хм, хорошо работает, когда я выбираю Симулятор 2 ...
Вы не можете, вам понадобятся объектные файлы. Если вы хотите использовать симулятор AVR, вам придется написать свой код на C или сборке и собрать его в студии AVR с помощью компилятора GCC или его эквивалента.
Поищите 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