Atmel AVR Disassembler

Вопрос задан: 9 лет назад Последняя активность: 2 года назад
up 11 down

Может кто-нибудь предложить мне любой дизассемблер для Atmel AVR 8-разрядных микроконтроллеров? Есть OpenSource проекты для этого?

Thanx.

7 ответов

Возможно, для Вашего проекта будут необходимы бесплатные векторные карты. На нашем сайте представлены карты для всех стран.

Реклама

up 12 down

Вы можете также использовать AVR-objdump, инструментальную часть АРН-GCC (набор инструментов http://www.nongnu.org/avr-libc/ ). Пример:

avr-objdump -s -m <avr architecture> .d program.hex > program.dump

где <avr architecture> находится на http://www.nongnu.org/avr-libc/user-manual/using_tools.html

up 11 down accepted

[Штекер] IDA Pro поддерживает AVR разборку [/ штекер]:

Atmel AVR Disassembler

Что касается OpenSource, AVR GCC пакет включает в себя порт objdump, в том числе функциональные возможности разборки.

up 6 down

http://www.onlinedisassembler.com/odaweb/

Много платформ (AVR также), но Microchip (которые вы не нужны ни) отсутствует.

Большой плюс в том, что это веб-основе.

up 5 down

Проверять, выписываться vAVRdisasm.

up 1 down

AVRDisassembler является открытым исходным кодом (MIT) AVR/Arduino дизассемблер написан на .NET Ядра (что означает, что он может работать на Windows, Mac, Linux). Помимо написания разборки на стандартный вывод, он также может испускать JSON дамп (для interopability, цели анализа).

Отказ от ответственности: я являюсь автором указанной библиотеки.

up 0 down

То, что вы хотите разборке (код или шестнадцатеричный файл)? Если вы кодирование с Atmel студией имеет инструмент для разбирать, когда вы кодирование.

  1. Запуск проекта (если вы не отладки инструмент, использование тренажера, это не означает);
  2. Затем пауза;
  3. Чем CTRL + ALT + D будет разбирать ваш проект. Также сборка записывается в файл .lss тоже в отладочный папке вашего проекта.
up 0 down

я использую avrdisas йоханнес Бауэр. Он работает с сбрасывали вспышкой, а не файл .hex или ELF.

Компиляция следующее:

  .include "tn13def.inc"
       ldi     r16,1
       out     ddrb,r16      ; PB0 as output
       sbiw    r24,1         ; slight wait
       brne    PC-1
       sbi     pinb,pinb0    ; toggle
       rjmp    PC-3          ; forever 

производит распечатку:

C:000000 e001             ldi     r16,1
C:000001 bb07             out     ddrb,r16      ; PB0 as output
C:000002 9701             sbiw    r24,1         ; slight wait
C:000003 f7f1             brne    PC-1
C:000004 9ab0             sbi     pinb,pinb0    ; toggle
C:000005 cffc             rjmp    PC-3          ; forever

извлечения содержимого флэш-с:

$ avrdude -p t13 -P usb -c usbtiny -U flash:r:flash.bin:r

дает: e001 bb07 9701 f7f1 9ab0 cffc

разборка:

$ ./avrdisas -a1 -o1 -s1 flash.bin 
; Disassembly of flash.bin (avr-gcc style)

.text
main:
   0:   01 e0           ldi     r16, 0x01       ; 1
   2:   07 bb           out     0x17, r16       ; 23

; Referenced from offset 0x06 by brne
; Referenced from offset 0x0a by rjmp
Label1:
   4:   01 97           sbiw    r24, 0x01       ; 1
   6:   f1 f7           brne    Label1
   8:   b0 9a           sbi     0x16, 0         ; 0x01 = 1
   a:   fc cf           rjmp    Label1

и это работает для меня, даже если порядок байтов не соответствует список, и я должен был бы решить 0x17 назад к DDRB и т.д.

Ошибка 505

Что-то пошло не так

Попробуйте воспользоваться поиском