tavrasm

Langue: en

Version: 113752 (mandriva - 01/05/08)

Section: 1 (Commandes utilisateur)

NAME

tavrasm - AVR macro assembler to Linux

SYNOPSIS

usage: tavrasm [-vwclxmihjgbafd] <infile>
               [-I <includepath>]...
               [-o <outfile>] [-r <rom>] [-e <listfile>]

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

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 |
 +-------------------------------------------------+

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

MORE RESERVED WORDS


  REGISTER REGXYZ   SYMBOL  INTEGER COUNTER  FUNCTION
  IREGREG  IREGREGW IIMMIMM IREGIMM IREGIMMW IIMMREG
  IREG     IIMM     INOARGS IINDIRC ILPM     STRING

DESCRIPTION

Toms AVR macro assembler - tavrasm 1.22

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 GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

INTRODUCTION

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.

INSTALLATION

Copy the tavrasm executable to a directory in your path.

INVOKE

Just type 'tavrasm file.asm' or, with some switch above.

COMPILE

tavrasm should compile on most systems that are supported by gcc.

GENERATED MESSAGES

Next lists give the most common feedback lines from tavrasm .

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

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

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

AUTHORS


  Copenhagen, December 2004, Tom Mortensen
                         E-mail : tom@tavrasm.org
                         WWW    : http://www.tavrasm.org