Anda di halaman 1dari 10

Laboratorio 1: Introduccin a CodeWarrior Simulando el microcontrolador en lenguaje Ensamblador

Revisin: agosto 03, 2012

ESTUDIANTE
Yo he enviado mi propio trabajo, y entiendo las penalidades que podrn ser aplicadas si envo un trabajo cuyo crdito no es mo. Horas de trabajo estimado 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 10 9 10 Escala 4: Ejemplar 3: Completo 2: Incompleto 1: Esfuerzo Menor

Nombre en Imprenta

Cdula

Ponderacin General

Firma

Fecha

0: No enviado 20% descontado del puntaje por cada semana tarde Puntos =Puntos concedidos (Pts) x Peso (Wt) Puntaje In-Lab Total

ASISTENTE DE LAB
# 1 2 3 4 Demostracin Estimulacin 1 Explore 4 Explore 5 Ejercicio de habilidad 1 Wt Pts 4 4 4 5 Tarde Puntaje Firma del Asistente de Lab Fecha

EVALUACIN
# 1 2 3 4 5 Explore 1 Explore 2 Estimulacin 2 Explore 3 Estimulacin 3 Adjuntos Wt 4 4 4 4 4 Pts Puntaje

Sem. Tarde

Puntaje Eval. Total Puntaje total es Puntaje In-lab ms puntaje eval.

Puntaje Total

Informacin general Una experiencia de laboratorio es vital para nosotros poder empezar a programar el microcontrolador y ser capaces de entender realmente cmo funciona y aplicarlo en el diseo de sistemas embebidos. En este mdulo se muestra al alumno cmo introducir un programa en lenguaje ensamblador en el entorno de desarrollo integrado CodeWarrior y luego simular su ejecucin usando el simulador en tiempo real/depurador.

Ing. Elas Mendoza H.

Pgina 1

Laboratorio 1: Introduccin a CodeWarrior Simulando el microcontrolador en lenguaje Ensamblador


Revisin: agosto 03, 2012

Objetivos de Aprendizaje En este mdulo le introducimos en el entorno de programacin CodeWarrior . Veremos cmo iniciar el sistema e introducir un programa que se ejecuta con el depurador. En el siguiente mdulo se le dar un programa y usted comenzar a aprender a usar el conjunto de instrucciones HCS12 mediante su modificacin, para cambiar la forma en que opera Criterios de xito Al final de este mdulo ser capaz de ensamblar un programa y ejecutarlo y depurarlo con el CodeWarrior simulador/depurador Requisitos previos Usted debe saber sobre el conjunto de instrucciones HCS12 y el direccionamiento de memoria en los modos disponibles. Usted no tiene que conocer el conjunto de instrucciones en detalle. Los mdulos de laboratorio siguientes le ayudarn a aprender eso.

Utilizando el simulador de CodeWarrior


1. Inicie el IDE CodeWarrior. a. Desde el escritorio de Windows, haga clic en Start> Programs> Freescale CodeWarrior> CodeWarrior Development Studio for S12(X) V5.1> CodeWarrior IDE. 2. Crear un proyecto nuevo. a. Desde la barra de men IDE principal, seleccione File> New, Nueva ventana aparece b. Resalte HC(S)12 New Project Wizard. c. Introduzca un nombre de proyecto que tenga sentido para usted (como lab_x). d. Escriba una ubicacin para el proyecto. Esto debera estar en una unidad o en un directorio en el que desea mantener sus HCS12 proyectos. e. Haga clic en OK. 3. En el Asistente para nuevo proyecto Pgina 2: Seleccionar MC9S12C128 (o su derivado) como el derivativo que desea utilizar y haga clic en Next. Pgina 3: Compruebe la compatibilidad con el idioma que desee (Assembly) y haga clic en Next. Pgina 4: Seleccione Relocatable Assembly.
Ing. Elas Mendoza H. Pgina 2

Laboratorio 1: Introduccin a CodeWarrior Simulando el microcontrolador en lenguaje Ensamblador


Revisin: agosto 03, 2012

