Manpages

NOMBRE

ava − Ensamblador virtual algebraico para microcontroladores AVR de Atmel

SINOPSIS

ava [ -pLv ] [ −Adispositivo ] [ −lIarchivo ] [ −Idirectorio ] [ −Tarchivo ] [ −Dmacro=val ] [ −fmacro=val ] [ −o archivo ] [ −−version ] [ −−multiple−output−files ] [ −−motorola ] [ −−intel ] archivos bibliotecas

DESCRIPCIÓN

AVA es un ensablador y enlazador avanzado para los microcontroladores de la familia AVR de 8 y 16 bits, aunque también puede ser extendido para las familias de 32 bits. Tiene un preprocesador estilo C, segmentos poderosos y símbolos virtuales. Estas dos características especiales mejoran la programación modular y permiten que los objetos sean completamente independientes entre sí.

La sintaxis del ensamblador no es compatible con la sintaxis de Atmel.

AVA agrupa dos funciones: ensambador y enlazador. Según los archivos con que se lo invoque, se ejecutará uno u otro. Dentro de los objetos comunes se pueden utilizar bibliotecas, en las que cada función puede ser declarada en su propio segmento que luego es quitado si no se utiliza.

UTILIZACIÓN

AVA es una aplicación de consola, que puede leer la entrada desde un archivo o desde entrada estándar (stdin). La salida puede guardarse en otro archivo o bien redirigirse a la salida estándar (stdout). Por omisión, los mensajes de error se imprimen por la salida de errores (stderr).

El ensamblador y el enlazador están integrados, el programa selecciona cuál de los dos invocar según la extensión de los archivos. Si se utiliza stdin o stdout, AVA automáticamente llama al ensamblador, ya que el enlazador no puede ser usado sobre ninguno de ellos. Para más información acerca de los formatos de archivo soportados, vea la sección ARCHIVOS.

El ensamblador puede ensamblar un solo archivo a la vez.

El orden de las opciónes (las que comienzan con ), no importa. El orden de los archivos, por otro lado, es muy importante: los archivos son enlazados exactamente en el mismo orden que se indica en la línea de comados. Esto tiene un efecto muy importante en los símbolos virtuales.

Ejemplos
ava -o proyecto main.o print.o

Este comando enlaza los archivos main.o y print.o en un archivo llamado proyecto".

ava -p < archivo.s | gzip > archivo.o.gz

Este comando ensambla archivo.s. El código ensamblado se redirige a la salida estándar, donde el gzip lo procesa.

ava -v -v -o ejemplo ejemplo.o mis-bibliotecas

Este comando enlaza el archivo ejemplo.o con las bibliotecas contenidas en mis-bibliotecas, generando el archivo ejemplo, imprimiendo información adicional.

OPCIONES

Se pueden especificar muchas opciones, tanto para el ensamblador como el enlazador, el formato de los reportes y de la salida. A continuación se incluye un resumen de las opciones soportadas por AVA.

Opciones generales
−h, −−help

Muestra un resumen de las opciones soportadas.

−−version

Muestra información sobre la versión actual y sale.

−o archivo

Redirije la salida a archivo, si quiere redirigir a salida estándar, utilice −o stdout

−p

Utiliza entrada estándar, y salida estándar si no se especificó la opción −o.

Opciones de ensamblador y enlazador
−D
macro=val

Define una macro con valor val, si no se indica un valor val, se asume 1.

Ejemplos:
ava -DVER=2 main.s
ava -DSTR="cadena" main.s

−f macro=val

Define una macro pública, de la forma __macro{=val}.

Ejemplo:
ava -favr_noskipbug main.s

−Tarchivo

Incluye archivo dentro del código fuente, si no se proporciona ningún nombre de archivo, se incluye el archivo target.inc. El archivo especificado por esta opción es siempre el primero en la cola, y se procesa antes que los especificados por la opción −I. Se lo busca en el directorio predeterminado y luego en la lista predefinida.

−Adispositivo

Declara el dispositivo de destino. Es equivalente a -Ddispositivo −Tarch.inc

−Inombre

Agrega el directorio nombre a la lista de búsqueda, o bien incluye el archivo nombre al código fuente.

Opciones de los reportes

−v

Salida con más información. Más de un −v puede ser especificado, para aumentar la cantidad de información que se imprime.

−L

Genera el reporte del archivo que se está ensamblando.

−larchivo-log

Agrega la información del árbol de segmentos y los reportes de estados al archivo-log. Los errores y advertencias se mostrarán tanto por la salida de errores como archivo-log.

Formatos de salida
−−multiple-output-files

Guarda cada segmento en un archivo separado. Los nombres de los archivos se generan concatenando el nombre de salida con el segmento base. Ej: a.out.flash, a.out.eeprom, ...

−−intel

Selecciona una salida con formato estándar de Intel de 16 bit (en este caso, se toma el parámetro −− multiple-output-files por omisión).

−−motorola

Selecciona una salida con formato Motorola S-record S1/S2 (16/24) bit. Las direcciones están limitadas a 24 bits.

−−uasm

Selecciona una salida con formato Micro Assembler (predeterminada)

Opciones específicas de AVR
−favr_noskipbug

No verificar direcciones de retorno incorrectas.

−favr_noendianbug

No cambiar los bytes en el segmento de flash (esto se tomará por omisión en las próximas versiones).

ARCHIVOS

Los tipos de archivos que AVA soporta son:

file.s

Código fuente assembler. Es un archivo de entrada que hará que AVA funcione como ensamblador.

file.o

Archivo objecto. Es un archivo de entrada/salida, que hará que AVA funcione como enlazador.

a.out

Nombre de archivo predeterminado para la salida del enlazador. Este es el archivo de salida que se utiliza al enlazar.

a.out.segmento

Nombre de archivo para la salida del enlazador si se seleccionó la opción --multiple-output-files. El nombre segmento es el que corresponde al nombre del segmento enlazado.

archivo.lst

Reporte de assembler. Este es el archivo de salida generado al seleccionar la opción −L.

bibliotecas

Una biblioteca es un directorio de archivos objeto. Puede contener otros archivos, siempre y cuando no tengan la misma extensión que los archivos objeto.

Cada función debe estar posicionada en segmentos removibles separados. Ya que sólo de esta manera puede verificar el enlazador las dependencias de las funciones y quitar las porciones de código que no se utilicen.

VERSION

0.3b

VEA TAMBIÉN

uisp(1), avra(1), avrp(1), y el Manual de Usuario de AVA.

AUTOR

Uros Platise <uros.platise [AT] ijs.si>

Esta página de manual fue escrita y traducida por Margarita Manterola <debian [AT] marga.ar>, para la versión 0.3b del programa ava.