Sunteți pe pagina 1din 9

Primeros pasos con microcontroladores ARM empleando i4uc

Ing. De la Puente Matias <mfpuente.ar@gmail.com>


Resumen Dar el primer paso en un rea que es nueva o muchas veces desconocida puede ser complicada o tediosa. Pero un ejemplo sencillo y bien realizado facilita mucho el aprendizaje y permite el rpido avance en esa rea. Los primeros pasos mostrados en este artculo muestran como desarrollar el rmware de un microcontrolador ARM para que funcione como un simple oscilador. Mas concretamente se emplear el LPC1343 de NXP para este ejemplo y se desarrollar en lenguaje C. En primer lugar se mostrar, con i4uc, como crear un proyecto, luego se importar un perl que servir de base para el nuevo proyecto. A continuacin se explica como escribir el cdigo fuente del oscilador y por ltimo se construir el proyecto. Las explicaciones e imgenes que se mostrarn no estn atadas a ninguna plataforma. Esto es, no importa si se hace en Windows, GNU/Linux u otra plataforma los pasos a seguir sern los mismos. Para empezar ejecute i4uc y siga las indicaciones.

1.

Crear un proyecto

Se comenzar el ejemplo del oscilador creando un nuevo proyecto para albergar sus perles, archivos y opciones de construccin. Para ello se elige la opcin Nuevo del men Proyectos. Cree una carpeta con nombre oscilador, no importa su ubicacin (puede estar en el escritorio o la carpeta de documentos) lo importante aqu es que sea una carpeta vaca. A continuacin coloque como nombre del proyecto oscilador. Debe quedar como en la Figura 1. Si los paneles (lateral e inferior) estn ocultos, estos pueden ser visualizados desde el men Ver. Al elegir aceptar el proyecto es creado dentro de la carpeta elegida y es abierto por i4uc. Ver Figura 2.

2.

Importar un perl

Luego de crear el proyecto se procede a importar un perl de un proyecto externo. Este proyecto externo presenta un perl llamado startup, el cual 1

Figura 1: Crear proyecto

Figura 2: Proyecto recien creado contiene los archivos de cdigo fuente que permiten el uso y arranque del LPC1343.

Para importar el perl se elige la opcin Agregar perl del men Proyectos. Con la opcin Importar perl activada se elige el archivo del proyecto donde se encuentra el perl startup, para este ejemplo es lpc1343_base. Luego se elige el perl startup. Ver Figura 3.

Figura 3: Importar perl Luego de aceptar las opciones ingresadas se advierte que los archivos se encuentra fuera de la carpeta del proyecto y pregunta si quiere copiar los archivos a la carpeta del proyecto, elegir que si (Figura 4). Todos los archivos de un proyecto de i4uc tienen que estar en la misma carpeta del proyecto para facilitar su construccin y transporte hacia otra carpeta u otra computadora. Ahora al elegir el perl startup desde el panel lateral (cambiar de Ninguno a startup) como muestra la Figura 5. En el panel lateral pueden verse los archivos que contiene el perl y las opciones de construccin. Tanto los archivos como las opciones de construccin son importadas del perl del proyecto externo.

3.

Duplicar un perl

Con el perl recien importado se procede ahora a duplicar el mismo para conservar las opciones de construccin. Al duplicar un perl se crea uno nuevo dentro del proyecto pero con un nombre diferente, los mismos archivos y las mismas opciones de construc-

Figura 4: Copiar archivos externos

Figura 5: Perl startup cin. Si se modica el contenido de un archivo de un perl esta modicacin tambin se ver en los otros perles donde est el mismo archivo, obvia-

mente siempre hablando del mismo proyecto. Pero modicar las opciones de construccin de un perl no cambia las opciones de compilado de ningn otro perl, sea de un mismo proyecto o de uno externo. En denitiva, para duplicar un perl se elige la opcin Duplicar perl del men Proyectos, tener en cuenta que el perl a duplicar es el que est elegido en el panel lateral, en este caso startup. Aparece un cuadro de dilogo para ingresar el nuevo nombre del perl, se elige firmware. Ver Figura 6.

Figura 6: Duplicar perl No pueden existir dos perles con el mismo nombre por lo que el cuadro de dilogo advierte esto si se ingresa el nombre de un perl que ya existe. Luego de aceptar el duplicado del perl, automaticamente este nuevo perl es elegido en el panel lateral, ver Figura 7. El perl startup sigue presente en el proyecto.

4.

Agregar cdigo fuente

Ahora es tiempo de agregar el cdigo fuente, primero se crear y agregar un archivo vaco al perl. Para esto, elegir la opcin Agregar archivo del men Proyectos. Ingresar main.c como nombre del archivo y elegir al perl firmware para que el nuevo archivo sea agregado al perl firmware. Ver Figura 8. Luego de aceptar, el nuevo archivo es agregado a los perles indicados en el cuadro de dilogo y es abierto para su edicin. Ver Figura 9

Figura 7: Perl rmware

Figura 8: Agregar archivo Ahora se procede a ingresar el cdigo fuente del oscilador, este puede verse en el Listado 1.

Figura 9: Archivo main.c listo para ser editado


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 # include " lpc1343 . h " void main () { int i ; /* Ajustar PIO3_0 como salida */ GPIO3DIR = 0 x00000001 ; while (1) { /* Apagar led */ GPIO3DATA = 0 x00000000 ; for ( i =0; i <2000000; i ++) ; /* Encender led */ GPIO3DATA = 0 x00000001 ; for ( i =0; i <2000000; i ++) ; } }

Listing 1: Cdigo fuente del ejemplo Antes de construir el perl se ver como arranca el LPC1343 con los 7

archivos que tiene el perl firmware. Dentro del archivo lpc1343.h se encuentran las deniciones de los registros del LPC1343. Los registros GPIO3DIR y GPIO3DATA, usados en el cdigo fuente del oscilador, estan denidos dentro del archivo de cabecera lpc1343.h. El archivo lpc1343.ld le indica al enlazador, entre otras cosas, donde est ubicada la RAM y la FLASH y cuanto ocupa cada una. Tambin indica al enlazador que la RAM puede leerse y escribirse mientras que la FLASH solo puede leerse y ejecutarse. El archivo boot.c es el punto de arranque de todo el ejemplo, all se dene la tabla de interrupciones y en especial la interrupcin de RESET que es la funcin que se ejecuta en el arranque. La interrupcin de RESET esta implementada en la funcin reset_handler (lnea 38), inicializa la memoria y llama a la funcin main del ejemplo. El archivo main.c incluye al archivo de cabecera lpc1343.h (lnea 1) para disponer de GPIO3DIR y GPIO3DATA e implementa solo la funcin main (lnea 3). Dene un acumulador llamado i (lnea 5) que se emplea para los retardos. Luego se ajusta como salida el pin PIO3_0 del LPC1343 (lnea 8). El resto de la funcin se ejecuta en un bucle innito (lnea 10-21). Dentro del bucle innito se apaga un led conectado al pin PIO3_0 (lnea 13) y se espera un retardo de tiempo formado con un bucle for de 2 millones de interaciones vacias (lneas 14-15). Finalizando el bucle se apaga el led (lnea 18) y se espera otro retardo de tiempo (lneas 19-20). El bucle es ejecutado hasta que se apage el LPC1343.

5.

Construir un perl

La ltima tarea a realizar es construir el perl. Simplemente, y con el perl firmware seleccionado en el panel lateral, elegir la opcin Construir perl del men Proyectos. Tambin se puede iniciar la construccin del perl eligiendo la misma opcin desde la barra de herramientas o desde el teclado con Control+Shift+B. Son compilados primero los archivos main.c y boot.c. Estos archivos son enlazados a oscilador-firmware.elf, para luego ser convertidos a oscilador-firmware.bin, que es el archivo a emplear para programar al LPC1343. Pero al archivo oscilador-firmware.bin hay que agregarse el CRC, para lograr eso se llama a lpcrc. Ver Figura 10. El nombre del archivo para ser programado al microcontrolador esta conformado por el nombre del proyecto, un guin, el nombre del perl construido y la extension del tipo de salida. Como este proyecto se llama oscilador, se construy el perl firmware y el tipo de salida es binary, el archivo generado se llama oscilador-firmware.bin.

Figura 10: Construccin del perl rmware

6.

Conclusin

Este ejemplo bsico a demostrado como emplear i4uc para construir el rmware de un oscilador a base de un LPC1343. Cada paso ha sido explicado en detalle y visualizado con capturas de pantalla para facilitar el entendimiento de todo el proceso de desarrollo del ejemplo. Se puede avanzar aun ms duplicando el perl startup para agregarle un nuevo archivo de cdigo fuente que implemente su propia funcin main para solucionar otro tipo de problema. Inclusive los perles creados pueden ser exportados a otros proyectos, si estos fueron marcados como pblicos.

S-ar putea să vă placă și