sábado, 15 de junio de 2013

firmware-stm3210fx3 "SEE" Un proyecto plantilla en autotools para STM32EVAL10X

Con esta plantilla tienes la oportunidad de trabajar con la biblioteca de periféricos STM32F10x_StdPeriph_Lib y el kernel FreeRTOS.

 git clone https://github.com/denisacostaq/firmware-stm3210fx3.git

firmware-stm3210fx2 "SEE" Un proyecto plantilla en autotools para STM32EVAL10X

Con esta plantilla tienes la oportunidad de trabajar con la biblioteca de periféricos STM32F10x_StdPeriph_Lib.

git clone https://github.com/denisacostaq/firmware-stm3210fx2.git

firmware-stm3210fx1 "SEE" Un proyecto plantilla en autotools para STM32EVAL10X

Esta plantilla es la más básica de todas, solo te garantizo que compila pero el resto deberás agregarlo tú.

git clone https://github.com/denisacostaq/firmware-stm3210fx1.git

Un proyecto plantilla en autotools para STM32EVAL10X.

Bueno, bueno, ya con el título tienen “el gran trabajo” en este post, simplemente una plantilla que me cansé de escribir por decenas de veces que lo había hecho. El tema consiste en que por acá usamos las normas de gnu para el desarrollo de aplicaciones y esto incluye la configuración del proyecto por su puesto(see GNU Coding Standards). Como IDE puedes usar el de tu preferencia (el que tenga soporte para autotools o sea casi todos), como compilador usas igual el que quieras lo que tendrías que realizar cambios menores en la configuración del proyecto(AC_PROG_CC([arm-none-eabi-gcc]) ;) ). Bueno si este post forma parte de tus intereses para el trabajo que estás realizando te dejo algunos detalles de como usar las plantillas; si no manejas la herramientas autotools probablemente no te sea útil.
Primero que todo veamos como compilar y “flashar” en memoria estas plantillas que no hacen nada pero bueno por lo menos se ejecutan jeje.
  1. tar -xvzf firmware-stm3210fx#.tar.gz
  2. cd firmware-stm3210fx#-0.0.0
  3. export PATH=$PATH:/path/a/tu/toolchain
  4. ./configure –host=arm-none-eabi
  5. make
  6. make flash_firmware
Fácil verdad!,  ahora veamos algunos truquillos incluidos que te pueden facilitar la vida…
  1. doc: make doxygen-doc Te construye la documentación basada en el código si escribistes para doxygen además.
  2. “browse”: ./show_sources.sh Cada vez que en tu proyecto incluyas un nuevo archivo deberás hacerlo también en la configuración de autotool, si es un archivo de código propio lo harías en las variables “SOURCE” y “HEADER” respectivamente además por organización sería bueno que lo mantuvieras bajo “$(top_builddir)/src/Source” solo por organización, en realidad puedes ponerlo donde quieras, el otro caso sería el que incluyas código freeRTOS, lwIP, STM32Peripheral, o el que sea que incluyas con el scrip mencionado puedes tener una vista inmediata de donde se encuentra exactamente para agregarlo a su correspondiente variable (FREERTOS_SOURCE, ST_LIB_SOURCE, …), y tener en cuenta que si el compilador no está buscando cabeceras en el directorio recién incluido, incluirlo! en la variable AM_CPPFLAGS.
  3. Flashar: make flash_firmware Flashea la memoria usando una interfaz JTAG y openocd.
  4. Tablas de símbolos: cd src ; make log ; cd ../ , en src estarán los ficheros (*.txt) con tablas de símbolo, espacio de memoria, … que tal vez en algún momento necesites mirar.
  5. Detalles de compilación: make details Esto te muestra la compilación que estás realizando, para este caso específico la salida sería; Building from:
    build_cpu = i686, build_os = linux-gnu, build_vendor = pc
    To:
    host_cpu = arm, host_os = eabi, host_vendor = none
  6. Por último ten en cuenta que de una manera u otra terminarás modificando las reglas de compilación por lo que he copiado en doc/file.txt algunos de los parámetros utilizados, por ejemplo el proyecto está configurado en modo debug (-g), cuando hagas liberación esta bandera debería ser deshabilitada. Más información al respecto la buscas en la especificación de tu compilador.
Espero te sea de ayuda y si bien no sirve para cualquier proyecto, tengas una buena idea de como usar autotools :)

Ver además:
firmware-stm3210fx1
firmware-stm3210fx2
firmware-stm3210fx3

martes, 4 de junio de 2013

Invitación - Defensa de tesis de grado sobre Diseño de una Computadora de Vuelo para UAVs - Martes 11/6 19hs

Invitación a la defensa de la tesis de grado del Sr. Alan Kharsansky, sobre "Diseño e implementación de un sistema embebido de control de actitud para aeronaves no tripuladas", que tendrá lugar el día martes 11/6 a las 19hs en el aula 211-A del segundo piso de la Facultad de Ingeniería de la UBA, Av. Paseo Colón 850, Buenos Aires, Argentina.
El trabajo incluye el diseño, implementación y validación de una computadora de vuelo para un cuadricóptero basada en el LPC1769 (Cortex-M3) y el FreeRTOS, y todo el proceso de modelado, identificación y diseño a partir del cual mediante un conjunto de controladores PID elementales se logra el control en vuelo libre de la aeronave. Para ver un vídeo del Quad en vuelo y obtener más información, así como para acceder a una memoria de la tesis, visitar la página web: