revava - Atmel AVR Disassembler
revava - Atmel AVR Disassembler
Description
revava is a single pass disassembler that reads in a file containing a
program intended for an Atmel AVR microcontroller and outputs assembly
code that can be input to an avr assembler. The output of revava
contains assembler mnemonics where possible and dc.W declarations where
no mnemonic matches the data. The comment field for each assembly
instruction contains the address from the object code and the
destination address for branches, calls, jumps, etc. In the case where
there are multiple assembly instructions that assemble to the same
opcode, all choices are presented in a group with all but the first
choice commented out.
make_labels.pl is a Perl script that's been included in revava. It
takes the output of revava and puts "jump to" and function labels in the
code.
revava is written in C++ and the source code is available here, having been
released under the GNU Public License. It compiles under gcc 3 with no
problems. It should be easy to port to other C++ compilers.
Sample Input To revava (does not go with samples below this one)
:10000000C003C00E95189518E001BB07EF0FBB08A1
:10001000E400BF0BE202BF05EF0F94789588CFFE96
:060020009500BB089518D5
:00000001ff
Sample Output Of revava
clr r16 ; 04E0
;eor r16, r16 ; 04E0
ldi r16, 0x6 ; 04E2
sts 0x0074, r16 ; 04E4
rjmp 910 ; 04F8, Dest: 0888
rcall 1528 ; 04FA, Dest: 0AF4
Sample Output Of make_labels.pl (using immediately above sample as input)
L042:
clr r16 ; 04E0
;eor r16, r16 ; 04E0
ldi r16, 0x6 ; 04EA
sts 0x0074, r16 ; 04EC
rjmp L115 ; 04F0, Dest: 0888
Func005:
rcall Func008 ; 04F2, Dest: 0AF4
FTP Links To revava Files
Current
revava-0.4.tar.gz
Old Versions
revava-0.3.tar.gz
revava-0.2.tar.gz
|
Web Links To Those Who Link To Here
This site is in German. Links to lots of microcontroller information of all sorts.
Looks pretty useful even if you don't know German.
http://www.mikrocontroller.net/links.en.htm
This is on www.sourceforge.net. A very good place to look for software of any kind.
It looks like a developer has put a bunch of AVR stuff (including revava) into a single
set of packages for Linux. Definitely check out this page.
http://cdk4avr.sourceforge.net/
www.eg3.com has advertising, links to useful microcontroller stuff, and search tools.
And, they gave me three stars.
http://www.eg3.com/WebID/embedded/avr/blank/tool/a-z.htm
A very useful collection of links. This is what I used when I was working with AVRs.
http://www.omegav.ntnu.no/avr/resources.php3
These websites have seen fit to provide a link to my website. I consider that a favor,
so hopefully they won't mind me returning the favor. I actually haven't worked with
AVR microcontrollers for several years, so I don't really know the best places to
look for information anymore. This page keeps getting hits though. I keep telling
myself I should finish this project because it seems that people do use it. I'll keep
telling myself that. Someday I will finish it. By the way, don't let the fact it's
not finished scare you off. It just might take a little tweaking to get it to compile,
and you have to run the Perl script separately. It works fine.
|
|
|
Check Out Winker's Home Page
Home
|
+------------+
| Website |
| Created in |
| vi |
+------------+
|