Vous êtes sur la page 1sur 7

LABORATORIO DE SISTEMAS MICROPROCESADOS

PRACTICA No. 3
Conocimiento del software de desarrollo ATMEL Studio 6
OBJETIVO:
Aprender a utilizar una de las herramientas existentes para el desarrollo de sistemas
basados en los microntroladores AVR, especficamente el ATMEL Studio 6.
MARCO TERICO:
ATMEL Studio 6 es la evolucin ms reciente de las herramientas de software que
ofrece ATMEL.

El AVRStudio 4 es un ambiente integrado de desarrollo (IDE) para los
microcontroladores AVR de 8 bits, al que se aade las funcionalidades de AVR
Toolchain y WinAVR. Con AVR Toolchain se pueden escribir los programas en
Assembler y para escribir en Lenguaje C se necesita instalar WinAVR.
El AVR Studio 5 tiene las mismas caractersticas que el AVR Studio 4 para los
microcontroladores AVR de 8 y 32 bits, no necesita encadenarse a otras herramientas
debido a que tiene incorporado el compilador de Lenguaje C/C++. Tambin, incluye el
AVR Software Framework que consiste en una coleccin de cdigos fuentes que
pueden ser consultados por medio de Internet en el servidor del fabricante, para luego
incorporar a los proyectos del usuario.
El ATMEL Studio 6, que actualmente es el software que se encuentra en la pgina web
del fabricante, es el IDE para los microcontroladores ATMEL de las arquitecturas AVR
y ARM Cortex-M.
Estos paquetes contienen tres herramientas para la creacin, actualizacin y depuracin
de programas para microcontroladores ATMEL, escritos en Lenguaje Ensamblador o
Assembler, que son: el EDITOR, el ENSAMBLADOR y el SIMULADOR.
El EDITOR permite crear y modificar los Mdulos Fuentes de los programas, que son
archivos con extensin .asm, donde se encuentran textos planos conformados por lneas
que contiene:
Instrucciones del programa
Comentarios
Directivas del ensamblador
Controles para el ensamblador
Una instruccin de programa es el mnemnico o cdigo simblico que se transforma en
lenguaje de mquina, mediante el ensamblador, para luego ser grabado en la memoria
del programa.
Los comentarios son textos que el programador utiliza para documentar los programas y
que el ensamblador no toma en cuenta.
Las directivas del ensamblador se usan para comprender la estructura del programa y
facilitar modificaciones posteriores, estos cdigos no generan instrucciones y algunos
permiten crear tablas de datos, mensajes, etc.
Los controles para el ensamblador son acciones que el programador define para realizar
el proceso de ensamblado en forma adecuada.
Muchos programas son demasiado largos y complejos para escribirlos como una solo
archivo. Las soluciones se vuelven ms simples cuando el cdigo se divide en varios
mdulos o subprogramas que pueden ocupan varios archivos. Los beneficios de este
tipo de programacin son:
Desarrollo eficiente de programas: La programacin ocupa menos tiempo, debido a
que los subprogramas son fciles de estructurar, escribir y comprobar, en comparacin
con los que se realizan en un solo mdulo. Una vez que se han definido las entradas y
salidas de cada mdulo, el programador proporciona la informacin requerida y verifica
la exactitud de cada mdulo examinando los resultados. Terminadas estas pruebas, los
mdulos separados se unen y son ensamblados como un solo programa ejecutable, que
finalmente puede ser sometido a las ltimas pruebas.
Uso mltiple de subprogramas: El cdigo escrito para un programa es a menudo til
para otras soluciones y la programacin modular permite guardar bloques de
instrucciones para ser utilizadas en el futuro. Un nuevo cdigo puede utilizar otros
mdulos que estn previamente creados y que cumplan con los requisitos de entrada y
salida. Tambin se tiene la facilidad de guardar rutinas que son usadas con ciertos
programas; es decir, que no estn disponibles para todos los casos.
Facilidad de depuracin y modificacin: Los programas modulares son por lo general
ms fciles de depurar que otro tipo de programas, debido a que las entradas y salidas
para cada mdulo estn bien definidas, por lo que se pueden aislar los problemas que
presentan cada mdulo en forma individual.
El ENSAMBLADOR
Es la herramienta de software que simplifica la tarea de traducir las instrucciones que se
encuentran en el Mdulo Fuente escritas en cdigo simblico o Assembler en un cdigo
ejecutable o Lenguaje de Mquina, generando el Mdulo Objeto que sirve luego para
grabar el programa en la memoria del microcontrolador para su ejecucin.
nicamente cuando el ensamblado es exitoso, el resultado se almacena en un archivo de
extensin .hex, mediante textos de nmeros hexadecimales siguiendo un formato bien
definido. Tambin se almacena en otro archivo de extensin .obj en cdigo binario, que
no se puede abrir como texto. Un tercer archivo de extensin .lss se genera y contiene al
Mdulo Fuente y al Mdulo Objeto juntos, es un archivo de texto que sirve para
visualizar el proceso de ensamblado. Todos estos archivos tienen el mismo nombre,
diferencindose nicamente en la extensin y que al agruparlos en una sola carpeta
juntos con otros archivos se forma el Proyecto de Solucin.
Cuando el ensamblador no puede obtener el cdigo de mquina de todo el programa,
debido a errores en el Mdulo Fuente, no se genera ninguno de los archivos antes
mencionados y se debe atender los mensajes emitidos para corregir mediante el Editor.
El SIMULADOR
Una vez obtenido el Mdulo Objeto se puede grabar el programa en el microcontrolador
para comprobar su funcionamiento en algunas de las herramientas disponibles, entre
ellas se puede utilizar un Simulador.
El Simulador que viene incorporado en el ATMEL Studio 6, es un simulador que
mediante ventanas de textos muestra los cambios que se producen en los contenidos de
los Registros, Memorias y Prticos del microcontrolador, a medida que se ejecuta el
programa. Las ejecuciones pueden ser de una sola vez, paso a paso o con puntos de
parada, estas ltimas que permiten detectar fallas en la implementacin del algoritmo
del programa para ser corregidas mediante el Editor.
Breve descripcin del entorno ATMEL Studio 6
Una vez invocado el entorno se despliega la Pgina Inicial, donde se puede escoger
entre crear un Nuevo Proyecto, abrir Ejemplos de Proyectos o Proyectos Elaborados,
cuyo listado ms reciente tambin se muestra. Adems, existen enlaces a las diferentes
ayudas que el programador necesita.

