Diferencia entre revisiones de «Codewarrior 10.3»
(→Añadir Archivos) |
(→Depuración (debugging) del Proyecto) |
||
Línea 156: | Línea 156: | ||
==== Depuración (debugging) del Proyecto ==== | ==== Depuración (debugging) del Proyecto ==== | ||
− | Para depurar el programa codificado, solo hace falta | + | Para depurar el programa codificado, solo hace falta presionar en el botón [[Archivo:IconoDebugging.jpg]] y nos saldrá la siguientes opciones [[Archivo:SeleccionModoDebugging.jpg]] de las cuales '''LA PRIMERA VEZ''' debemos usar la opción '''Debugging Configurations... |
1.- Aparecerá la ventana de error diciendo qué lineas del código tienen algún error o ''warning''. También pueden aparecer comentarios que hace el compilador. Revisar el Articulo [[Errores en Simulacion -Codewarrior 6.3]]. | 1.- Aparecerá la ventana de error diciendo qué lineas del código tienen algún error o ''warning''. También pueden aparecer comentarios que hace el compilador. Revisar el Articulo [[Errores en Simulacion -Codewarrior 6.3]]. |
Revisión del 10:11 31 mar 2013
CodeWarrior es una herramienta basada en un entorno IDE (Integrated Development Environment). Desarrollado por Metrowerks, CodeWarrior integra edición de archivos, compilación optimizada, simulación de código, depuración y programación de diferentes dispositivos tales como el MPU, MCU, DSP, entre otros.
Este programa trae la versatilidad de programar en lenguaje ensamblador, C, C++, e incluso permite combinaciones de código en los tres tipos mencionados.
Los productos clásicos de CodeWarrior fueron lanzados originalmente para Macintosh (Mac), Microsoft Windows, Linux, Solaris, PlayStation 2, Nintendo GameCube, Nintendo DS, Nintendo Wii, Palm OS, Symbian OS e incluso BeOs. Sin embargo, a partir de CodeWarrior Pro 10 se descontinuó la versión para Macintosh.
Contenido
Instalación
La instalación de este software no es gratuita. Se debe poseer una licencia para poder ser instalado y para esto se debe comprar el software directamente o se debe adquirir algún dispositivo el cuál contenga un CD con el programa para su instalación. Sin embargo, la edición especial está disponible en la página web de Freescale, que es gratuita y aun cuando es una edición con limitaciones en el tamaño del código y características avanzadas, es suficiente para la mayoría de las aplicaciones.
Esta versión de CodeWarrior es totalmente compatible con sistemas operativos de 32 y 64 Bits.
Windows 7/8 de 32 y 64-bit
En el caso de Windows 7/8 de 32-bit el proceso de instalación consiste en seguir los pasos designados por el Wizard o asistente, en resumen son escoger la ubicación de la instalación (se puede dejas la que viene por defecto y se instalara en la raiz del disco C, escoger las librerías a instalar (en nuestro caso la R08 y Hs08), aceptar la instalación de drivers para la comunicación con la tarjeta de desarollo y esperar a que finalice la instalación.
En el caso de Windows 7/8 de 64 Bits el proceso es el mismo puesto que ambos sistemas operativos ofrecen "full" compatibilidad con sistemas de 32 bits.
NOTA: las instalaciones han sido realizadas en Windows 7 y/u 8 en versiones Professional y Ultimate.
Proyectos
CodeWarrior, como muchos programas, trabaja mediante la creación de proyectos y para esto se tienen una gran variedad de opciones para la codificación tales como elegir qué lenguaje se utilizará (C, C++, Ensamblador o Mixto), Elegir el Microcontrolador a utilizar, entre otra serie de diferentes especificaciones. Para la creación de un proyecto se recomienda seguir el siguiente tutorial.
Lenguajes de Programación
Esta versión de Codewarrior ofrece la posibilidad de programar en lenguaje C, C++ y lenguaje ensamblador. Lo bueno de contar con un compilador para lenguaje C, C++ y ensamblador es que se puede codificar dependiendo de qué nivel se necesite manejar. Ademas de esto, se pueden crear códigos mixtos de modo que se pueden realizar códigos más rápidos y efectivos.
Lenguaje Ensamblador
En el manual y "set de Instrucciones" podrán encontrar la información especifica sobre cuáles instrucciones maneja CodeWarrior y cuáles son sus funciones, además de explicar la sintaxis de programación para hacer uso de lenguaje ensamblador.
Combinación de Lenguajes
Para hacer uso de una combinación de lenguaje "C" y lenguaje ensamblador, debemos crear un proyecto en lenguaje "C" y luego, si hay necesidad de utilizar lenguaje ensamblador, usaremos el comando _ASM para cada instrucción, o simplemente colocamos el comando seguido de unos corchetes en donde colocaremos todas las instrucciones que deseemos en este lenguaje.
Creación de un Proyecto
Para crear un nuevo proyecto deben abrir el CodeWarrior V10.3 (Haciendo doble click el CodeWarrior) y le aparecera la siguiente ventana:
Aquí debe seleccionar la primera opción que dice New Proyect Wizard para abrir un proyecto nuevo.
Esta sección está enfocada a los estudiantes de los cursos Arquitectura del Computador 1 y Arquitectura Del Computador 2 de la Universidad Simón Bolívar, Caracas, Venezuela.
En la segunda ventana podrá asignarle nombre a su proyecto y además destildando la opción Use default location podrá escoger la dirección o carpeta donde guardará el proyecto.
En esta ventana deberá escoger primero la serie a la que pertenece su Microcontrolador (HC08, HCS08, RS08, ColdFire V1 o Flexis), en nuestro caso sera S08, esta se expandirá y mostrará las diferentes familias demicros que se pueden seleccionar. Seleccionen la familia a la cual pertenece su micro, la familia QE, y finalmente seleccionen su micro, el MC9S08QE128.
Se abrirá una cuarta ventana en la cual seleccionaremos el modo de conexión con la tarjeta de desarrollo, bien sea P&E Full Chip Simulator (solo para hacer debugging) o cualquiera de las opciones de conexión, en nuestro caso seleccionaremos P&E USB MultiLink Universal[FX]/ USB MultiLink (modo de conexión usb con la tarjeta DEMOQE128).
En esta ventana observaremos 4 opciones para el lenguaje Absolute Assembly para codificar únicamente en lenguaje ensamblador, Relocatable Assembly para codificar principalmente en lenguaje ensamblador,C para codificar principalmente en lenguaje C y C++ para codificar principalmente en C++. Con estos últimos 3, seleccionas el lenguaje principal pero permites la codificación mixta.
Para finalizar nos Aparecerá la siguiente ventana en donde se muestran 3 opciones None, Device Inicializationy Processor Expert que sirven para un inicio rápido en el main. Para nuestro proyecto no es necesaria ninguna inicialización por lo que se debe seleccionar None y luego presionarFinish y de esta manera se podrá comenzar a codificar el proyecto.
En caso de duda, puede referirse a un Tutorial "Creación de Proyectos".
Depuración (debugging) del Proyecto
Para depurar el programa codificado, solo hace falta presionar en el botón y nos saldrá la siguientes opciones de las cuales LA PRIMERA VEZ debemos usar la opción Debugging Configurations...
1.- Aparecerá la ventana de error diciendo qué lineas del código tienen algún error o warning. También pueden aparecer comentarios que hace el compilador. Revisar el Articulo Errores en Simulacion -Codewarrior 6.3.
2.- El programa se depurara y se abrirá la ventana True-time Simulator & Real-time Debugger.
Si nos encontramos en el segundo caso, observaremos los siguientes puntos en la ventana que abrirá: <prev>
1.- Icono para correr el programa completo o hasta hallar una parada (breakpoint). 2.- Icono para correr el programa instrucción por instrucción. 3.- Icono para saltar una instrucción. 4.- Icono para salir de una instrucción. 5.- Icono para correr instrucción por instrucción en ensamblador. 6.- Icono para detener la corrida del programa. 7.- Icono para detener y reiniciar el programa. 8.- Indicador de una parada (breakpoint). Éste se puede colocar haciendo click derecho en la instrucción en que se desee parar
seleccionando Set breakpoint.
En el caso de estar conectado al Microcontrolador, para depurar el programa debemos tener configurada la conexión en P&E Multilink/Cyclone Pro y al hacerlo observaremos 2 ventanas adicionales, la primera preguntándonos si queremos conectar y descargar nuestro programa hacia el micro (borrando el programa que este tenia anteriormente), y una segunda ventana en la que nos pedirá una ultima confirmación. A partir de ahí, las herramientas para correr el programa son exactamente las mismas que cuando no se tiene el micro conectado.
Entre las partes más importantes de la ventana de simulación se encuentran:
- Source: Programa fuente en depuración. Muestra el código tal cual se digitó y que se está ejecutando en el proceso de depuración. Una barra azul indica la instrucción que se va a ejecutar y su dirección debe coincidir con la dirección del registro "PC". Dentro de esta ventana, haciendo presión sobre el botón derecho del ratón, es posible generar las siguientes acciones:
- Set Breakpoint: Ubicar puntos de chequeo.
- Run to Cursor: Ejecutar el programa hasta la posición del cursor.
- Show Breakpoints: Mostrar los puntos de chequeo activos.
- Show Location: Mostrar la localización de la instrucción a ejecutar en la memoria y en la ventana del ensamblador.
- Set/Delete Mark Points: Ubicar/Retirar marcas de referencia visual.
- Show Markpoints: Mostrar los puntos de referencia visual.
- Set Program Counter: Cambiar el valor del "PC".
- Open Source File: Abrir un archivo fuente del proyecto.
- Copy: Copiar.
- Goto Line: Ir a un número de línea del listado de programa.
- Find: Buscar una secuencia de caracteres.
- Find Procedure: Buscar un procedimiento.
- Folding: Muestra o esconde una sección del programa.
- Marks: Ubica triángulos donde se pueden ubicar breakpoints.
- Assembly: Muestra el código ensamblado que corresponde a la instrucción en la ventana del programa fuente (Source).
Inicialización del Dispositivo (Device Initialization)
Codewarrior posee más de una sola manera de diseñar un proyecto, así como herramientas que facilitan la completación del mismo. El "device initialization" es una de estas herramientas.
Descripción
Existe una serie de características que hacen que el uso del "device initialization" sea eficiente.
- Posee una interfaz gráfica con el usuario. Le permite al usuario literalmente "ver" el Microcontrolador y en dónde van conectados sus pines.
- Si se coloca el ratón en algún parámetro o puerto que vaya a ser modificado con el código de diseño, el programa inmediatamente resaltará los registros que se están usando en el puerto señalado.
- Es un método fácil para inicializar los periféricos. Así como están mostrados en el gráfico del microcontrolador el "device initialization" permite inicializarlos automáticamente, en otras palabras puede generar código para la inicialización de los periféricos, y se puede elegir si se quiere generar código en "C" o en "Ensamblador".
Inicialización
- Crear un proyecto como ya se explicó anteriormente.
- Ir a la barra principal del CODEWARRIOR y presionar DEVICE INITIALIZATION, saldrá un pequeño menú donde se seleccionará "initialize device".
- Ahora se puede ver la interfaz gráfica del Microcontrolador, seleccionar los valores de los parámetros que se desean cambiar, puertos, Módulos IRQ, etc. Al seleccionarlos se podrán cambiar los valores predeterminados.
- Ya elegidos los parámetros, se debe seleccionar GENERATE CODE, ésto generara el código de las inicializaciones de los periféricos. Elegir si se desea código en "C" o "Ensamblador". El código generado será guardado en el proyecto, en una carpeta llamada "generated code".
== ProcessorExpert ==
Freescale ofrece esta herramienta para facilitar la creación de código para microcontroladores en "C". Se trata de una biblioteca de funciones que facilitan la configuración del CPU y cada módulo. La diferencia con el "Device Initialization" es que "ProcessorExpert" crea además funciones en "C" para utilizar los distintos módulos, así, para re-inicializar un contador en un temporizador, no hay que acceder a los registros sino agregar a nuestro código una función ya disponible en la biblioteca de"ProcessorExpert". De esta manera, el desarrollador se puede concentrar en la lógica del programa y trabajar en un nivel de abstracción superior al de lógica de registros.
Organización del proyecto
"ProcessorExpert" genera tres archivos importantes para el usuario y una cantidad de códigos fuente para cada módulo que son transparentes al desarrollador. Los tres archivos importantes son el archivo ".c" que contiene el "main()" del programa (tiene el mismo nombre del proyecto) y un par de archivos, "Events.h" y "Events.c" para manejar los eventos. En "ProcessorExpert", el usuario no tiene que desarrollar un código para atender las interrupciones, ese código es generado automáticamente por la herramienta. En cambio, en cada rutina de interrupción, "ProcessorExpert" llama a un evento: una función que es llamada desde la interrupción. Es en ente evento, declarado en "Events.h" y definido en "Events.c", donde el usuario coloca el código que desea sea ejecutado en la interrupción. Así, el usuario sólo debería trabajar en su función "main()", en los eventos disponibles en "Events.c" y en las demás funciones específicas a la aplicación.
Tutorial
El siguiente es un vídeo tutorial sobre la creación de un proyecto con "ProcessorExpert" y la programación del mismo para una tarea en particular. La selección de soporte para variables de punto flotante durante el vídeo es opcional y dependerá de las necesidades particulares de cada proyecto.
ProcessorExpert en CodeWarrior v10.3
Links Externos
- Que es CodeWarrior, por Metrowerks