.TH tavrasm 1 April\ 2004 Version\ 1.22 ./ Copyright (C) 2003 - Tom Mortensen ./ E-mail: tom@tavrasm.org WWW: http://www.tavrasm.org .SH NAME .B tavrasm \- AVR macro assembler to Linux .SH SYNOPSIS usage: .B tavrasm [-vwclxmihjgbafd] [-I ]... [-o ] [-r ] [-e ] .SH OPTIONS -v verbose -w no warnings -c case sensitive labels/defines -l limit log width to 80 characters -x allow local labels -m output Motorola S-record format -i output Intel HEX format (default) -h omit address extension record from Intel HEX files -j output .obj format -g output generic hex -b output binary format -a wrap relative jumps -f allow forward org's -d list supported devices .SH SUPPORTED Atmel AVR DEVICES +-------------------------------------------------+ | Device name | Ram | Flash | Ram | EEPROM | | | Start | size | size | size | |-------------+-------+----------+-------+--------| | GENERIC | 96 | 16777216 | 65536 | 65536 | | AT90S1200 | 96 | 512 | 0 | 64 | | AT90S2313 | 96 | 1024 | 128 | 128 | | AT90S2323 | 96 | 1024 | 128 | 128 | | AT90S2343 | 96 | 1024 | 128 | 128 | | AT90S4414 | 96 | 2048 | 256 | 256 | | AT90S4433 | 96 | 2048 | 256 | 256 | | AT90S4434 | 96 | 2048 | 256 | 256 | | AT90S8515 | 96 | 4096 | 512 | 512 | | AT90S8535 | 96 | 4096 | 512 | 512 | | ATMega103 | 96 | 65536 | 4096 | 4096 | | ATMega8 | 96 | 4096 | 1024 | 512 | | ATMega161 | 96 | 8192 | 1024 | 512 | | ATMega162 | 96 | 8192 | 1024 | 512 | | ATMega163 | 96 | 8192 | 1024 | 512 | | ATMega16 | 96 | 8192 | 1024 | 512 | | ATMega323 | 96 | 16384 | 2048 | 1024 | | ATMega32 | 96 | 16384 | 2048 | 1024 | | ATmega8515 | 96 | 4096 | 512 | 512 | | ATmega8535 | 96 | 4096 | 512 | 512 | +-------------------------------------------------+ .SH ASSEMBLER MACROS BUILT IN STAR DIV MOD LS RS LE GE LESS GREAT EQ NE OR XOR AND OROR ANDAND LPAR RPAR COLON COMMA DOT EQUAL PLUS MINUS WAVE NOT EOL RESTART ENDOFFILE DEF EQU DB DW ORG ALIGN CSEG DSEG ESEG BYTE SET DEVICE STRING MACRODEF .SH MORE RESERVED WORDS REGISTER REGXYZ SYMBOL INTEGER COUNTER FUNCTION IREGREG IREGREGW IIMMIMM IREGIMM IREGIMMW IIMMREG IREG IIMM INOARGS IINDIRC ILPM STRING .SH DESCRIPTION .B Toms AVR macro assembler - tavrasm 1.22 .B tavrasm \- A GNU/Linux assembler for the Atmel AVR series of micro-controllers. Copyright (C) 1999-2003 Tom Mortensen. This program is free software; you can redistribute it and/or modify it under the terms of the .B GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. .SH INTRODUCTION .B tavrasm is an assembler for the Atmel AVR family of micro- controllers. It uses a syntax similar to the one found in the Atmel AVR DOS assembler. Some of the features includes: - Super-set of Atmel AVR assembler. - Macros in macros. - Save Intel HEX, Motorola S-record, Generic and binary output. - More than 100 warning/error messages. - Atmel object files compatible with Atmel's AVR Studio. - C escape characters in char/string literals. - Runs on (win)DOS, Linux, OS/2, Solaris, ... - Free software released under GPL. .SH INSTALLATION Copy the tavrasm executable to a directory in your path. .SH INVOKE Just type 'tavrasm file.asm' or, with some switch above. .SH COMPILE .B "tavrasm" should compile on most systems that are supported by gcc. .SH GENERATED MESSAGES Next lists give the most common feedback lines from .B tavrasm . .SH ERROR MESSAGES * Undefined variable referenced * Undefined variable referenced in bit number * Undefined variable referenced in I/O port address * Undefined variable referenced in branch * Undefined variable referenced in bit mask * Undefined variable referenced in constant * Undefined variable referenced in address * Undefined variable referenced in displacement * Undefined variable referenced in relative call * Undefined variable referenced in relative jump * Undefined variable referenced in jump/call * Undefined variable referenced in constant in .db * Undefined variable referenced in constant in .dw * Undefined variable referenced in offset * Undefined variable referenced in constant in .byte * Division by zero * Invalid register (r16-r31) * Invalid register SSS * Branch out of range by XX words (backwards) * Branch out of range by XX words (forward) * Invalid register (r24/r26/r28/r30) * Invalid source register rXX (X/Y/Z) * Invalid destination register rXX (X/Y/Z) * Call out of range by XX words (backwards) * Call out of range by XX words (forward) * Jump out of range by XX words (backwards) * Jump out of range by XX words (forward) * Label 'SSS' already defined at line XX in 'SSS' * Label 'SSS' already defined at line XX in 'SSS' * Variable 'SSS' already defined as label at line XX in 'SSS' * .dw in DSEG (only allowed in CSEG and ESEG) * .db in DSEG (only allowed in CSEG and ESEG) * Macro 'SSS' already defined (or duplicates label) * Program code in DSEG (only allowed in CSEG) * Program code in ESEG (only allowed in CSEG) * Unable to include file 'SSS' - include depth exceeded * Invalid include filename specified * Unable to open file 'SSS' * Unable to expand macro - context depth exceeded * End of file reached in macro definition * Filename too long at line XX in 'SSS' * Invalid filename * Register expected * Invalid register specified * Invalid register or immediate * Invalid immediate constant * No argument expected * Unknown opcode * Expected ID = register * Expected value (,value ,...) * No arguments should be specified * Expected value/label * Expected ID = expression * Expected device name * Variable declaration in CSEG * Macro with no name * Undefined escape sequence 'SSS' * No filename specified * Macro used before it is defined * Undefined escape sequence 'CHR' * Unexpected .endmacro directive * Macro definition within macro not allowed * Expected register, displacement * Expected displacement, register * No displacement can be specified for X (use Y/Z) * Invalid register rXX (expected r23-r31) * Displacement can not be specified here * Invalid register specified, expected 'Z' * Pre-increment is invalid here (use 'Z' or 'Z+') * Invalid register rXX (expected rXX-rXX) * Invalid register rXX (expected r0, r2, ...) * Undefined variable referenced in constant in .align * .align value not a power of two .SH FATAL ERRORS * No fatal error * Out of memory * Line too long in 'SSS' * Macro line too long at line XX in 'SSS' * Unable to open input file 'SSS' * Unable to open list file 'SSS' * Unable to open output file 'SSS' * Unable to open rom file 'SSS' * Too many files included * Code size exceeded * EEPROM size exceeded * Max macro depth exceeded .SH MESSAGES * No message * Empty rom file * Can not save rom file with .obj format * No input filename specified * Unknown option 'SSS' * More than one of m/i/j/b/h specified * No rom filename specified * Rom filename too long * Illegal rom filename * No list filename specified * List filename too long * Illegal list filename * No output filename specified * Output filename too long * Illegal output filename * Multiple output files specified * Input filename too long * Illegal input filename * Multiple input files specified * Errors : XX * Warnings : XX * Code : XX * Rom : XX * Data : XX * Unused Code : XX * Unused Rom : XX * No code generated * | Device name | Ram start | Flash Size | Ram size | | EEPROM Size | * No include path found after '-I' flag * Too many include paths specified * Include pathname too long .SH AUTHORS Copenhagen, December 2004, Tom Mortensen E-mail : tom@tavrasm.org WWW : http://www.tavrasm.org ./ EOF: tavrasm.1