Diferencia entre revisiones de «Freescale Codewarrior 6.3»

De Wikitronica
Saltar a: navegación, buscar
(Tutorial en video)
 
(No se muestran 25 ediciones intermedias de 8 usuarios)
Línea 1: Línea 1:
[[Archivo:CodeWarrior-image2.jpg|thumb|right|400px|Freescale CodeWarrior]]
+
[[Archivo:CodeWarrior-image2.jpg|thumb|right|400px|Freescale CodeWarrior.]]
 
    
 
    
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.
+
''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.
+
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 clasicos 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 descontinuo la version para Macintosh.
+
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.
  
 
== Instalación ==
 
== Instalación ==
 
   
 
   
La instalacion 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 algun dispositivo con el cual viene un CD con el programa para su instalacion. CodeWarrior originalmente es creado para computadoras cuyo sistema operativo es de 32-bit.  
+
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 originalmente fue creada para computadoras cuyo sistema operativo es de 32-bit.  
  
 
=== Windows 7 de 64-bit ===
 
=== Windows 7 de 64-bit ===
  
En el caso de Windows 7 de 64-bit se encontraran con que el escudo de instalacion (install shield) abortara la instalacion al detectar que el sistema operativo es de 64-bit. Para arreglar esto se tienen las siguientes propuestas.
+
En el caso de Windows 7 de 64-bit se encontrarán con que el escudo de instalación (''install shield'') aborta la instalación al detectar que el sistema operativo es de 64-bit. Para arreglar esto se tienen las siguientes propuestas.
  
 
==== Propuesta de Freescale ====
 
==== Propuesta de Freescale ====
  
Freescale propone descargar un programa de Microsoft llamado Windows virtual PC para trabajar con el sistema operativo Windows XP que es compatible con casi todos los programas que se desean instalar y que no sean compatibles con Windos 7 de 64-bit.
+
Freescale propone descargar un programa de Microsoft llamado "Windows Virtual PC" para trabajar con el sistema operativo "Windows XP" que es compatible con la mayoría de los programas que se desean instalar y que no son compatibles con Windows 7 de 64-bit.
  
Para esta propuesta de Freescale puede que se encuentren con el problema de que es necesario tener Windows 7 Professional, Enterprise o Ultimate para que sea compatible, pero el Windows 7 mas comun es el Home Premium por lo que surte un segundo problema.
+
Para esta propuesta de Freescale puede que se encuentren con el problema de que es necesario tener Windows 7 Professional, Enterprise o Ultimate para que sea compatible, pero el Windows 7 más común es el Home Premium por lo que surge un segundo problema.
  
Si logra descargar esta maquina virtual, Instale ahi el CodeWarrior y podra utilizarlo cuando desee.
+
Si logra descargar esta máquina virtual, instale ahí el CodeWarrior y podrá utilizarlo cuando desee.
  
==== Propuesta personal 1 ====
+
==== Propuesta Personal 1 ====
  
Una mas sencilla opcion, y mas eficiente, es seguir los siguientes pasos:
+
Una más sencilla opción, y más eficiente, es seguir los siguientes pasos:
  
   1.- Crear una carpeta llamada Freescale dentro de '''C:\Program Files(x86)'''
