Diferencia entre revisiones de «Freescale Codewarrior 6.3»

De Wikitronica
Saltar a: navegación, buscar
(Descripcion)
Línea 152: Línea 152:
 
Codewarrior posee mas de una sola manera de diseñar un proyecto, asi como herramientas que facilitan la completacion del mismo. El device initialization es una de estas herramientas.
 
Codewarrior posee mas de una sola manera de diseñar un proyecto, asi como herramientas que facilitan la completacion del mismo. El device initialization es una de estas herramientas.
  
==Descripcion==
+
==Descripción==
  
Existen una serie de caracteristicas que hacen que el uso del device initialization sea eficiente.
+
Existen una serie de características que hacen que el uso del device initialization sea eficiente.
  
*Posee una interfaz grafica con el usuario. Le permite al usuario litealmente "ver" el microcontrolador y a donde van conectadas sus patas.
+
*Posee una interfaz grafica con el usuario. Le permite al usuario literalmente "ver" el microcontrolador y a donde van conectadas sus patas.
  
*Si colocas el mouse en algun parametro o puerto que vaya a ser modificado con el codigo de diseno, el programa inmediatamente resaltara los registros que estan usandose de ese puerto senalado.
+
*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 están usándose de ese puerto señalado.
  
*Es un metodo facil de inicializar los perifericos, asi como estan mostrados en el grafico del microcontrolador el device initialization permite inicializarlos automaticamente, en otras palabras puede generar codigo para la inicializacion de los perifericos, y se puede elegir si se quiere generar codigo en C o en ASSEMBLER.
+
*Es un método fácil de inicializar los periféricos, así como estan 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.
  
 
==Inicializacion==
 
==Inicializacion==

Revisión del 16:45 30 nov 2012

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

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.

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.

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.

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.

Si logra descargar esta maquina virtual, Instale ahi el CodeWarrior y podra utilizarlo cuando desee.

Propuesta personal 1

Una mas sencilla opcion, y mas eficiente, es seguir los siguientes pasos:

 1.- Crear una carpeta llamada Freescale dentro de C:\Program Files(x86)
 2.- Instalar en esa carpeta el 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 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.

Luego de poseer esta maquina virtual, Instale ahi el CodeWarrior y podra 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 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.

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.

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. Manual y set de Instrucciones

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.


Creacion de un proyecto

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:

Primera Ventana Aqui seleccionaran la primera opción que dice Create New Proyect en donde ahora aparecera la segunda ventana:

Segunda Ventana


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


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


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. La seleccion de nombre y localizacion del proyecto son a gusto del consumidor.


Cuarta Ventana

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.


Quinta Ventana

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.


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.


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: Tutorial en youtube

Depuracion del Proyecto

Para depurar el programa codificado, solo hace falta hacer click en el boton BotonDebug.jpg con la que pueden suceder 2 cosas (Utilizando la conexion en Full Chip Simulation):

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.

2.- El programa se depurara y se abrira la ventana True-time Simulator & Real-time Debugger.

Si nos encontramos en el segundo caso, observaremos los siguientes puntos en la ventana que abrira:

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

Carpetas iniciales

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

Carpetas Iniciales
1.- El main.c es el archivo sobre el cual haremos nuestro codigo. 
2.- El derivative.h es un archivo que se encarga de incluir la definicion del micro.
3.- El archivo que posee el nombre de nuestro micro (MC9HCS08QE128.h) Contiene la inicializacion y definicion
de todos los registros, mascaras, tipos, puertos, vectores, etc.. de nuestro micro por lo que si necesitan 
saber el nombre que se da para algun dato necesitado, aqui lo encontraran. 
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 boton BotonCrearArchivo.jpg. Una vez creado el archivo y guardado, este 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 declaracion.
Nota: Todo archivo .c debe tener un archivo de nombre identico .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"

Device Initialization

Carpetas Iniciales

Codewarrior posee mas de una sola manera de diseñar un proyecto, asi como herramientas que facilitan la completacion del mismo. El device initialization es una de estas herramientas.

Descripción

Existen una serie de características que hacen que el uso del device initialization sea eficiente.

  • Posee una interfaz grafica con el usuario. Le permite al usuario literalmente "ver" el microcontrolador y a donde van conectadas sus patas.
  • 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 están usándose de ese puerto señalado.
  • Es un método fácil de inicializar los periféricos, así como estan 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.

Inicializacion

  • Crear un proyecto como ya se explico anteriormente
  • Ir a la barra principal del CODEWARRIOR y presionar DEVICE INITIALIZATION, saldra un pequeno menu donde se seleccionara, initialize device.
  • Ahora se puede ver la interfaz grafica del microcontrolador, seleccionar los valores de los parametros, que se desean cambiar, puertos, Modulos IRQ, etc. Al seleccionarlos se podran cambiar los valores predeterminados.
  • Ya habiendo elegido los parametros, seleccionar GENERATE CODE. esto generara el codigo delas inicializaciones de los perifericos. Elegir si se desea codigo en C o ASSEMBLER. El codigo generado sera guardado en el proyecto en una carpeta llamada "generated code".

Links Externos