práctica nº3 - Escuela Politécnica Nacional

Anuncio
LABORATORIO DE SISTEMAS MICROPROCESADOS
ESCUELA POLITÉCNICA NACIONAL
Campus Politécnico "J. Rubén Orellana R."
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Carrera de Ingeniería Electrónica y Control
Carrera de Ingeniería Electrónica y Telecomunicaciones
Carrera de Ingeniería Electrónica y Redes de Información
Carrera de Ingeniería Eléctrica
LABORATORIO DE SISTEMAS MICROPROCESADOS
PRÁCTICA Nº3
1. TEMA :
Conocimiento del software de desarrollo ATMEL Studio 6
2. OBJETIVO:
Conocer una de las herramientas existentes para el desarrollo y depuración de programas
para aplicaciones con microcontroladores de 8 bits de Atmel, específicamente AVR
Studio 6.
3. INFORMACIÓN
El AVRStudio 6 es la evolución más reciente de las herramientas de software que ofrece
ATMEL.
Figura 1: Versiones de AVR Studio
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.
Dirección: Ladrón de Guevara E11-253
Teléfono: (02) 2976300 Ext.2209
Quito - Ecuador
Correo: coord.electronica.control@epn.edu.ec
LABORATORIO DE SISTEMAS MICROPROCESADOS
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 AVR Studio 6, que actualmente es el software que se encuentra en la página web del
fabricante (AVR Studio 6.2), es el IDE para los microcontroladores ATMEL de las
arquitecturas AVR y ARM Cortex-M.
Los Ensambladores
En el desarrollo de los programas de cualquier proyecto basado en microprocesador se
necesita de la ayuda de un Ensamblador, esto no es más que una herramienta de software
que simplifica la tarea de escribir los programas y que se encarga de traducir el código
simbólico o Lenguaje Ensamblador (Assembler) en un código ejecutable o Lenguaje de
Máquina, que se almacena en la memoria del microcontrolador para su ejecución.
Cuando se ensamblan un conjunto de programas lo que se hace es traducirlos en un
idioma mediante el cual se pueda instruir al CPU para que este ejecute eficazmente las
tareas que se desea realizar; por tanto al momento de escribir un programa se debe estar
totalmente familiarizado con la arquitectura del microcontrolador y las instrucciones que
puede ejecutar.
Un programa escrito en lenguaje ensamblador contiene:




