9
 Primeros pasos con microcontroladores ARM empleando i4uc Ing. De la Puente Matias  <mfpuente.ar@g mail.com> Resumen Dar el primer paso en un área que es nueva o muchas veces des- conocida puede ser complicada o tediosa. Pero un ejemplo sencillo y bien realizado facilita mucho el aprendizaje y permite el rápido avance en esa área. Los primeros pasos mostrados en este artículo 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 continuación se explica como escribir el código fuente del oscilador y por último se construirá el proyecto. Las explic aci one s e imá genes que se mostra rán no est án ata das a ninguna plataforma. Esto es, no importa si se hace en Windows, GNU/Linux u otra plataforma los pasos a seguir serán los mismos. Para empezar ejecute  i4uc  y siga las indicaciones. 1. Cr ea r un pr oyecto Se comenzará el ejemplo del oscilador creando un nuevo proyecto para albergar sus perles, archivos y opciones de construcción. Para ello se elige la opción  Nuevo  del menú  Proyectos . Cree una carpeta con nombre  oscilador , no importa su ubicación (puede estar en el escritorio o la carpeta de documentos) lo importante aquí es que sea una carpeta vacía. A continuación coloque como nombre del proyecto oscilador . Debe quedar como en la Figura  1. Si los paneles (lateral e inferior) están ocultos, estos pueden ser visuali- zados 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. Impor ta r un per l 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

Primeros Pasos Arm

Embed Size (px)

Citation preview

Page 1: Primeros Pasos Arm

5/11/2018 Primeros Pasos Arm - slidepdf.com

http://slidepdf.com/reader/full/primeros-pasos-arm 1/9

Primeros pasos con microcontroladores ARM

empleando i4uc

Ing. De la Puente Matias <[email protected]>

Resumen

Dar el primer paso en un área que es nueva o muchas veces des-

conocida puede ser complicada o tediosa. Pero un ejemplo sencillo ybien realizado facilita mucho el aprendizaje y permite el rápido avanceen esa área. Los primeros pasos mostrados en este artículo muestrancomo desarrollar el firmware de un microcontrolador ARM para quefuncione como un simple oscilador. Mas concretamente se empleará elLPC1343 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 perfil que servirá de base para el nuevo proyecto.A continuación se explica como escribir el código fuente del osciladory por último se construirá el proyecto.

Las explicaciones e imágenes que se mostrarán no están atadasa ninguna plataforma. Esto es, no importa si se hace en Windows,

GNU/Linux u otra plataforma los pasos a seguir serán los mismos.Para empezar ejecute i4uc y siga las indicaciones.

1. Crear un proyecto

Se comenzará el ejemplo del oscilador creando un nuevo proyecto paraalbergar sus perfiles, archivos y opciones de construcción. Para ello se eligela opción Nuevo del menú Proyectos.

Cree una carpeta con nombre oscilador , no importa su ubicación (puedeestar en el escritorio o la carpeta de documentos) lo importante aquí es quesea una carpeta vacía. A continuación coloque como nombre del proyecto

oscilador . Debe quedar como en la Figura 1.Si los paneles (lateral e inferior) están ocultos, estos pueden ser visuali-

zados 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 perfil

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

1

Page 2: Primeros Pasos Arm

5/11/2018 Primeros Pasos Arm - slidepdf.com

http://slidepdf.com/reader/full/primeros-pasos-arm 2/9

Figura 1: Crear proyecto

Figura 2: Proyecto recien creado

contiene los archivos de código fuente que permiten el uso y arranque delLPC1343.

2

Page 3: Primeros Pasos Arm

5/11/2018 Primeros Pasos Arm - slidepdf.com

http://slidepdf.com/reader/full/primeros-pasos-arm 3/9

Para importar el perfil se elige la opción Agregar perfil  del menú Proyec-

tos. Con la opción Importar perfil  activada se elige el archivo del proyectodonde se encuentra el perfil startup, para este ejemplo es lpc1343_base.Luego se elige el perfil startup. Ver Figura 3.

Figura 3: Importar perfil

Luego de aceptar las opciones ingresadas se advierte que los archivosse encuentra fuera de la carpeta del proyecto y pregunta si quiere copiarlos archivos a la carpeta del proyecto, elegir que si (Figura 4). Todos losarchivos de un proyecto de i4uc tienen que estar en la misma carpeta delproyecto para facilitar su construcción y transporte hacia otra carpeta uotra computadora.

Ahora al elegir el perfil startup desde el panel lateral (cambiar deNinguno a startup) como muestra la Figura 5. En el panel lateral pue-den verse los archivos que contiene el perfil y las opciones de construcción.

Tanto los archivos como las opciones de construcción son importadas delperfil del proyecto externo.

3. Duplicar un perfil

Con el perfil recien importado se procede ahora a duplicar el mismo paraconservar las opciones de construcción.

Al duplicar un perfil se crea uno nuevo dentro del proyecto pero con unnombre diferente, los mismos archivos y las mismas opciones de construc-

3

Page 4: Primeros Pasos Arm

5/11/2018 Primeros Pasos Arm - slidepdf.com

http://slidepdf.com/reader/full/primeros-pasos-arm 4/9

Figura 4: Copiar archivos externos

Figura 5: Perfil startup

ción. Si se modifica el contenido de un archivo de un perfil esta modificacióntambién se verá en los otros perfiles donde esté el mismo archivo, obvia-

4

Page 5: Primeros Pasos Arm

5/11/2018 Primeros Pasos Arm - slidepdf.com

http://slidepdf.com/reader/full/primeros-pasos-arm 5/9

mente siempre hablando del mismo proyecto. Pero modificar las opciones de

construcción de un perfil no cambia las opciones de compilado de ningúnotro perfil, sea de un mismo proyecto o de uno externo.

En definitiva, para duplicar un perfil se elige la opción Duplicar perfil  delmenú Proyectos, tener en cuenta que el perfil a duplicar es el que está elegidoen el panel lateral, en este caso startup. Aparece un cuadro de diálogo paraingresar el nuevo nombre del perfil, se elige firmware. Ver Figura 6.

Figura 6: Duplicar perfil

No pueden existir dos perfiles con el mismo nombre por lo que el cuadrode diálogo advierte esto si se ingresa el nombre de un perfil que ya existe.

Luego de aceptar el duplicado del perfil, automaticamente este nuevoperfil es elegido en el panel lateral, ver Figura 7. El perfil startup siguepresente en el proyecto.

4. Agregar código fuente

Ahora es tiempo de agregar el código fuente, primero se creará y agregaráun archivo vacío al perfil. Para esto, elegir la opción Agregar archivo del menúProyectos.

Ingresar main.c como nombre del archivo y elegir al perfil firmware

para que el nuevo archivo sea agregado al perfil firmware. Ver Figura 8.Luego de aceptar, el nuevo archivo es agregado a los perfiles indicados

en el cuadro de diálogo y es abierto para su edición. Ver Figura 9

5

Page 6: Primeros Pasos Arm

5/11/2018 Primeros Pasos Arm - slidepdf.com

http://slidepdf.com/reader/full/primeros-pasos-arm 6/9

Figura 7: Perfil firmware

Figura 8: Agregar archivo

Ahora se procede a ingresar el código fuente del oscilador, este puedeverse en el Listado 1.

6

Page 7: Primeros Pasos Arm

5/11/2018 Primeros Pasos Arm - slidepdf.com

http://slidepdf.com/reader/full/primeros-pasos-arm 7/9

Figura 9: Archivo main.c listo para ser editado

1 #include " l p c 1 3 4 3 . h "

2

3 void m ai n ( )4 {

5 int i ;

67 / * A j us t ar P I O3 _0 c om o s a li d a * /  

8 G P IO 3 DI R = 0 x 0 0 00 0 00 1 ;

910 while (1 )

11 {

12 / * A pa ga r l ed * /  

13 G P IO 3 DA T A = 0 x 0 0 00 0 00 0 ;

14 for ( i = 0; i < 2 0 00 0 00 ; i + +)

15 ;1617 / * E nc en de r l ed * /  

18 G P IO 3 DA T A = 0 x 0 0 00 0 00 1 ;

19 for ( i = 0; i < 2 0 00 0 00 ; i + +)

20 ;

21 }

22 }

Listing 1: Código fuente del ejemplo

Antes de construir el perfil se verá como arranca el LPC1343 con los

7

Page 8: Primeros Pasos Arm

5/11/2018 Primeros Pasos Arm - slidepdf.com

http://slidepdf.com/reader/full/primeros-pasos-arm 8/9

archivos que tiene el perfil firmware.

Dentro del archivo lpc1343.h se encuentran las definiciones de los re-gistros del LPC1343. Los registros GPIO3DIR y GPIO3DATA, usados en el có-digo fuente del oscilador, estan definidos dentro del archivo de cabeceralpc1343.h.

El archivo lpc1343.ld le indica al enlazador, entre otras cosas, dondeestá ubicada la RAM y la FLASH y cuanto ocupa cada una. También indicaal enlazador que la RAM puede leerse y escribirse mientras que la FLASH solopuede leerse y ejecutarse.

El archivo boot.c es el punto de arranque de todo el ejemplo, allí sedefine la tabla de interrupciones y en especial la interrupción de RESET quees la función que se ejecuta en el arranque. La interrupción de RESET esta

implementada en la función reset_handler (línea 38), inicializa la memoriay llama a la función main del ejemplo.

El archivo main.c incluye al archivo de cabecera lpc1343.h (línea 1)para disponer de GPIO3DIR y GPIO3DATA e implementa solo la función main

(línea 3). Define un acumulador llamado i (línea 5) que se emplea para losretardos. Luego se ajusta como salida el pin PIO3_0 del LPC1343 (línea 8).El resto de la función se ejecuta en un bucle infinito (línea 10-21). Dentrodel bucle infinito se apaga un led conectado al pin PIO3_0 (línea 13) y seespera un retardo de tiempo formado con un bucle for de 2 millones deinteraciones vacias (líneas 14-15). Finalizando el bucle se apaga el led (línea18) y se espera otro retardo de tiempo (líneas 19-20). El bucle es ejecutado

hasta que se apage el LPC1343.

5. Construir un perfil

La última tarea a realizar es construir el perfil. Simplemente, y con elperfil firmware seleccionado en el panel lateral, elegir la opción Construir 

perfil  del menú Proyectos. También se puede iniciar la construcción del perfileligiendo la misma opción desde la barra de herramientas o desde el tecladocon Control+Shift+B .

Son compilados primero los archivos main.c y boot.c. Estos archivosson enlazados a oscilador-firmware.elf , para luego ser convertidos aoscilador-firmware.bin , que es el archivo a emplear para programar alLPC1343. Pero al archivo oscilador-firmware.bin hay que agregarse elCRC, para lograr eso se llama a lpcrc. Ver Figura 10.

El nombre del archivo para ser programado al microcontrolador esta con-formado por el nombre del proyecto, un guión, el nombre del perfil construidoy la extension del tipo de salida. Como este proyecto se llama oscilador,se construyó el perfil firmware y el tipo de salida es binary, el archivogenerado se llama oscilador-firmware.bin .

8

Page 9: Primeros Pasos Arm

5/11/2018 Primeros Pasos Arm - slidepdf.com

http://slidepdf.com/reader/full/primeros-pasos-arm 9/9

Figura 10: Construcción del perfil firmware

6. Conclusión

Este ejemplo básico a demostrado como emplear i4uc para construir elfirmware de un oscilador a base de un LPC1343.

Cada paso ha sido explicado en detalle y visualizado con capturas depantalla para facilitar el entendimiento de todo el proceso de desarrollo delejemplo.

Se puede avanzar aun más duplicando el perfil startup para agregarleun nuevo archivo de código fuente que implemente su propia función main

para solucionar otro tipo de problema. Inclusive los perfiles creados puedenser exportados a otros proyectos, si estos fueron marcados como públicos.

9