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.


PNG with Winker's email address.  Darned spamers anyway.

Check Out Winker's Home Page
Home

+------------+
|   Website  |
| Created in |
|     vi     |
+------------+