El primer post de esta serie cubre los pasos para generar y ejecutar código para el STM32. El segundo puesto cubierto cómo construir un compilador cruzado para el STM32. El tercer puesto cubierto cómo construir un depurador para el STM32. Este post va a cubrir OpenOCD edificio para su entorno de desarrollo. de
Como se ha mencionado en el post introductorio, necesitamos OpenOCD para que podamos tomar binarios que construimos y subirlos a la STM32. OpenOCD es una herramienta altamente configurable y comprende un número de diferentes protocolos. Para nuestros propósitos, en realidad sólo necesitamos para entender STLinkV2, que es el que utiliza el STM32. También tenga en cuenta que a diferencia de los mensajes anteriores, este post no necesita o construir una herramienta de compilado cruz. Esto se debe a sí mismo OpenOCD se ejecuta en nuestro equipo de desarrollo, por lo que sólo tiene que hacer una compilación normal. Al igual que antes, voy a recopilar una cierta versión del OpenOCD (0.7.0). Las versiones más recientes o más antiguas pueden trabajar, pero su kilometraje puede variar.
Como antes, comenzamos con la exportación de algunas variables de entorno:
/>
PREFIJO $ export = ~ / opt / cross />
$ export PATH = $ PREFIX / bin: $ PATH
La variable de entorno TOPDIR es el directorio en el que las fuentes se almacenan. La variable de entorno TARGET es la arquitectura que queremos que nuestro compilador emita código. Para los chips de ARM, sin un sistema operativo (como el STM32), queremos armar Coincidir eabi. La variable de entorno PREFIJO es el lugar que queremos nuestras herramientas de compilación cruzada para acabar en, no dude en cambiar esto a algo más adecuado. La variable de entorno BUILDPROCS es el número de procesadores que podemos utilizar, vamos a utilizar todos ellos, mientras que la construcción para acelerar considerablemente el proceso de generación. Por último, hay que añadir la ubicación de los binarios de compilación cruzada en nuestro camino para que las últimas etapas de construcción pueden encontrarlo.
Ahora estamos listos para comenzar. Vamos a zona de alcance OpenOCD:
$ cd $ TOPDIR />
openocd/0.7.0/openocd -0.7.0.tar.gz
Para iniciar la compilación, primero tenemos que instalar una dependencia:
$ sudo yum install libusbx-devel
Ahora vamos a descomprimir y construir OpenOCD:
$ tar-xvf OpenOCD-0.7.0.tar.gz />
$ / configure - enable-stlink - prefix = $ PREFIX
$ make $ make install
Aquí estamos desembalaje, la configuración, la construcción y la instalación de OpenOCD. Las banderas de configure requieren un poco de explicación. La opción - enable-stlink significa para habilitar el soporte para STLink y STLinkV2, que es lo que necesitamos para esta placa. La opción - prefijo indica al sistema de construcción para instalar OpenOCD a nuestra ubicación ~ / opt / cruz. Esto no es estrictamente correcto, lo que no es una herramienta de compilación cruz. Sin embargo, es conveniente tener todo en un solo lugar, por lo que instalarlo allí.
Suponiendo que todo fue correctamente, ahora debería tener un binario OpenOCD en ~ / opt / cross / bin. También habrá un montón de archivos de configuración instalados en ~ / opt / cross / share / OpenOCD. Estos son importantes ya que son archivos de configuración pre-enlatados proporcionados por OpenOCD. Si bien es posible crear su propia desde cero, la sintaxis es barroco y es mucho más trabajo de lo que imagina. Afortunadamente OpenOCD ya viene con guiones para STLinkV2 y STM32, por lo que sólo tendremos que usar esos.
Con el fin de tener una configuración de trabajo, vamos a empezar a crear nuestro directorio "proyecto". Aquí es donde el código que eventualmente se ejecuta en el STM32 va a ser colocado. Voy a llamar a mi directorio ~ / STM32-proyecto, no dude en cambiarlo para su proyecto. Así que lo que hacemos:
$ mkdir ~ / STM32-proyecto />
STM32-openocd.cfg
fuente [encuentra interface/stlink-v2.cfg]
fuente [encuentra target/stm32f3x_stlink.cfg]
reset_config srst_only srst_nogate
EOF
Aquí creamos el directorio del proyecto, cd en él, y luego creamos el archivo de configuración para OpenOCD. El archivo de configuración se merece un poco de explicación. En primer lugar, le decimos que "encontrar" el archivo de configuración stlink-v2.cfg. ¿Dónde se ve depende del PREFIJO hemos configurado, por lo que en nuestro caso se va a ver a través de ~ / opt / cross / share / OpenOCD para ese archivo (donde debería encontrarlo). Siguiente decimos OpenOCD para "encontrar" el archivo stm32f3x_stlink.cfg. Una vez más, ese archivo se encuentra en ~ / opt / cross / share / OpenOCD, y de nuevo debe encontrarlo. Tenga en cuenta que si usted tiene un chip STM32 diferente, se debería sustituir F3X con cualquier versión del chip que tiene. Finalmente hay una línea sobre reset_config srst_only y srst_nogate. Sinceramente, no sé lo que son para, a pesar de que parecen ser necesarios.
Eso es todo por OpenOCD. Todo debe ser construido, configurado y listo para funcionar.