Instrucciones del programa
Comentarios
Directivas del ensamblador
Controles para el ensamblador
Una instrucción de programa es el código que se transforma en lenguaje de máquina para
ser almacenado 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 códigos no generan instrucciones y pueden crear
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 sola
unidad.
Dirección: Ladrón de Guevara E11-253
Teléfono: (02) 2976300 Ext.2209
Quito - Ecuador
Correo: coord.electronica.control@epn.edu.ec
LABORATORIO DE SISTEMAS MICROPROCESADOS
Las soluciones se vuelven más simples cuando el código se divide en varios módulos o
subprogramas. Los beneficios de este tipo de programación son:
Desarrollo eficiente de programas: La programación ocupa menos tiempo, debido a que
los subprogramas son fáciles de estructurar, escribir y comprobar, en comparación con los
que se realizan en un solo módulo. Una vez que se han definido las entradas y salidas de
cada módulo, el programador proporciona la información requerida y verifica la exactitud
de cada módulo examinando los resultados. Terminadas estas pruebas, los módulos
separados se unen y son ensamblados como un solo módulo para el programa ejecutable,
finalmente el módulo completo puede ser sometido a las últimas pruebas.
Uso múltiple de subprogramas: El código escrito para un programa es a menudo útil para
otros, la programación modular permite guardar estas instrucciones para ser utilizadas en
el futuro. El código puede ser reutilizado, se pueden unir con otros módulos que estén
previamente almacenados y que cumplan con los requisitos de entrada y salida. También
se tiene la facilidad de guardar estas rutinas para ser usadas solamente con ciertos
programas; es decir, que no estén disponibles para todos.
Facilidad de depuración y modificación: Los programas modulares son por lo general más
fáciles de depurar que otro tipo de programas, debido a que las interfaces para cada
módulo están bien definidas, se pueden aislar los problemas que presentan cada módulo
en forma específica.
Breve descripción del entorno AVRStudio 6
Una vez invocado el entorno se despliega la Página Inicial, en donde se puede escoger
entre crear un Nuevo Proyecto, abrir Ejemplos de Proyectos o Proyectos Elaborados, cuyo
listado más reciente también se muestra. Además, existen enlaces a las diferentes ayudas
que el programador necesita.
Figura 2: Ventana de inicio de AVR Studio 6
Al escoger la creación de un nuevo proyecto (New Project…), en la ventana que se
despliega para proyectos en Assembler, llenar el nombre del archivo de extensión .asm y
Dirección: Ladrón de Guevara E11-253
Teléfono: (02) 2976300 Ext.2209
Quito - Ecuador
Correo: coord.electronica.control@epn.edu.ec
LABORATORIO DE SISTEMAS MICROPROCESADOS
de la carpeta del proyecto (que se rellena automáticamente). También se debe escoger la
ubicación en donde se van a crear. Luego pulsar OK.
Figura 3: Iniciar un proyecto en assembler
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
información del dispositivo y de las herramientas de hardware.
Figura 4: Selección de Microcontrolador y característica de este.
A partir de aquí la herramienta está operativa, 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 solución y las respectivas propiedades. En la parte inferior se encuentra la ventana de
salida de resultados al realizar el ensamblado.
Dirección: Ladrón de Guevara E11-253
Teléfono: (02) 2976300 Ext.2209
Quito - Ecuador
Correo: coord.electronica.control@epn.edu.ec
LABORATORIO DE SISTEMAS MICROPROCESADOS
Figura 5: Ventana principal de AVR Studio 6
Los textos se escriben con mayúsculas o minúsculas que el ensamblador no diferencia. Se
recomienda que sea una instrucción por línea respetando el formato de las columnas de:
Etiqueta, Código de la Operación (Nemonicos ), Operandos y Comentarios. Que con la
ayuda de los colores que se generan automáticamente se puede leer los programas con
facilidad.
Figura 6: Estructura de líneas de programación
Al momento de invocar el ensamblado del programa, se encadena automáticamente
con el archivo m164pdef.inc, que es un archivo de texto suministrado por el
fabricante con las direcciones de todos los registros de E/S del ATmega164P
asignadas a una etiqueta que corresponden a los nombres de los registros que Atmel
utiliza en su documentación. De esta forma, es fácil elaborar el programa con el nombre
del registro en lugar de la dirección que ocupa. Así mismo, se puede asignar nombres a los
registros r0-r31 mediante la directiva .def.
Dirección: Ladrón de Guevara E11-253
Teléfono: (02) 2976300 Ext.2209
Quito - Ecuador
Correo: coord.electronica.control@epn.edu.ec
LABORATORIO DE SISTEMAS MICROPROCESADOS
Figura 7: Ejemplo de programa
Una vez ensamblado el programa con Build -> Build Solution, los errores se los ubica, para
ser corregidos, mediante dos clicks sobre las líneas que se encuentran la lista de la
ventana inferior. Este proceso se repite hasta obtener completo el código de máquina.
Figura 8: Built Solution
Con Debug -> Step Into activamos la simulación. Se podrá interactuar con el
programa mediante los elementos que aparecen en las ventanas del Procesador y de la
Memoria que se despliegan en lugar de las anteriores.
Dirección: Ladrón de Guevara E11-253
Teléfono: (02) 2976300 Ext.2209
Quito - Ecuador
Correo: coord.electronica.control@epn.edu.ec
LABORATORIO DE SISTEMAS MICROPROCESADOS
Figura 9: Simulación de un programa
4. TRABAJO PREPARATORIO
4.1 Consulte y enumere las ayudas que posee el paquete AVRStudio 6.
4.2 Consulte y presente la sintaxis de las diferentes líneas que se utilizan con el
ensamblador del AVRStudio 6.
4.3 Traer el siguiente programa como un archivo de texto
;***************************************************************************
;*
;* "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
Dirección: Ladrón de Guevara E11-253
Teléfono: (02) 2976300 Ext.2209
Quito - Ecuador
Correo: coord.electronica.control@epn.edu.ec
LABORATORIO DE SISTEMAS MICROPROCESADOS
.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
5. EQUIPO Y MATERIALES
Material de escritorio.
6. PROCEDIMIENTO
6.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.
6.2 Comprobar el funcionamiento adecuado del programa, utilizando para ello el
simulador incluido en AVRStudio 6.
7. INFORME:
El instructor indicará al final de la sesión los temas que serán incluidos en el informe.
8. REFERENCIAS:
Notas de aplicación de ATMEL AVR200, AVR201, AVR202, AVR204
http://www.atmel.com/products/microcontrollers/avr/default.aspx?tab=documents
Dirección: Ladrón de Guevara E11-253
Teléfono: (02) 2976300 Ext.2209
Quito - Ecuador
Correo: coord.electronica.control@epn.edu.ec
LABORATORIO DE SISTEMAS MICROPROCESADOS
Responsables.
Ing. Jhon Pilataxi
Marco Herrera, MSc.
Revisado por:
Dra. Jackeline Abad
Jefa de Laboratorio de Sistemas de Control
Dirección: Ladrón de Guevara E11-253
Teléfono: (02) 2976300 Ext.2209
Quito - Ecuador
Correo: coord.electronica.control@epn.edu.ec
Descargar