Дизассемблирование скетча ардуино
- Войдите на сайт для отправки комментариев
Пт, 28/06/2013 - 10:43
Добрый день!
По теме подскажите, есть какой-либо удобный способ?
Мне нужно написать компактный код, поэтому постоянно смотрю, что на выходе делает компилятор. Но после каждой компиляции открывать IDA Pro и прогонять через нее HEX долго.
Есть способ попроще?
ну если цель стоит написать компактный код, наверно самый простой вариант сразу писать на асемблере.. и не париться или я чего не понимаю?
Если бы нужно было написать на 8051 ассемблере, то я так и поступил бы. А вот с системой команд AVR, регистрами и т.д. я мало знаком для написания на ассемблере. Мне сейчас важнее читать ассемблер, смотреть как компилятор распоряжается кодом.
В принципе я выход нашел, перешел на Atmel Studio, она генерирует то, что нужно. Вот только VisualMicro отвалилась будь она неладна.
ху из компактный код? и почему он должен быть компактнее после просмотра в симуляторе? если вы пишите на си, то какими методами вы его делаете компактным?
да и вообще как можно писать компактный код, если вы исходный никак не ужмете, незная родного асма...или вы щитаете по количеству операторов в коде :)
Про симулятор я ничего не писал.
ну почему же не ужму исходник, уже ужал. Мне выгадать осталось байт 50-80 с килобайтного скетча. Ассемблер AVR я не хнаю настолько хорошо, чтобы писать на нем, понять что компилятор выдает на выходе и почему могу. Как пример, компилятор добавил сохранение 10 регистров при входе в loop, это лишнее, добавил аттрибут naked и т.д.
Плюс перегруппировав команды при инициализации портов выгадал еще 30 байт.
Есть hex, написанный для atmel247 tiny13 (написанный не мной), можно ли как то его декомпилировать, что бы увидеть саму программу.
Есть hex, написанный для atmel247 tiny13 (написанный не мной), можно ли как то его декомпилировать, что бы увидеть саму программу.
все что вы можете сделать так это превратить hex в набор читаемых инструкций на ассемблере