P03_2013B

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, específicamente el ATMEL Studio 6. MARCO TEÓRICO: ATMEL Studio 6 es la evolución más 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 añade 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 características 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++. También, incluye el AVR Software Framework que consiste en una colección de códigos 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 página 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 creación, actualización y depuración 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 Módulos Fuentes de los programas, que son archivos con extensión .asm, donde se encuentran textos planos conformados por líneas que contiene: Instrucciones del programa Comentarios Directivas del ensamblador Controles para el ensamblador

Transcript of P03_2013B

  • 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: