Quark XLIII .::. Primer proyecto con Em::Blocks y Freescale Kinetis

En el Quark XLII vimos el software necesario para programar Kinetis con Em::Blocks. Ahora nos pondremos manos a la obra con la configuración del entorno para poder programar.

El primer proyecto con nuestro flamante Em::Blocks lo realizaremos con un MKL05Z32VFK4.

Evidentemente vosotros podéis utilizar el que queráis, simplemente eligiendo los archivos adecuados durante la configuración del proyecto.

Manos a la obra:

Abrimos Em::Blocks.

Pulsamos sobre Create a new project en la pantalla de bienvenida.

Se nos abrirá el configurador de proyectos, donde seleccionaremos Empty y pulsaremos Go.

Creando un nuevo proyecto.

Creando un nuevo proyecto.

Elegimos un nombre de proyecto y una carpeta para guardarlo. El mío se llamará EQTest.

Nombre y localización del proyecto.

Nombre y localización del proyecto.

Elegiremos nuestro compilador, ARM GCC Compiler, que Em::Blocks ha instalado automáticamente. Seleccionamos crear tanto las configuraciones de Debug como de Release.

Release y Debug.

Release y Debug.

Ahora, manualmente, copiamos a la carpeta de nuestro proyecto:

– desde Kinetis\MKL05Z4\Include los archivos MKL05Z4.h y system_MKL05Z4.h

– desde Kinetis\MKL05Z4\Source\Templates el archivo system_MKL05Z4.c

– y desde Kinetis\MKL05Z4\Source\Templates\gcc los archivos startup_MKL05Z4.S y MKL05Z32xxx4_flash.ld.

Todos son genéricos para toda la serie MKL05Z excepto el script para el Linker MKL05Z32xxx4_flash.ld que es exclusivo para cada micro en concreto.

Ahora los añadiremos a nuestro proyecto: Project -> Add files recursively…

Añadiendo archivos.

Añadiendo archivos.

Se nos abrirá un diálogo para seleccionar los archivos que queremos incluir en nuestro proyecto. Marcaremos todos excepto el de extensión elay.

Selección de archivos.

Selección de archivos.

Tras pulsar OK Em::Blocks nos pregúntará a qué versión del proyecto queremos añadirlos. Seleccionaremos ambas opciones:

Para Debug y Release.

Para Debug y Release.

Una vez los archivos hayan sido cargados, la extructura de nuestro proyecto será la siguiente:

Estructura del proyecto.

Extructura del proyecto.

Crearemos, ahora, nuestro archivo principal, main. File -> New -> File…

Que será del tipo C/C++ Source.

C/C++ Source.

C/C++ Source.

Concretamente será un archivo de C.

Archivo C.

Archivo C.

Lo guardamos con el nombre de main en la carpeta de nuestro proyecto.

main.

main.

Igualmente, lo añadimos a nuestro proyecto tanto para la versión Debug como Release.

Debug y Release.

Debug y Release.

Y la vista de nuestro proyecto quedará finalmente así:

main editable.

main editable.

Para poder comprobar que todo funciona correctamente necesitamos que main no esté vacía, por lo que que creamos una simple función.

main básica.

main básica.

Y terminamos de configurar el enterno. Project -> Build options…

Project -> Build options...

Project -> Build options…

Especificamos el tipo de microcontrolador, cortex-m0plus, en EQTest:

cortex-m0plus.

cortex-m0plus.

Y tres líneas más abajo, indicamos que utilice como Linker script el que hemos añadido previamente: MKL05Z32xxx4_flash.ld.

Linker script.

Linker script.

En EQTest -> Linker settings indicamos que añada los Start files.

INCLUDE Standar Start files.

INCLUDE Standard Start files.

Aceptamos y ya podemos comprobar que todo está listo para comenzar el diseño.

Pulsamos en Rebuild.

Compilamos.

Compilamos.

Y, si todo ha sido configurado correctamente, obtendremos del compilador una salida similar a esta:

Resultado de la compilación.

Resultado de la compilación.

Y esta:

Más.

Más.

Es un proceso algo tedioso, pero una vez que está terminado es muy fácil adaptarlo a cualquier otro Kinetis, simplemente seleccionando los archivos correspondientes durante la configuración del proceso.

En una próxima entrada configuraremos Em::Blocks para poder utilizar un SEGGER J-LINK con él.

Ahora: ¡A programar!

Quark XLII .::. Configurando Em::Blocks para trabajar con Freescale Kinetis: Software necesario

Últimamente estoy jugueteando con los micros basados en ARM de Freescale, la línea Kinetis.

Sin considerar los entornos profesionales, y astronómicamente caros como KEIL o IAR, hay varias herramientas de desarrollo disponibles para estos micros.

Freescale tiene disponibles un par: CodeWarrior y KDS (Kinetis Design Studio). El primero está basado en Eclipse y es de pago, además Freescale no lo actualizará a los nuevos desarrollos de la serie Kinetis, por lo que solo es/será utilizable con aquellos micros con los que es compatible actualmente. El segundo, por otro lado, también basado en Eclipse, es completamente gratuito e incluye el entorno Processor Expert, un sistema de desarrollo de alto nivel que facilita la creación rápida de aplicaciones.

Para un usuario no profesional como yo, la selección está clara, KDS. Así que lo instalé: un monstruo. Gigantesco, miles de ficheros, cientos de megas, lento, engorroso (lo siento, encuentro Eclipse sobrecargado).

Busqué más alternativas. Y encontré otra opción: Em::Blocks, basado en Code::Blocks, un entorno de desarrollo mucho más ligero. Y con él estoy empezando.

Una puntualización: Em::Blocks solo está disponible para Windows.

Em::Blocks necesita configurarse para trabajar con Kinetis, ya que estos micros aún no están soportados en él directamente, con lo que no existe la posibilidad de autoconfiguración. De eso trata esta serie de artículos que comienza aquí, de la configuración de Em::Blocks para desarrollar aplicaciones para micros Kinetis con el compilador ARM GCC y el depurador JLINK de SEGGER. Crearemos también una pequeña aplicación ejemplo para arrancar.

Em::Blocks tiene una ventaja añadida, soporta directamente las siguientes familias de microcontroladores:

  • Atmel ARM
  • EnergyMicro ARM
  • Microchip dsPIC
  • Microchip PIC18
  • Microchip PIC32
  • Nordic ARM
  • NXP ARM
  • STmicro ARM
  • Texas Instruments MSP430

Para preparar nuestro entorno de trabajo necesitaremos descargarnos lo siguiente:

  1. – Em::Blocks (¡Click!)
  2. – Freescale KDS (¡Click!
  3. – Software para SEGGER JLINK  (¡Click!

No hace falta explicar porqué nos descargamos Em::Blocks, pero la descarga de KDS necesita una explicación. Para la configuración de nuestros proyectos, necesitaremos los header files así como los ficheros de sistema correspondientes al los micros Kinetis y los scripts para el linker, y la única forma que he encontrado de conseguirlos es copiarlos de la instalación de KDS. Un engorro, pero eficaz.

Como he comentado antes, utilizaré un SEGGER JLINK para depurar los programas, así que también necesitamos descargar su software. La versión que utilizo es la de educación (JLINK EDU), que tiene las mismas prestaciones para nuestras necesidades que la version normal, mucho más cara. La version EDU no se puede utilizar para desarrollos comerciales y, una vez al día, muestra una pantalla con sus condiciones de uso.

Una vez completadas las descargas, instalamos todo. La instalación de KDS será temporal, ya que copiaremos los ficheros que necesitamos y procederemos a su desinstalación.

En mi caso he instalado Em::Blocks en C:\EmBlocks.

Y KDS en C:\KDS.

Creamos una nueva carpeta bajo EmBlocks: C:\EmBlocks\Kinetis

Y copiamos todo el contenido de C:\KDS\eclipse\ProcessorExpert\Config\PE\CPE\wizard_data\wizards\kds en ella.

Ya tenemos disponibles todos los archivos que necesitamos referentes a los micros, por lo que podemos desinstalar completamente KDS si no vamos a darle uso.

En el próximo artículo crearemos nuestro primer proyecto con Em::Blocks basado en Kinetis.