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.
-
tar -xvzf firmware-stm3210fx#.tar.gz
-
cd firmware-stm3210fx#-0.0.0
-
export PATH=$PATH:/path/a/tu/toolchain
-
./configure –host=arm-none-eabi
-
make
-
make flash_firmware
Fácil verdad!, ahora veamos algunos truquillos incluidos que te pueden facilitar la vida…
- doc: make doxygen-doc Te construye la documentación basada en el código si escribistes para doxygen además.
- “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.
- Flashar: make flash_firmware Flashea la memoria usando una interfaz JTAG y openocd.
-
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.
-
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
-
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.