Compilacion lenguaje c para micro avr

Páginas: 8 (1867 palabras) Publicado: 16 de septiembre de 2012
Compilación de programas en lenguaje C para el microcontrolador AVR

1.

Comenzando
Las herramientas de desarrollo de aplicaciones provienen de GNU y funcionan en Linux. Para arrancar este

sistema operativo en los ordenadores del laboratorio hay que esperar que arranquen de la red (pueden tardar unos 20 seg.) y luego, en el menú que se muestra seleccionar “A) Linux”. Tras el arranque deLinux hay que entrar en la cuenta de prácticas: Login: ********** Password: ******* Dentro de la cuenta de prácticas cada grupo tendrá su propio subdirectorio. Este es un listado de las herramientas de desarrollo y otras aplicaciones útiles: avr-gcc: compilador de C para AVR. avr-as: ensamblador para AVR. avr-ld: linker. avr-objcopy: conversor de formatos de ficheros ejecutables. avr-objdump:desensamblador para AVR. make: gestor de proyectos. avrprg: programador para el prototipo del microcontrolador (defecto: COM1) terminal: terminal para el puerto serie (defecto: COM2, 9600 baudios) nedit: editor de texto para programas en C.

1

2.

Programa de ejemplo
En el directorio “ejemplo” hay un conjunto de ficheros que mustran de forma básica como generar imágenes

de memoria para elmicrocontrolador AVR a partir de código fuente en C y en ensamblador. Para compilar el programa de ejemplo en primer lugar copiaremos los ficheros a otro directorio y luego siemplemente ejecutaremos el comando “make”. Los ficheros del ejemplo son: crt0.s: Código de arranque en ensamblador. prg1.c: programa en C. Incluye la función “main”. regs2313.h: definiciones de los registros del micro. Makefile:dependencias y control de la compilación. El proceso de la compilación queda representado de forma gráfica en la siguiente figura:
objeto ELF

crt0.s

avr−as

crt0.o

linker−script

avr23xx.x avr−ld prg1 avr−objcopy

prg1.c

avr−gcc

objeto ELF

prg1.o

prg1.srec
ejecutable hexadecimal (S−record)

ejecutable ELF

regs2313.h .../libgcc.a
libreria del gcc

ld.map
mapa dememoria

En la compilación intervienen otros ficheros como son la librería del gcc (libgcc.a) y el “linker-script” (avr23xx.x) que controla el proceso de enlazado. Las dependencias entre ficheros y los comandos que se han de ejecutar para generarlos están detallados en el fichero “Makefile”, que contiene líneas como las siguientes: prg1.srec:(tab) prg1 (tab) avr-objcopy -O srec prg1 prg1.srec

Enestas líneas se indica que “prg1.srec” se obtiene a partir de “prg1” y que el comando que hay que ejecutar para generar “prg1.srec” es “avr-objcopy ...”

2

prg1: (tab) prg1.o crt0.o (tab) avr-ld -o prg1 -T $(LSCRIPT) -Map ld.map crt0.o prg1.o $(LIBGCC)

Aquí indicamos que “prg1”, el ejecutable ELF, depende de “prg1.o” y de “crt0.o”, e indicamos el comando con el linker para enlazar ambosobjetos y la librería del gcc, que está definida en la variable “LIBGCC” crt0.o: (tab) crt0.s (tab) avr-as -o ctr0.o crt0.s

Aquí indicamos que “crt0.o” se genera a partir de “crt0.s” mediante el ensamblador “avr-as” prg1.o: (tab) prg1.c regs2313.h (tab) avr-gcc -O2 -mmcu=at90s2313 -mtiny-stack -c prg1.c

Por último en estas líneas indicamos que “prg1.o” depende de “prg1.c” y “regs2313.h” y elcomando para compilar el programa fuente en C es “avr-gcc ...”. Las tabulaciones en el fichero Makefile son importantes: Si se sustituyen por espacios el comando “make” da errores.

3.

Opciones de los comandos
Como hemos visto en el ejemplo cada comando (ensamblador, compilador, linker,...) tienen un gran número

de opciones que se pueden seleccionar en la línea de comandos. Destacaremos acontinuación las más relevantes:

avr-as
-o : Indica cual va a ser el fichero de salida

avr-gcc
-S : genera un listado en ensamblador en lugar del fichero objeto. -c : genera sólo el fichero objeto. (No se intenta generar un ejecutable) -O: nivel de optimización: • -O0 : sin optimización. • -O1 : optimización de transferencias entre registros. • -O2 : más optimizaciones. 3

• -O3 : además se...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • lenguaje C para PIC
  • Hola Mundo Para Lenguaje C
  • teórico para programación en lenguaje c
  • palabras reservadas para lenguaje c++
  • LENGUAJE C ORIENTADO A MICROS
  • Programacion de avr en c
  • Micro C
  • Programa De Lenguaje c++ Para Control Escolar

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS