16
1 Tema: Introducción a CodeWarrior IDE Identificar las partes principales de la ventana de CodeWarrior IDE y su simulador utilizando el proyecto de ejemplo. Que el estudiante: Haga uso de Codewarrior IDE para crear un proyecto de programación en ensamblador para HCS12X. Analice la plantilla de un programa de ejemplo generado por Codewarrior para familiarizarse con sus partes. Simule la ejecución del programa para observar la representación de los registros y la memoria del microprocesador. Configure la herramienta de visualización para representar los valores de la memoria. Los microprocesadores en su manera más primitiva se programan modificando los números que se encuentran en su memoria, algunos números le representan al procesador códigos de operación con cierta función, que puede ser, mover, sumar, restar, complementar. Estos números son unos y ceros en conjuntos de 8 bits (bytes) que el fabricante coloca en una tabla llamada “Set de Instrucciones”. Los programadores crean un compilador que traduce de esta tabla las funciones en forma de nemónicos (palabras que ayudan a recordar la función). Los programas compiladores permiten “traducir” un archivo de entrada de texto que contiene todas las instrucciones, en un archivo binario que modificará la memoria del procesador para realizar una tarea. El Codewarrior IDE permite realizar la anterior operación en lenguaje ensamblador, C ó C++, detecta errores de sintaxis en las instrucciones escritas en el archivo de texto y permite Facultad: Ingeniería. Escuela: Electrónica. Asignatura: Microprocesadores. Lugar de ejecución: Laboratorio de Microprocesadores (Aula 3.23). Objetivos generales Microprocesadores. Guía 1 Objetivos específicos Introducción teórica

Tema: Introducción a CodeWarrior IDE

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tema: Introducción a CodeWarrior IDE

1

Tema: Introducción a CodeWarrior IDE

Identificar las partes principales de la ventana de CodeWarrior IDE y su simuladorutilizando el proyecto de ejemplo.

Que el estudiante: Haga uso de Codewarrior IDE para crear un proyecto de programación en

ensamblador para HCS12X. Analice la plantilla de un programa de ejemplo generado por Codewarrior para

familiarizarse con sus partes. Simule la ejecución del programa para observar la representación de los registros y la

memoria del microprocesador. Configure la herramienta de visualización para representar los valores de la memoria.

Los microprocesadores en su manera más primitiva se programan modificando los números

que se encuentran en su memoria, algunos números le representan al procesador códigos de

operación con cierta función, que puede ser, mover, sumar, restar, complementar. Estos

números son unos y ceros en conjuntos de 8 bits (bytes) que el fabricante coloca en una

tabla llamada “Set de Instrucciones”. Los programadores crean un compilador que traduce de

esta tabla las funciones en forma de nemónicos (palabras que ayudan a recordar la función).

Los programas compiladores permiten “traducir” un archivo de entrada de texto que contiene

todas las instrucciones, en un archivo binario que modificará la memoria del procesador para

realizar una tarea.

El Codewarrior IDE permite realizar la anterior operación en lenguaje ensamblador, C ó C++,

detecta errores de sintaxis en las instrucciones escritas en el archivo de texto y permite

Facultad: Ingeniería.Escuela: Electrónica.Asignatura: Microprocesadores.Lugar de ejecución: Laboratorio de Microprocesadores (Aula 3.23).

Objetivos generales

Microprocesadores. Guía 1

Objetivos específicos

Introducción teórica

Page 2: Tema: Introducción a CodeWarrior IDE

2

simular el comportamiento del programa para detectar posibles errores de lógica. Otra de sus

funciones más importante es comunicarse con el núcleo procesador y descargar el archivo

binario compilado hacia la memoria para luego ejecutarlo, ya sea paso a paso o de una sola

vez.

En esta práctica no se requerirá experiencia de programación en ensamblador, solamente

será una manera de tener el primer contacto con la herramienta de compilación y el

simulador, que serán utilizados a lo largo del curso.

• Computadora con Windows XP o superior con el software CodeWarrior IDE SpecialEdition 5.1.

1. Encienda la computadora, accederá al sistema operativo Ubuntu, siempre deberá utilizar

el usuario llamado “usuario0”, la contraseña es “usuario”.

2. Al tener cargado el escritorio de Ubuntu podrá observar en el escritorio un icono que tiene un

cubo de color azul claro con nombre “Win 7”, dé doble clic sobre este icono para cargar una

máquina virtual de Virtualbox con Windows 7.

3. Al haber cargado por completo todo Windows, escriba en el menú inicio “Codewarrior IDE”

para acceder al programa.

4. Podrá observarse la siguiente figura, la ventana principal de Codewarrior con el asistente de

creación de proyectos.

Microprocesadores. Guía 1

Procedimiento

Materiales y equipo

Page 3: Tema: Introducción a CodeWarrior IDE

3

Figura 1. Ventana principal de Codewarrior IDE.

5. Dé clic sobre el botón “Create New Project” para comenzar la edición de un programa en

ensamblador, aparecerá luego la siguiente figura:

Figura 2. Elección del dispositivo y el tipo de conexión

6. De esta ventana habrá que elegir un nombre del núcleo procesador a programar. Seleccione

la familia HCS12X y de ésta HCS12XD Family y el MC9S12XDT512. En cuanto a la forma de

conexión en el espacio “Connections” seleccione “Full Chip Simulation”. Puede auxiliarse con

la siguiente figura:

Microprocesadores. Guía 1

Page 4: Tema: Introducción a CodeWarrior IDE

4

Figura 3. Selección de Dispositivo MC9S12XDT512 y Tipo de Conexión Full Chip Simulation.

7. Dé clic en siguiente y en la siguiente ventana se consultará acerca de si es un proyecto para

un núcleo o para usar el otro núcleo procesador llamado XGATE, por el momento se utilizará

solamente el núcleo HCS12X como se muestra en la Figura 4.

Figura 4. Consulta si el proyecto será de uno o dos núcleos.

8. Dé clic en siguiente, la consulta de esta ventana es sobre cuál es el lenguaje de programación

que se usará. Por defecto aparece seleccionado C, quite esa selección dando clic sobre la

casilla y luego se habilitará la opción “Absolute Assembly” que es lenguaje ensamblador con la

definición de las direcciones en forma absoluta, dé clic sobre esta casilla para que el proyecto

sea en lenguaje ensamblador.

Microprocesadores. Guía 1

Page 5: Tema: Introducción a CodeWarrior IDE

5

Figura 5. Parámetros del proyecto: Lenguaje y nombre del proyecto.

9. En esta misma ventana de la Figura 5 se le pueden asignar nombre al proyecto y la ruta

dónde será guardado dele el nombre “Simulador.mcp”.

Figura 6. Selección de Lenguaje ensamblador, y cambio de nombre al proyecto.

10.Dé clic en siguiente y en esta ventana se nos pide insertar algún archivo de texto en

ensamblador al proyecto. Esta opción será útil cuando se tenga ya un programa previo y

queramos adjuntarlo al proyecto, en este momento se dará clic en siguiente.

Microprocesadores. Guía 1

Page 6: Tema: Introducción a CodeWarrior IDE

6

Figura 7. Añadir un archivo de programa adicional al proyecto.

11. La última ventana del asistente consulta si se desea utilizar las opciones de desarrollo rápido

de aplicaciones. No se explorará esta opción deje la opción por defecto “None”. Puede dar clic

en finalizar.

Figura 8. Desarrollo rápido de aplicaciones.

12.Después de haber finalizado el asistente nos aparecerá la ventana de edición de programa de

Codewarrior.

Microprocesadores. Guía 1

Page 7: Tema: Introducción a CodeWarrior IDE

7

Figura 9. Codewarrior IDE con archivo main.asm creado.

13.Observe en la Figura 9 cómo en la parte izquierda de la ventana se encuentra el árbol del

proyecto, donde está la carpeta “Sources” que es donde se guardan los códigos fuente. En

este caso se ha creado un programa de ejemplo llamado “main.asm”. Se puede explorar este

código dando doble clic sobre el icono de ese archivo.

14.Analice ese código y observe las partes de las que está compuesto. El punto y coma antes

algunas línea es un comentario.

15.El programa realiza el cálculo de la Sucesión de Fibonacci. Para saber de qué trata esta

sucesión consulte el siguiente sitio web:

http://www.disfrutalasmatematicas.com/numeros/fibonacci-sucesion.html

16. Hay dos variables de 16 bits llamadas Counter y FiboRes, Counter almacenará el “n” de la

sucesión y FiboRes tendrá el resultado. Se compilará el programa dando clic sobre el ícono

Make o presionando la tecla F7.

17.Make nos dirá si hay errores de compilación, para una muestra de esto, cambie la palabra CLI

por CLA y vuelva a realizar el paso 16. Deberá aparecer un mensaje como el siguiente y

resaltará en el texto con una flecha roja donde se encuentre el error:

Figura 10. Errores mostrados por el compilador.

18.Vuelva a cambiar CLA por CLI y compile nuevamente. Con esto se ha generado un archivo

binario llamado Project.abs que se descargará a la memoria del microprocesador simulado

Microprocesadores. Guía 1

Page 8: Tema: Introducción a CodeWarrior IDE

8

mediante el comando Debug o mediante presionar la tecla F5. Al hacerlo aparecerá la

ventana de depuración que se muestra en la Figura 11.

Figura 11. Ventana del Simulador y depurador.

19.Maximice esta ventana para apreciar mejor sus partes. En la siguiente tabla se da una breve

descripción de las más utilizadas en el proceso de depuración.

Parte Descripción

Barras de Menú y de Herramientas: Contienen

los comandos esenciales para la depuración del

programa y la personalización de la visualización.

Ventana Source: Contiene la misma información

del archivo fuente, con la diferencia que se tiene

una línea azul que representa el comando que se

va a ejecutar.

Microprocesadores. Guía 1

Page 9: Tema: Introducción a CodeWarrior IDE

9

Ventana Assembly: Contiene dos columnas, la

primera representa la dirección de memoria

donde se almacenó la instrucción; en la segunda

columna se muestra la instrucción y el operando

numérico que se interpretan de los números del

archivo binario.

Es donde se puede visualizar el contenido

numérico de las variables cuando se ejecuta el

programa. Se puede observar que son los

símbolos que están en el código fuente como

variables.

Ventana Register: Muestra los registros internos

del microprocesador y su contenido.

D: Registro acumulador 16 bits (A y B).

A: Registro acumulador 8 bits (MSByte de D).

B: Registro acumulador 8 bits (LSByte de D).

IX, IY: Registros Índice X e Y.

IP y PC: Registros Puntero de instrucción y

Contador de Programa.

SP: Puntero de Pila

CCR: Registro de Condición de Código (estado

de banderas).

Ventana Memory: Muestra los contenidos de

memoria desde una dirección que el usuario

puede solicitar.

Tabla 1. Partes más utilizadas en la depuración.

20.Ubíquese en la barra de herramientas, Los comandos de depuración son los que están más a

Microprocesadores. Guía 1

Page 10: Tema: Introducción a CodeWarrior IDE

10

la derecha. La siguiente tabla los describe:

Comando Descripción

Comando Start/Continue (F5): Arranca la ejecución completa del programa desde el

inicio o continúa a partir de dónde se le detuvo.

Comando Single step (F11): Ejecuta una sola instrucción a partir del Puntero de

Instrucción IP.

Comando Step over (F10): Ejecuta una sola instrucción a partir del Puntero de

Instrucción al igual que Single step. Con la diferencia que los llamados a subrutina

(BSR y CALL) los ejecuta rápidamente como una sola instrucción.

Comando Step out (shift + F11): Si la ejecución del programa se detuvo en una función

continúa la ejecución y para en la instrucción que sigue después del llamado. No tiene

efecto si no hay llamados de función presentes

Comando Assembly step (Ctrl + F11): Es como Single Step en lenguaje ensamblador.

En otros lenguajes ejecuta una sola instrucción de ensamblador.

Comando Halt (F6): Detiene la ejecución del programa que se hizo con Start

Comando Reset Tarjet (Ctrl+R): Detiene la ejecución del programa y hace que los

valores del Puntero de Instrucción y Contador de Programa se reinicien con la dirección

de inicio del programa.Tabla 2. Comandos del depurador.

21.Utilice el comando Single Step dando clic sobre este hasta que llegue a la instrucción LDX

Counter (La línea azul deberá estar encima de esta instrucción). Observe la ventana DATA y

anote los contenidos de las variables Counter y FiboRes

Counter: __________ FiboRes: ___________

22.Observe la ventana Register y anote el contenido de los registros IX y D

IX: ______ D: _______

23.Procedamos a hacer un Breakpoint dé clic derecho sobre la instrucción LDX Counter y del

menú contextual que aparecerá seleccione “Set Breakpoint”. Este será un punto donde se

detendrá la ejecución del programa.

24.Dé clic sobre el icono del comando Start/Continue una vez, y vuelva a anotar los valores

de Counter y FiboRes que están en la ventana DATA.

Microprocesadores. Guía 1

Page 11: Tema: Introducción a CodeWarrior IDE

11

Counter: __________ FiboRes: ___________

25.Registre por lo menos 15 valores de FiboRes en la siguiente tabla:

Counter 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

FiboResTabla 3. Registro de valores del resultado en FiboRes

26.Compare los valores obtenidos en la tabla anterior con la calculadora web del siguiente sitio:

https://www.easycalculation.com/es/algebra/Fibbo.php

27.En la ventana Data dé clic sobre la variable Counter y observe en la parte superior que

aparece una dirección 0x2000.

Figura 12. Dirección de memoria de Counter visto desde la ventana Data.

28.En la ventana Memory en la esquina inferior derecha se puede ir a visualizar el contenido de

la dirección del numeral anterior. Dé clic derecho sobre la ventana Memory y del menú

contextual seleccione “Address” aparecerá un cuadro de diálogo como el siguiente:

Figura 13. Cuadro de diálogo “Display Address”.

29.Escriba el número 2000 y luego dé clic en OK, aparecerá un resultado como el siguiente:

Figura 14. Ventana Memory mostrando los valores de Counter y FiboRes.

30.Observe que los valores resultantes son mostrados en hexadecimal, las direcciones están en

Microprocesadores. Guía 1

Page 12: Tema: Introducción a CodeWarrior IDE

12

la columna de la izquierda y las columnas siguientes son las localidades de memoria y su

contenido. La ventana Data tiene que Counter tiene un valor de 15 y el valor mostrado en

memoria es 0x000F.

31.Para darle un poco de mejor comprensión a los datos mostrados por Memory puede cambiar

el formato de visualización dando clic derecho en la ventana memory y seleccionando la

opción “Format” y de ese sub menú la opción “Dec” para que la representación sea decimal.

32.Puede cambiar los valores de las localidades de memoria dando doble clic en la localidad que

desea modificar, para el caso la casilla que contiene el 15 cámbiela por 12 y luego presione

enter. Vaya a la ventana Data y verifique que también ese cambio será reflejado en la variable

Counter.

33.En la ventana Data dé doble clic sobre Counter, el valor aparecerá en otro color y disponible

para que se pueda modificar, cámbielo por 15 y presione luego Enter. Este cambio también

será reflejado en la ventana Memory.

34.Seleccione del menú “Component” la opción “Open”, aparecerá un cuadro de diálogo, busque

en el conjunto de iconos mostrados el de “Visualization Tool” , selecciónelo y

presione OK

Figura 15. Ventana de la herramienta de Visualización.

35.Dé clic derecho sobre el espacio de trabajo de esta ventana y seleccione del menú la opción

“Add New Instrument” y del submenú seleccione “Analog”

Microprocesadores. Guía 1

Page 13: Tema: Introducción a CodeWarrior IDE

13

Figura 16. Inserción del Instrumento analógico.

36.Dé doble clic sobre el instrumento recién insertado y se mostrarán sus propiedades, Modifique

el campo Kind of Port seleccionando “Variable” y el campo Port to display escribiendo Counter.

High Display Value colóquele un valor de 100.

Figura 17. Modificación del Instrumento Analog.

37.Cierre el diálogo de propiedades y ahora modifique desde la ventana Data el valor de Counter

primero a cero, luego a 50, 75 y por último 100, observe la marca roja cómo se desplaza por la

Microprocesadores. Guía 1

Page 14: Tema: Introducción a CodeWarrior IDE

14

escala.

38.Dé clic sobre el componente Analog y presione la tecla suprimir o delete y luego “Add new

Instrument” y de este el componente Bar. Modifique sus propiedades como en la siguiente

figura y compruébelo como en el numeral anterior

Figura 18. Modificación de las propiedades de Bar.

39.Compruebe el instrumento Value as Text, ponga dos en el área de trabajo y configúrelos de la

siguiente manera:

Figura 19. Modificación de las propiedades de Value as Text

40.Como última prueba utilice el instrumento LED y modifique sus propiedades de la siguiente

Microprocesadores. Guía 1

Page 15: Tema: Introducción a CodeWarrior IDE

15

manera:

Figura 20. Cambio de propiedades de LED.

41.Observe que lo que se quiere desplegar en Port to Display es el registro A, pero en el campo

“Bitnumber to display” se ha ubicado 0, es decir el bit menos significativo del registro A. Para

probar su funcionamiento vaya a la ventana Register y dé doble clic sobre el cuadro del

contenido del registro A, coloque el valor de 1 y observe qué sucede con la visualización. Para

probar el Led apagado, coloque el valor de 0 en A.

• Ayuda de programa CodeWarrior IDE.

• http://www.disfrutalasmatematicas.com/numeros/fibonacci-sucesion.html

• https://www.easycalculation.com/es/algebra/Fibbo.php

Microprocesadores. Guía 1

Bibliografía

Page 16: Tema: Introducción a CodeWarrior IDE

16

EVALUACION

% 1-4 5-7 8-10 Nota

CONOCIMIENTO

25% Conocimiento deficiente

de los fundamentos

teóricos

Conocimiento y

explicación incompleta

de los fundamentos

teóricos

Conocimiento completo

y explicación clara de

los fundamentos

teóricos

APLICACIÓN DEL CONOCIMIENTO

70% No termina el

procedimiento planteado

en la guía 10%

No modifica el programa

30%

No responde a preguntas

de retroalimentación 30%

Termina el

procedimiento con

bastante asistencia 10%

Modifica el programa no

interpreta correctamente

los resultados 30%

Sus respuestas son

incompletas 30%

Termina el

procedimiento de forma

independiente 10%

Modifica el programa

interpretando

correctamente sus

resultados 30%

Sus respuestas son

correctas y completas

30%

ACTITUD 2.5% Es un observador pasivo. Participa ocasionalmente

o lo hace

constantemente pero sin

coordinarse con su

compañero.

Participa propositiva e

integralmente en toda la

práctica.

2.5% Es ordenado; pero no

hace un uso adecuado de

los recursos

Hace un uso adecuado

de los recursos, respeta

las pautas de seguridad;

pero es desordenado.

Hace un manejo

responsable y adecuado

de los recursos

conforme a pautas de

seguridad e higiene.

TOTAL 100%

Microprocesadores. Guía 1

Hoja de cotejo: 1

Guía 1: Introducción a Codewarrior IDE

Alumno:

Docente: GL: Fecha:

Maquina No: