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!

3 comentarios en “Quark XLIII .::. Primer proyecto con Em::Blocks y Freescale Kinetis

  1. Hello,
    I’m just right now at the same point you are with the Freescale Kinetis boards, but I’m using a K64F evaboard. I have the UART example now compiling with Em::Blocks. Did you proceed to be able to use the J-Link now? I modiefied the board for this reason and I can now connect to the board: GDB Server shows green to be connected and the CPU status is executing, but debugging does not really work, i think there are still some settings for GDB-Server/JLink missing. Do you know already more?

    Greetings, Jens

    • Hello Jens,

      Try this configuration for your JLINK:

      Device: Generic

      In Settings->Connect/Restet: -select USB=0 -device MK64FN1M0xxx12 -if SWD -speed auto

      In Settings->After connect:

      monitor reset
      load

      Please, post results.

      Best regards.

      • Hey,

        thank you for your answer, with these settings it works fine now! I was simply not aware of the “after connect” settings and tried to get the download performed by additional server start command line arguments.

        Besides that, for other MCUs you can easily use the GDB Server GUI to generate the right command line arguments if you simply leave the EmBlocks J-Link server arguments line blank. After setting all up, just copy the command line from the GDB GUI to EmBlocks.

        Greetings,
        Jens

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.