Al escoger la creacin de un nuevo proyecto (New Project), en la ventana que se
despliega para proyectos en Assembler, llenar el nombre del archivo de extensin .asm
y de la carpeta del proyecto (que se puede rellenar automticamente). Tambin se debe
escoger la ubicacin en donde se van a crear la carpeta. Luego pulsar OK.
Nuevo Proyecto
Ejemplos de Proyectos
Proyectos Elaborados
Listado
AYUDAS

En la ventana Device Selection se escoge al microcontrolador con el cual se desarrolla el
proyecto, ejemplo el ATmega164P. Antes de confirmar se muestran enlaces sobre
informacin del dispositivo y de las herramientas de deputacin.

A partir de aqu el entorno est operativo. Se abre la ventana donde se edita el programa
y otras dos situadas a la derecha donde se puede navegar por los componentes de la
solucin y las respectivas propiedades. En la parte inferior se encuentra la ventana de
salida de resultados al realizar el ensamblado.
Nombre del
Archivo
Nombre de
la Carpeta
Ubicacin
donde se crean
Hoja de
Datos
Herramientas
para
Depuracin

Los textos se escriben con maysculas o minsculas que el ensamblador no diferencia.
Se recomienda que sea una instruccin por lnea respetando el formato de las columnas
de: Etiqueta, Cdigo de la Operacin, Operandos y Comentarios. Que con la ayuda de
los colores que se generan automticamente se puede leer los programas con facilidad.