Pgina 5: Seleccione Full Chipl Simulation y haga clic en Finish. En la ventana del manejador de proyecto 4. Cambie a Full Chip Simulation para depuracin, haga clic en la flecha hacia abajo y seleccionar Full Chip Simulation. (Esto no utiliza el hardware para la depuracin. Si desea utilizar realmente el hardware HCS12, elija TBDML
Configuracin de la Simulacin

5. Crear lista de archivos, abra el panel Simulator Settings haciendo clic en el icono que aparece arriba. a. Haga clic en + junto a Target en Target Settings. b. Resalte Assembler for HC12 y haga clic en Options. i. Verifica Generate a listing file. ii. Comprobar Object File Format. Elija formato de archivo ELF/DWARF 2.0. iii. Haga clic en OK. c. Haga clic en OK. 6. Abra la carpeta Sources (haga clic en el signo + si no est abierto). 7. Haga doble clic en main.asm e introduzca el siguiente cdigo despus del comentario. ; Your program code goes here.

Ing. Elas Mendoza H.

Pgina 3

Laboratorio 1: Introduccin a CodeWarrior Simulando el microcontrolador en lenguaje Ensamblador


Revisin: agosto 03, 2012

8. Gurdelo con cualquier nombre que desee: File> Save As. (Asegrese de que usted le da un nombre de archivo . asm, o simplemente puede utilizar el archivo main.asm si lo desea.) 9. Asegrese de que la informacin de depuracin se va a generar. a. En la ventana Project Manager Files, verifique que hay un en la columna de la derecha debajo del icono de error.

Ing. Elas Mendoza H.

Pgina 4

Laboratorio 1: Introduccin a CodeWarrior Simulando el microcontrolador en lenguaje Ensamblador


Revisin: agosto 03, 2012

10. Ensamble el archivo para verificar errores. a. Clic en Project > Compile b. Corrija cualquier error. 11. De un vistazo a su archivo .list a. File> Open y posicinese sobre la carpeta bin en su proyecto y abra el archivo .lst. Explore 1 1. Cuntos bytes y datos constantes hay en el programa? 2. No se puede decir de esta lista las posiciones de memoria donde se encuentran los bytes de la variable VarData. Por qu no? 3. Qu cdigo de operacin (en hexadecimal), es generado para la instruccin nop? 4. Alguna de las etiquetas en el programa genera algn bytes de cdigo? Estimulacin 1 1. Por qu la instruccin LDX ConstData se ensambla en CExx xx? 2. Cules son los cuatro bytes (en hexadecimal) ensamblados como bytes de datos constante por la directiva del ensamblador DC.B? 3. En la ConstData por qu DC.B produce diferentes bytes de datos para $10 y 10? En los ejercicios de laboratorios en el futuro es posible que desee aadir otros archivos fuentes para su proyecto. As es como se hace eso. 12. Aadir otros archivos fuentes a los archivos reubicables en el proyecto: a. Haga clic en el icono Add New Text File:

Ing. Elas Mendoza H.

Pgina 5

Laboratorio 1: Introduccin a CodeWarrior Simulando el microcontrolador en lenguaje Ensamblador


Revisin: agosto 03, 2012

b. Edite el archivo c. File > Save As (use el .asm como extensin de los archivos Ensamblador d. Adicinelo al proyecto: Project > Add *.asm al proyecto. En Add Files seleccione Full Chip Simulation e. Compile: Project > Compile 13. Ver el archivo enlazador de parmetros a. Haga clic en el signo + situado junto a la PRM y haga doble clic en el archivo Project.prm para abrirlo en el editor Explore 2 El archivo enlazador de parmetros nos permite localizar las diversas partes del programa en el tipo apropiado de la memoria. Por ejemplo, todos los datos de cdigo y datos constantes deben de estar en la ROM y los datos variables y la pila en la memoria RAM. 1. Mire en la seccin SEGMENTS a. Qu posiciones de memoria se utilizan para la memoria RAM? b. Cuantas posiciones de memoria se utilizan para la ROM? 2. Mire en la seccin PLACEMENT. Una variedad de opciones de ubicacin por defecto estn incluidos. Estamos interesados en saber dnde se encuentra el DEFAULT_ROM (la seccin de cdigo y de datos constantes en nuestro programa ensamblador) y la DEFAULT_RAM (seccin de variables de datos) a. En qu ubicaciones de la memoria estar el cdigo y? b. En qu posiciones de memoria estarn la data? Estimulacin 2 1. Qu cambios hara usted en el archivo enlazador de parmetros si el hardware de destino tiene memoria RAM en las posiciones de memoria $1000 - $1FFF (0x1000 - 0x1FFF)? 2. Qu cambios hara usted en el archivo enlazador de parmetros si desea localizar el cdigo y las constantes en la memoria a partir de $4000 (0x4000)? 14. Genere el proyecto a. Project > Make o haga clic en el icono

b. Corrija cualquier error del enlazador 15. Inspeccione el archivo mapa del enlazador
Ing. Elas Mendoza H. Pgina 6

Laboratorio 1: Introduccin a CodeWarrior Simulando el microcontrolador en lenguaje Ensamblador


Revisin: agosto 03, 2012

a. Haga clic en el signo + sobre Linker Map y abra Project.map. Explore 3 STARUP SECTION 1. Cul es la direccin de inicio del programa? SECTION-ALLOCATION SECTION 2. Qu base numrica se utiliza para determinar el tamao de las distintas secciones? 3. Cuntos bytes de ROM son utilizados por este programa? 4. Cuntos bytes de memoria RAM son utilizadas por este programa? OBJECT-ALLOCATION SECTION 5. Cul es la direccin de memoria de la etiqueta main_loop? 6. Cul es la direccin de memoria de la etiqueta loop? 7. En qu ubicaciones de la memoria se encuentra MyData? 16. Ejecute el programa sin la PBMCUSLK con el CodeWarrior true-Time Simulator a. Asegrese de que Full_Chip_Simulation se muestra en el Administrador de Proyecto como se muestra en el paso 4. b. Inicie el True-Time Simulator por Project > Debug, F5, o haciendo clic en el icono

Si aparece una advertencia haga clic en OK. c. Si el simulador no es el destino de depuracin, haga clic en Component > Set Target y elija Simulator Target Interface y haga clic en OK. d. Si su programa no se ha cargado, o si desea volver a cargarlo, haga clic en Simulator > Load y cargue bin\simulator.abs. e. Usted puede utilizar todas las caractersticas del simulador en el cdigo. Explore 4 Despus de que el simulador se ha puesto en marcha, eche un vistazo a la pantalla: 1. La ventana Source muestra su programa fuente 2. La ventana Assembly muestra el programa como se ve en la memoria. Haga clic derecho en la ventana Assembly y compruebe el Display Code para hacer que su
Ing. Elas Mendoza H. Pgina 7

Laboratorio 1: Introduccin a CodeWarrior Simulando el microcontrolador en lenguaje Ensamblador


Revisin: agosto 03, 2012

3. 4.

5. 6.

7.

pantalla muestra el cdigo en las posiciones de memoria $ C000 - $ C01A. Haga clic derecho de nuevo y vea el Display Simbolic para mostrar el simblico en lugar de direcciones decimales. La ventana Register muestra el estado actual/contenido de todos los registros. La ventana de Data mostrar el valor actual de los datos constantes y variables en su programa. Haga clic en el +ConstData para mostrar los cuatro bytes de datos constantes. Haga clic derecho sobre ConstData y seleccione Format All Hex. Haga clic en +VarData para mostrar los dos bytes de variables. La ventana Procedure muestra que procedimiento se encuentra actualmente y la ventana Command le permite entrar comandos en el simulador/depurador. La ventana Memory permite la visualizacin de los contenidos de la memoria. Haga clic derecho en la ventana memoria y seleccione Address. . . y en la ventana de visualizacin de direcciones entrar $C000. a. Qu se muestra aqu? Trate de cambiar el tamao de cualquiera de las ventanas.

Corra el Programa en el Simulador


Explore 5 1. En la ventana Source posicione el puntero del cursor sobre la instruccin NOP y haga clic derecho y seleccione Set Breakpoint 2. Haga clic en el Green Start/Continue Arrow o haga clic en Run > Start/Continue El programa debe corre a su punto de interrupcin y se detiene. (Nota: Un punto de interrupcin detiene el programa antes de ejecutar esa declaracin.) 3. Ahora, haga paso a paso a travs de su programa, una declaracin en lenguaje ensamblador a la vez haciendo clic en el botn de single-step o presionando F11 hasta llegar a la instruccin NOP en el inicio del programa de nuevo. (Vamos a ver lo que la instruccin LDS se trata ms adelante.) 4. En cada paso inspeccione la ventana de Registro para saber que est pasando en el registro. Trate de predecir qu pasar en cada paso ANTES que haga clic en el botn de paso.

Ing. Elas Mendoza H.

Pgina 8

Laboratorio 1: Introduccin a CodeWarrior Simulando el microcontrolador en lenguaje Ensamblador


Revisin: agosto 03, 2012

Estimulacin 3 1. En qu circunstancias tiene sentido ejecutar y depurar sus programas en el simulador? 2. cuando se desea ejecutar y depurar sus programas utilizando el depurador de hardware? Ejercicio de Habilidad 1 1. Haga doble clic en cada una de las cajas de registro en la ventana de Registro e introduzca un valor de cero para cada registro. No ser capaz de cambiar el CCR. 2. Pulse el botn Target Reset (o teclee control-R) para devolver el programa al estado de reajuste inicial. 3. Haga paso sencillo a travs del programa y complete una tabla que muestra el resultado de cada instruccin. El CCR (Registro de Condicin de Cdigo) bits NZVC se muestran en negrita cuando el bit est establecido. INSTRUCCIN Estado Reset lds #__SEG_END_SSTACK nop ldx #ConstData ldab #$02 ldaa 0,x staa VarData ldaa 2,x staa VarData+1 inx decb bne loop ldaa 0,x staa VarData ldaa 2,x staa VarData+1 inx decb bne loop nop bra main_loop
Ing. Elas Mendoza H.

D 0000

A 00

B 00

X 0000

Y 0000

PC C000

SP FFFE

NZVC 0000

Pgina 9

Laboratorio 1: Introduccin a CodeWarrior Simulando el microcontrolador en lenguaje Ensamblador


Revisin: agosto 03, 2012

Comunicacin 1. A medida que atraviesa su programa explquele a su instructor de laboratorio lo que ve en la pantalla. En particular, explique lo que est sucediendo a cada registro y al registro de condicin de cdigo a medida que atraviesa su programa. Qu preguntas tiene usted? Reflexin sobre el aprendizaje 1. Para la introduccin del programa y revisarlo paso a paso, liste las instrucciones que usted no est seguro de cmo funcionan. Compare su lista con su compaero de laboratorio, y si usted entiende algo que l o ella no entiende, explqueselo para que entienda. Si todava hay instrucciones que no estn seguros, pregunte a su instructor de laboratorio para que l le explique.

Ing. Elas Mendoza H.

Pgina 10

Anda mungkin juga menyukai