+
   1.- Crear una carpeta llamada Freescale dentro de '''C:\Program Files(x86)'''.
   2.- Descargar el siguiente archivo y descomprimirlo en la carpeta creada [https://dl.dropbox.com/u/43803714/codewarrior%20V6.3.rar '''CodeWarrior for Microcontrollers V6''']
+
   2.- Descargar el siguiente archivo y descomprimirlo en la carpeta creada [https://dl.dropbox.com/u/43803714/codewarrior%20V6.3.rar '''CodeWarrior for Microcontrollers V6'''].
   3.- Ubicar el archivo '''Mwregsvr.exe''' dentro de la carpeta bin
+
   3.- Ubicar el archivo '''Mwregsvr.exe''' dentro de la carpeta "bin".
   4.- Seleccionar el archivo y con click derecho entrar a '''propiedades'''
+
   4.- Seleccionar el archivo y con ''click'' derecho entrar a '''"propiedades"'''.
   5.- Seleccionar la etiqueta de '''Compatibilidad''' y configurar de la siguiente manera:
+
   5.- Seleccionar la etiqueta de '''"Compatibilidad"''' y configurar de la siguiente manera:
 
       [[Archivo:Compatibilidad-Windos7.jpg]]
 
       [[Archivo:Compatibilidad-Windos7.jpg]]
 
       y presionar aceptar.
 
       y presionar aceptar.
   6.- En esa misma carpeta, ejecute el archivo '''regservers.bat'''(acepte todos los permisos de Windows)
+
   6.- En esa misma carpeta, ejecute el archivo '''regservers.bat'''(acepte todos los permisos de Windows).
   7.- Ahora, en la misma carpeta, ubique el archivo '''IDE.exe''' y cree un acceso directo al escritorio
+
   7.- Ahora, en la misma carpeta, ubique el archivo '''IDE.exe''' y cree un acceso directo al escritorio.
   8.- Listo!! Ahora pueden utilizar el CodeWarrior V6.3 en Windows 7 de 64-bit directamente de su PC sin utilizar maquinas virtuales
+
   8.- ¡¡Listo!! Ahora pueden utilizar el CodeWarrior V6.3 en Windows 7 de 64-bit directamente de su PC sin utilizar maquinas virtuales
 
                    
 
                    
==== Propuesta personal 2 ====
+
==== Propuesta Personal 2 ====
  
En caso de querer trabajar con una maquina virtual, recomiendo descargar una llamada Virtual Box, de Oracle, que es compatible con todos los sistemas operativos y ademas te da la capacidad de instalar cualquier sistema operativo que desees (MacOS, todo tipo de Windows, Linux, etc..) sin importar que sea de 64-bit o 32-bit.  
+
En caso de querer trabajar con una máquina virtual, recomiendo descargar una llamada ''"Virtual Box"'', de "Oracle", que es compatible con todos los sistemas operativos y además te da la capacidad de instalar cualquier sistema operativo que desees (MacOS, todo tipo de Windows, Linux, etc.) sin importar que sea de 64-bit o 32-bit.  
  
Luego de poseer esta maquina virtual, Instale ahi el CodeWarrior y podra utilizarlo cuando desee.
+
Luego de poseer esta maquina virtual, instale ahí el CodeWarrior y podrá utilizarlo cuando desee.
  
 
== Proyectos ==
 
== Proyectos ==
  
CodeWarrior, como muchos programas, trabaja mediante la creación de proyectos y para esto se tienen una gran variedad de opciones para la codificacion tales como elegir que lenguaje se utilizara ( C, C++, ensamblador o Mixto), Elegir el microcontrolador a utilizar, entre otra serie de diferentes especificaciones. Para hacer su vida un poco mas facil, aqui tienen un tutorial para la creacion de los projectos.
+
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 [[Freescale Codewarrior 6.3#Creación de un Proyecto|tutorial]].
  
=== Lenguajes de programación ===
+
=== Lenguajes de Programación ===
  
Anteriormente, CodeWarrior tambien funcionaba con lenguajes como Pascal,Object Pascal, Objective-C y java, pero en la actualidad cuenta con 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 que nivel se necesite manejar. Ademas de esto, se pueden crear codigos mixtos de modo que se pueden realizar codigos mas rapidos y mas efectivos.
+
Anteriormente, CodeWarrior también funcionaba con lenguajes como Pascal, Object Pascal, Objective-C y java, pero en la actualidad cuenta con 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 ====
 
==== Lenguaje Ensamblador ====
  
Para hacer uso de lenguaje ensamblador en CodeWarrior aqui les dejo un link hacia el instruction set en donde podran encontrar la información especifica sobre cuales instrucciones maneja y cuales son sus funciones, ademas de explicar la sintaxis de programación. [http://cache.freescale.com/files/microcontrollers/doc/ref_manual/HCS08RMV1.pdf Manual y set de Instrucciones]  
+
En el [http://cache.freescale.com/files/microcontrollers/doc/ref_manual/HCS08RMV1.pdf 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 ====
+
==== Combinación de Lenguajes ====
  
Para hacer uso de una combinacion 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.
+
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 V6.3 (Haciendo doble ''click'' el CodeWarrior IDE) y lo primero que verán será esta ventana:
  
=== Creacion de un proyecto ===
+
[[Archivo:CrearProyecto1.jpg|275px|center|Primera Ventana]]
  
Para crear un nuevo proyecto deben abrir el CodeWarrior V6.3 (Haciendo doble click el CodeWarrior IDE) y lo primero que veran sera esta ventana:  
+
Aquí seleccionarán la primera opción que dice '''Create New Proyect''' en donde ahora aparecerá la segunda ventana:
  
[[Archivo:CrearProyecto1.jpg|275px|Primera Ventana]]
+
[[Archivo:CrearProyecto2.jpg|thumb|center|400px|Segunda Ventana]]
Aqui seleccionaran la primera opción que dice '''Create New Proyect''' en donde ahora aparecera la segunda ventana:
+
  
[[Archivo:CrearProyecto2.jpg|thumb|right|400px|Segunda Ventana]]
+
Aquí van a seleccionar primero la '''serie''' a la que pertenece su Microcontrolador (HC08, HCS08, RS08, ColdFire V1 o Flexis), en nuestro caso sera Flexis, esta se expandirá y mostrará las diferentes familias de ''micros'' que se pueden seleccionar. Seleccionen la '''familia''' a la cual pertenece su ''micro'', la familia QE, y finalmente seleccionen su '''micro''', el [[MC9S08QE128]].
 +
Observarán que al seleccionar su ''micro'', arriba a la derecha, en el rec­ro blanco, aparecieron varias opciones. Escojan siempre '''''Full Chip Simulation''''', así como su conexión y den ''click'' en '''''next'''''.
  
 +
[[Archivo:CrearProyecto3.jpg|thumb|center|400px|Tercera Ventana]]
  
 +
Se abrirá esta tercera ventana en la cual seleccionaremos el lenguaje, el nombre del proyecto y la localización donde se desea guardar el archivo:
  
Aqui van a seleccionar primero la '''serie''' a la que pertenece su microcontrolador (HC08, HCS08, RS08, ColdFire V1 o Flexis), en nuestro caso sera flexis, esta se expandera y mostrara las diferentes familias de micros que se pueden seleccionar. Seleccionen la '''familia''' a la cual pertenece su micro, en nuestro caso la familia QE, y finalmente seleccionen su '''micro''', en nuestro caso el MC9S08QE128.
+
Primero 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.
Observaran que al seleccionar su micro, arriba a la derecha en el recuadro blanco aparecieron varias opciones. Escogan siempre '''Full Chip Simulation''' como su conección y den click en '''next'''.
+
La selección de nombre y localización del proyecto son de libre escogencia.
  
 +
[[Archivo:CrearProyecto5.jpg|center|Cuarta Ventana]]
  
 +
Al finalizar, se hace ''click'' en '''next''' y aparecerá una cuarta ventana para añadir proyectos ya existentes desde tu computadora hacia el CodeWarrior Donde solo deberás buscar los archivos que quieras añadir y luego hacer ''click'' en '''add'''. Luego de finalizar (hayan añadido o no algún proyecto) presionamos '''next'''.
  
[[Archivo:CrearProyecto3.jpg|thumb|left|400px|Tercera Ventana]]
+
[[Archivo:CrearProyecto4.jpg|thumb|center|Quinta Ventana]]
Se abrira esta tercera ventana en la cual seleccionaremos el lenguaje, el nombre del proyecto y la localizacion donde se desea guardar el archivo:
+
  
 +
Aparecerá la quinta ventana en donde se muestran 3 opciones '''''None''''', '''''Device Inicialization''''' y '''''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 presionar '''''next'''''.
  
 +
Por último, en la sexta ventana, no aplicaremos ningún cambio y simplemente se seleccionará '''''Finish''''' y de esta manera se podrá comenzar a codificar el proyecto.
  
Primero observaremos 4 opciones para el lenguaje '''Absolute Assembly''' para codificar unicamente 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 ultimos 3 seleccionas el lenguaje principal pero permites la codificacion mixta.
+
En caso de duda, puede referirse al siguiente tutorial de video:
La seleccion de nombre y localizacion del proyecto son a gusto del consumidor.
+
  
 +
<center>
 +
{{#ev:youtube|EZG9FF0bX78}}
  
 +
[http://www.youtube.com/watch?v=EZG9FF0bX78 vídeo tutorial].
  
[[Archivo:CrearProyecto5.jpg|right|Cuarta Ventana]]
+
</center>
Al finalizar den click en '''next''' y aparecera una cuarta ventana para añadir proyectos ya existentes desde tu computadora hacia el CodeWarrior Donde solo deberas buscar los archivos que quieras añadir y luego hacer click en '''add'''. Luego de finalizar (hallan añadido o no algun proyecto) hagan click en '''next'''.
+
  
 +
==== Depuración del Proyecto ====
  
 +
Para depurar el programa codificado, solo hace falta hacer presionar en el botón [[Archivo:BotonDebug.jpg]] con la que pueden suceder 2 cosas (Utilizando la conexión en '''''Full Chip Simulation'''''):
  
[[Archivo:CrearProyecto4.jpg|thumb|left|Quinta Ventana]]
+
# 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]].
Aparecera la quinta ventana en donde apareceran 3 opciones '''None''', '''Device Inicialization''' y '''Processor Expert''' que sirven para un inicializado rapido en el main. Para nuestro proyecto no es necesaria ninguna inicialización por lo que se debe seleccionar '''None''' y luego dar click en '''next'''.
+
# 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á:
  
Por ultimo tendremos una sexta ventana en la que no le aplicaremos ningun cambio y simplemente haremos click en '''Finish''' y de esta manera estara listo nuestro proyecto para ser codificado.
+
# Icono para correr el programa completo o hasta hallar una parada (''breakpoint'').
 +
# Icono para correr el programa instrucción por instrucción.
 +
# Icono para saltar una instrucción.
 +
# Icono para salir de una instrucción.
 +
# Icono para correr instrucción por instrucción en ensamblador.
 +
# Icono para detener la corrida del programa.
 +
# Icono para detener y reiniciar el programa.
 +
# Indicador de una parada (''breakpoint''). Éste se puede colocar haciendo ''click'' derecho en la instrucción en que se desee parar seleccionando '''''Set breakpoint'''''.
  
 +
[[Archivo:VentanaSimulacion.jpg|center]]
  
 +
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.
  
Por si no quedo muy clara la explicacion de como crear el proyecto, aqui dejo un video de youtube en donde explican exactamente lo mismo que aqui solo que en video: [http://www.youtube.com/watch?v=EZG9FF0bX78 Tutorial en youtube]
+
'''Partes más importantes de la ventana de simulación:'''
  
==== Depuracion del Proyecto ====
+
; 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:
  
Para depurar el programa codificado, solo hace falta hacer click en el boton [[Archivo:BotonDebug.jpg]] con la que pueden suceder 2 cosas (Utilizando la conexion en '''Full Chip Simulation'''):
+
; 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'').
  
1.- Aparecera la ventana de error diciendo que lineas del código tienen algun error o warning. Tambien pueden aparecer comentarios que hace el compilador.
+
==== Carpetas iniciales ====
  
2.- El programa se depurara y se abrira la ventana '''True-time Simulator & Real-time Debugger'''.
+
Al finalizar la creación del proyecto aparecerán varias carpetas iniciales como se ve en la imagen
  
Si nos encontramos en el segundo caso, observaremos los siguientes puntos en la ventana que abrira:
+
[[Archivo:CarpetasIniciales.jpg|thumb|center|250px|Carpetas Iniciales]]
1.- Icono para correr el programa completo o hasta hallar una parada (breakpoint).
+
2.- Icono para correr el programa instruccion por instrucción.
+
3.- Icono para saltar una instrucción.
+
4.- Icono para salir de una instrucción.
+
5.- Icono para correr instruccion por instruccion en ensamblador.
+
6.- Icono para detener la corrida del programa.
+
7.- Icono para detener y reiniciar el programa.
+
8.- Indicador de una parada (breakpoint). Este se puede colocar haciendo click derecho en la instruccion en que deseas para y seleccionando '''Set breakpoint'''.
+
[[Archivo:VentanaSimulacion.jpg]]
+
  
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 preguntandonos 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 pedira una ultima confirmación. A partir de ahi, las herramientas para correr el programa son exactamente las mismas que cuando no se tiene el micro conectado.
+
# El "main.c" es el archivo sobre el cual haremos nuestro código.
 +
# El "derivative.h" es un archivo que se encarga de incluir la definición del micro.
 +
# El archivo que posee el nombre de nuestro micro (MC9HCS08QE128.h) Contiene la inicialización y definición de todos los registros, máscaras, tipos, puertos, vectores, entre otros referentes, de nuestro micro. Si se requiere saber el nombre que se da para algún dato necesitado, aquí se puede encontrar.
 +
# El resto de las carpetas y archivos son importantes para nosotros, sin embargo no deben ser modificadas ya  que son las bases para nuestro proyecto.
  
==== Carpetas iniciales ====
+
==== Añadir Archivos ====
  
Al finalizar la creación del proyecto aparecerán varias carpetas iniciales como se ve en la imagen
+
Para introducir un archivo al programa en necesario crearlo haciendo ''click'' arriba a la izquierda en el botón [[Archivo:BotonCrearArchivo.jpg]]. Una vez creado el archivo y guardado, éste se puede añadir a nuestro ''"main"'' al realizar los siguientes pasos:
[[Archivo:CarpetasIniciales.jpg|thumb|left|250px|Carpetas Iniciales]]
+
1.- El main.c es el archivo sobre el cual haremos nuestro código.
+
2.- El derivative.h es un archivo que se encarga de incluir la definición del micro.
+
3.- El archivo que posee el nombre de nuestro micro (MC9HCS08QE128.h) Contiene la inicialización y definición
+
de todos los registros, máscaras, tipos, puertos, vectores, entre otros referentes, de nuestro micro. Si se requiere
+
saber el nombre que se da para algún dato necesitado, aquí se puede encontrar.
+
4.- El resto de las carpetas y archivos son importantes para nosotros, sin embargo no deben ser modificadas ya
+
que son las bases para nuestro proyecto.
+
  
==== Añadir Archivos ====
+
* Guardar el proyecto .c en caso de ser un programa y .h en caso de ser una declaración.
  
Para introducir un archivo al programa en necesario crearlo haciendo click arriba a la izquierda en el boton [[Archivo:BotonCrearArchivo.jpg]]. Una vez creado el archivo y guardado, éste se puede añadir a nuestro main al realizar los siguientes pasos:
 
* Guardar el proyecto .c en caso de ser un programa y .h en caso de ser una declaración.
 
 
  Nota: Todo archivo .c debe tener un archivo de nombre idéntico .h en donde sea declarado.
 
  Nota: Todo archivo .c debe tener un archivo de nombre idéntico .h en donde sea declarado.
* Hacer click arriba en la barra donde dice Proyecto
+
 
* Hacer click en la primera opción '''add (nombre del proyecto) to Project'''
+
* Hacer ''click'' arriba en la barra donde dice Proyecto
* Colocar en el main
+
* Hacer ''click'' en la primera opción '''''add (nombre del proyecto) to Project'''''
 +
* Colocar en el ''"main"''
 +
 
 
         #include "nombre.h"
 
         #include "nombre.h"
  
=Device Initialization=
+
==Inicialización del Dispositivo (''Device Initialization'')==
  
 
[[Archivo:Device.jpg|thumb|right|800px|Carpetas Iniciales]]
 
[[Archivo:Device.jpg|thumb|right|800px|Carpetas Iniciales]]
  
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.
+
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==
 
==Descripción==
  
Existe una serie de características que hacen que el uso del device initialization sea eficiente.
+
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 donde van conectados sus pines.
+
*Posee una interfaz gráfica con el usuario. Le permite al usuario literalmente "ver" el Microcontrolador y en dónde van conectados sus [[Configuración de pines-DEMOQE128|pines]].
  
*Si colocas el mouse en algún parámetro o puerto que vaya a ser modificado con el código de diseño, el programa inmediatamente resaltara los registros que se están usándo en el puerto señalado.
+
*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 ASSEMBLER.
+
*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==
 
==Inicialización==
  
*Crear un proyecto como ya se explicó anteriormente
+
* 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 en video===
  
*Ir a la barra principal del CODEWARRIOR y presionar 'DEVICE INITIALIZATION', saldrá un pequeño menú donde se seleccionará 'initialize device'.
+
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.
 +
<center>
 +
{{#ev:youtube|9mm1a3EekLc}}
  
* 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.
+
[http://youtu.be/9mm1a3EekLc ProcessorExpert en CodeWarrior v6.3]
  
*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 ASSEMBLER. El código generado sera guardado en el proyecto en una carpeta llamada "generated code".
+
</center>
  
 
= Links Externos =
 
= Links Externos =

Revisión actual del 10:50 10 abr 2013

Freescale CodeWarrior.

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.

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 originalmente fue creada para computadoras cuyo sistema operativo es de 32-bit.

Windows 7 de 64-bit

En el caso de Windows 7 de 64-bit se encontrarán con que el escudo de instalación (install shield) aborta la instalación al detectar que el sistema operativo es de 64-bit. Para arreglar esto se tienen las siguientes propuestas.

Propuesta de Freescale

Freescale propone descargar un programa de Microsoft llamado "Windows Virtual PC" para trabajar con el sistema operativo "Windows XP" que es compatible con la mayoría de los programas que se desean instalar y que no son compatibles con Windows 7 de 64-bit.

Para esta propuesta de Freescale puede que se encuentren con el problema de que es necesario tener Windows 7 Professional, Enterprise o Ultimate para que sea compatible, pero el Windows 7 más común es el Home Premium por lo que surge un segundo problema.

Si logra descargar esta máquina virtual, instale ahí el CodeWarrior y podrá utilizarlo cuando desee.

Propuesta Personal 1

Una más sencilla opción, y más eficiente, es seguir los siguientes pasos:

 1.- Crear una carpeta llamada Freescale dentro de C:\Program Files(x86).
 2.- Descargar el siguiente archivo y descomprimirlo en la carpeta creada CodeWarrior for Microcontrollers V6.
 3.- Ubicar el archivo Mwregsvr.exe dentro de la carpeta "bin".
 4.- Seleccionar el archivo y con click derecho entrar a "propiedades".
 5.- Seleccionar la etiqueta de "Compatibilidad" y configurar de la siguiente manera:
      Compatibilidad-Windos7.jpg
      y presionar aceptar.
 6.- En esa misma carpeta, ejecute el archivo regservers.bat(acepte todos los permisos de Windows).
 7.- Ahora, en la misma carpeta, ubique el archivo IDE.exe y cree un acceso directo al escritorio.
 8.- ¡¡Listo!! Ahora pueden utilizar el CodeWarrior V6.3 en Windows 7 de 64-bit directamente de su PC sin utilizar maquinas virtuales
                 

Propuesta Personal 2

En caso de querer trabajar con una máquina virtual, recomiendo descargar una llamada "Virtual Box", de "Oracle", que es compatible con todos los sistemas operativos y además te da la capacidad de instalar cualquier sistema operativo que desees (MacOS, todo tipo de Windows, Linux, etc.) sin importar que sea de 64-bit o 32-bit.

Luego de poseer esta maquina virtual, instale ahí el CodeWarrior y podrá utilizarlo cuando desee.

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

Anteriormente, CodeWarrior también funcionaba con lenguajes como Pascal, Object Pascal, Objective-C y java, pero en la actualidad cuenta con 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 V6.3 (Haciendo doble click el CodeWarrior IDE) y lo primero que verán será esta ventana:

Primera Ventana

Aquí seleccionarán la primera opción que dice Create New Proyect en donde ahora aparecerá la segunda ventana:

Segunda Ventana

Aquí van a seleccionar primero la serie a la que pertenece su Microcontrolador (HC08, HCS08, RS08, ColdFire V1 o Flexis), en nuestro caso sera Flexis, esta se expandirá y mostrará las diferentes familias de micros que se pueden seleccionar. Seleccionen la familia a la cual pertenece su micro, la familia QE, y finalmente seleccionen su micro, el MC9S08QE128. Observarán que al seleccionar su micro, arriba a la derecha, en el rec­ro blanco, aparecieron varias opciones. Escojan siempre Full Chip Simulation, así como su conexión y den click en next.

Tercera Ventana

Se abrirá esta tercera ventana en la cual seleccionaremos el lenguaje, el nombre del proyecto y la localización donde se desea guardar el archivo:

Primero 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. La selección de nombre y localización del proyecto son de libre escogencia.

Cuarta Ventana

Al finalizar, se hace click en next y aparecerá una cuarta ventana para añadir proyectos ya existentes desde tu computadora hacia el CodeWarrior Donde solo deberás buscar los archivos que quieras añadir y luego hacer click en add. Luego de finalizar (hayan añadido o no algún proyecto) presionamos next.

Quinta Ventana

Aparecerá la quinta ventana en donde se muestran 3 opciones None, Device Inicialization y 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 presionar next.

Por último, en la sexta ventana, no aplicaremos ningún cambio y simplemente se seleccionará Finish y de esta manera se podrá comenzar a codificar el proyecto.

En caso de duda, puede referirse al siguiente tutorial de video:

vídeo tutorial.

Depuración del Proyecto

Para depurar el programa codificado, solo hace falta hacer presionar en el botón BotonDebug.jpg con la que pueden suceder 2 cosas (Utilizando la conexión en Full Chip Simulation):

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

  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.
VentanaSimulacion.jpg

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.

Partes más importantes de la ventana de simulación:

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).

Carpetas iniciales

Al finalizar la creación del proyecto aparecerán varias carpetas iniciales como se ve en la imagen

Carpetas Iniciales
  1. El "main.c" es el archivo sobre el cual haremos nuestro código.
  2. El "derivative.h" es un archivo que se encarga de incluir la definición del micro.
  3. El archivo que posee el nombre de nuestro micro (MC9HCS08QE128.h) Contiene la inicialización y definición de todos los registros, máscaras, tipos, puertos, vectores, entre otros referentes, de nuestro micro. Si se requiere saber el nombre que se da para algún dato necesitado, aquí se puede encontrar.
  4. El resto de las carpetas y archivos son importantes para nosotros, sin embargo no deben ser modificadas ya que son las bases para nuestro proyecto.

Añadir Archivos

Para introducir un archivo al programa en necesario crearlo haciendo click arriba a la izquierda en el botón BotonCrearArchivo.jpg. Una vez creado el archivo y guardado, éste se puede añadir a nuestro "main" al realizar los siguientes pasos:

  • Guardar el proyecto .c en caso de ser un programa y .h en caso de ser una declaración.
Nota: Todo archivo .c debe tener un archivo de nombre idéntico .h en donde sea declarado.
  • Hacer click arriba en la barra donde dice Proyecto
  • Hacer click en la primera opción add (nombre del proyecto) to Project
  • Colocar en el "main"
        #include "nombre.h"

Inicialización del Dispositivo (Device Initialization)

Carpetas Iniciales

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 en video

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 v6.3

Links Externos