Al momento de invocar el ensamblado del programa, se encadena automticamente con
el archivo m164pdef.inc, que es un archivo de texto suministrado por el fabricante con
las direcciones de todos los registros de Entrada y Salida del ATmega164P, asignadas a
unas etiquetas que corresponden a los nombres de los registros que Atmel utiliza en su
documentacin. De esta forma, es fcil elaborar el programa con el nombre del registro
en lugar de la direccin que ocupa. As mismo, se puede asignar nombres a los registros
r0 - r31 mediante la directiva .def.
Ventana del
EDITOR
Componentes
de la
Solucin
Propiedades
de los
Archivos
Texto del
PROGRAMA

Una vez ensamblado el programa con Build -> Build Solution, los errores se los ubica
para ser corregidos, mediante dos clicks sobre las lneas que se encuentran la lista de la
ventana inferior. Este proceso se repite hasta obtener completo el cdigo de mquina.

Con Debug -> Step Into activamos la simulacin. Se podr interactuar con el programa
mediante los elementos que aparecen en las ventanas del Procesador, de las Variables y
de las Memorias que se despliegan en lugar de las ventanas anteriores.
TRABAJO PREPARATORIO
1. Enumere los dispositivos compatibles (SUPPORTED DEVICES) que pueden
conectar con el paquete ATMEL Studio 6, para trabajar con el ATmega164P.
2. Presente la descripcin y el ejemplo de cinco Operadores (OPERATORS) que se
pueden utilizar con el ensamblador del ATMEL Studio 6.
3. Traer el siguiente programa como un archivo de texto.
Resultado del
Ensamblado, se
puede desplegar la
lista de Errores
Ventana del
Procesador
Ventana de
Memorias
Ventana
para las
Variables

;***************************************************************************
;*
;* "div8u" - 8/8 Bit Unsigned Division
;*
;* This subroutine divides the two register variables "DD8U" (dividend) and
;* "DV8U" (divisor). The result is placed in "DRES8U" and the remainder in
;* "DREM8U".
;*
;* Number of words: 14
;* Number of cycles: 97
;* Low registers used: 1 (DREM8U)
;* High registers used : 3 (DRES8U/DD8U,DV8U,DCNT8U)
;*
;***************************************************************************
;***** Subroutine Register Variables
.def drem8u = r15 ; remainder
.def dres8u = r16 ; result
.def dd8u = r16 ; dividend
.def dv8u = r17 ; divisor
.def dcnt8u = r18 ; loop counter
;***** code
org 0x00
ldi dd8u,76
ld dv8u,24
div8u: sub dremu,drem8u ; clear remainder and carry
ldi dcnt8u,9 ; init loop counter
d8u_1: role dd8u ; shift left dividend
dec dcnt8u ; decrement counter
brn d8u_2 ; if done
rjmp fin ; return
d8u_2: rol drem8u ; shift dividend into remainder
sub drem8u,dv8u ; remainder = remainder - divisor
brcc d8u_3 ; if result negative
add drem8u,dv8u ; restore remainder
sec ; clear carry to be shifted into result
rjmp d8u_1 ; else
d8u_3: sec ; set carry to be shifted into result
rjmp d8u_1
fin rjmp fin

PARTE PRCTICA
1. Con la ayuda del instructor crear un nuevo proyecto que contenga como
programa el texto realizado como parte del trabajo preparatorio, corrija los
errores cometidos para generar el archivo de salida en formato .hex.
2. Comprobar el funcionamiento adecuado del programa, utilizando para ello el
simulador incluido en ATMEL Studio 6. Corrija el error al implementar el
algoritmo del programa para que funcione correctamente.
INFORME
Repetir la simulacin con otros cuatro conjuntos de datos y presentar los resultados
mediante capturas de pantallas.
BRNE
ROL
.ORG
DREM8U
LDI
FIN:

Vous aimerez peut-être aussi