Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Дисассемблер команд AVR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
sergeyip
Здравствуйте Орлы. Нет ли у ког нибудь Дисассемлера команд AVR. Или ссылка в сети. Очень уж не хочется писать его самому smile.gif
Igor26
Цитата(sergeyip @ Nov 24 2006, 16:44) *
Здравствуйте Орлы. Нет ли у ког нибудь Дисассемлера команд AVR. Или ссылка в сети. Очень уж не хочется писать его самому smile.gif

http://www.atmel.ru/Software/Software.htm
Посмотрите здесь. Сам не пробовал.
http://www.atmel.ru/Software/Software.htm
Petka
Цитата(sergeyip @ Nov 24 2006, 16:44) *
Здравствуйте Орлы. Нет ли у ког нибудь Дисассемлера команд AVR. Или ссылка в сети. Очень уж не хочется писать его самому smile.gif


IDA pro. Вещь!
Nanobyte
Здесь, на форуме, уже несколько раз обсуждались дисассемблеры. Поиск даёт кучу результатов.
http://electronix.ru/forum/index.php?act=S...%EC%E1%EB%E5%F0
muravei
А, разве, АВР Студия не дизассемблирует?
Alex_Pol
Цитата(muravei @ Nov 27 2006, 19:35) *
А, разве, АВР Студия не дизассемблирует?
Вот именно. На мой взгляд самый вменяемый дизассемблер.
Семён
Цитата(Alex_Pol @ Nov 28 2006, 10:34) *
Цитата(muravei @ Nov 27 2006, 19:35) *

А, разве, АВР Студия не дизассемблирует?
Вот именно. На мой взгляд самый вменяемый дизассемблер.

ИМХО: Не спорю дизассемблер неплохой в качестве посмотреть, как работает код. Но если детально захотите разобраться с программой функций явно не хватает. Например, автоматическое изменение всех меток из представления «метка 0005», на осмысленный вид «View_menu»
Wild007
[/quote]
ИМХО: Не спорю дизассемблер неплохой в качестве посмотреть, как работает код. Но если детально захотите разобраться с программой функций явно не хватает. Например, автоматическое изменение всех меток из представления «метка 0005», на осмысленный вид «View_menu»
[/quote]
Ну автоматическое -- это вы уже загнули. Для таких замен можно воспользоваться любым текстовым редактором или MS WORD smile.gif
Семён
Цитата(Wild007 @ Nov 28 2006, 12:18) *
Ну автоматическое -- это вы уже загнули. Для таких замен можно воспользоваться любым текстовым редактором или MS WORD smile.gif

Не всегда удобно скакать из одной программы в другую программу. Когда основной критерий время доработки чужой программы (да еще без наличия исходников)
IgorKossak
Цитата(Семён @ Nov 28 2006, 11:34) *
Цитата(Wild007 @ Nov 28 2006, 12:18) *

Ну автоматическое -- это вы уже загнули. Для таких замен можно воспользоваться любым текстовым редактором или MS WORD smile.gif

Не всегда удобно скакать из одной программы в другую программу. Когда основной критерий время доработки чужой программы (да еще без наличия исходников)

Почти автоматически замена символьных имён меток делается в IDA.
sergeyip
Большое спасибо мужики, мне этого достаточно. Успехов Вам и всех благ smile.gif
Tcom
В AVR Studio есть встроенный диз асемблер.
Просто открой студией код который в HEX формате и увидеш диз. ас. код!
Удачи!
sally
Цитата(Petka @ Nov 26 2006, 20:12) *
IDA pro. Вещь!

Вы пробовали дизассеблировать в IDA Pro код для какой нибудь ATmega(конкретно ATmega 16)?
У меня что то не выходит,выдает такую фигню,близко не совпадает с исходником,начиная с векторов прерываний!Может что то я не так делаю,может в IDA нужно где то галочки поставить или снять?
Заранее благодарен!
Rst7
Цитата
может в IDA нужно где то галочки поставить или снять?


Галочки? Тьфу! Там для вменяемого результата скрипты надо писать. Чтобы, например, обрабатывало LDI Rx,LOW(adr) или HIGH(adr). Кроме того, надо эмулировать разные адресные пространства на линейной модели. Тогда можно на что-то надеяться. Будет типа такого
Код
ROM:1627 E140                      ldi     r20, (16) & 0xFF
ROM:1628 E050                      ldi     r21, (16) >> 8
ROM:1629 E860                      ldi     r22, (byte_300180 & 0xFF)
ROM:162A E071                      ldi     r23, (byte_300180 >> 8)
ROM:162B E385                      ldi     r24, (byte_400135 & 0xFF)
ROM:162C E091                      ldi     r25, (byte_400135 >> 8)
ROM:162D 940E 19A6                 call    memcpy_P       ; R20:R21 - len; R22:R23 - *src; R24:R25 - *dst


Вот тут видна эмуляция - с адреса 0x300000 - Flash как данные, с адреса 0x400000 - ОЗУ. С адреса 0 - флеш как код. Собственно метки расставлены самописным скриптом - типа, ставишь курсор на первую команду, давишь кнопку - получаешь результат. И то, хорошо, что это результат компилятора, а не рукописная шняга, а то наверняка вручную пришлось бы бодаться...

Короче, курите маны и будет счастье smile.gif
sally
Цитата(Rst7 @ Jun 11 2009, 11:33) *
Галочки? Тьфу! Там для вменяемого результата скрипты надо писать. Чтобы, например, обрабатывало LDI Rx,LOW(adr) или HIGH(adr). Кроме того, надо эмулировать разные адресные пространства на линейной модели. Тогда можно на что-то надеяться. Будет типа такого
Код
ROM:1627 E140                      ldi     r20, (16) & 0xFF
ROM:1628 E050                      ldi     r21, (16) >> 8
ROM:1629 E860                      ldi     r22, (byte_300180 & 0xFF)
ROM:162A E071                      ldi     r23, (byte_300180 >> 8)
ROM:162B E385                      ldi     r24, (byte_400135 & 0xFF)
ROM:162C E091                      ldi     r25, (byte_400135 >> 8)
ROM:162D 940E 19A6                 call    memcpy_P      ; R20:R21 - len; R22:R23 - *src; R24:R25 - *dst


Вот тут видна эмуляция - с адреса 0x300000 - Flash как данные, с адреса 0x400000 - ОЗУ. С адреса 0 - флеш как код. Собственно метки расставлены самописным скриптом - типа, ставишь курсор на первую команду, давишь кнопку - получаешь результат. И то, хорошо, что это результат компилятора, а не рукописная шняга, а то наверняка вручную пришлось бы бодаться...

Короче, курите маны и будет счастье smile.gif

Вобщем то спасибо большое за "всеобъемлющие советы",но вопросов стало на порядок больше biggrin.gif
Маны курить не стал,покурил Pall Mall (правда много покурил rolleyes.gif )и все встало на свои места!
Вобщем дело было в том, что IDA почему то не вкуривает корректно HEX файлы,обозвал их BIN-ами,но при загрузке в IDA указывал что HEX.И о чудо,появился корректный ASM код!Пробовал на нескольких своих проектах и на слитой из ATmega16 прошивке.Сравнивал свой исходник с кодом в IDA, на первый взгляд довольно неплохо.
Всем спасибо!
pavel-pervomaysk
Юзаю IDA по надобности. Дизасемлирование еще не означает что получите полный исходный код , зато многие участки можно спереть без проблем.
sally
Цитата(Павлик @ Jun 11 2009, 15:08) *
Юзаю IDA по надобности. Дизасемлирование еще не означает что получите полный исходный код , зато многие участки можно спереть без проблем.

Да у меня вот такая проблема,есть схема девайса,есть прошивка,но LCD который применен в этом девайсе очень проблематично купить,вот и приходится расковыривать прошивку и адаптировать ее под другой LCD.
Nuts_
AVR dasm by Sot
в исходниках

сайт автора вроде как умерр
Арташес
Еще можно воспользоваться AVR SIMULATOR IDE фирмы Oshonsoft. В нее встроен нужный функционал.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.