Traducción y adaptacion del artículo publicado en: http://www.mikrocontroller.

net/articles/STM32F4-Discovery

STM32F4-Discovery
Este artículo Wiki es una ayuda para introducirse en la familia de procesadores STM32 de STMicroelectronics. Se indican los pasos de instalación de las herramientas software necesarias para trabajar bajo Linux, programando el C/C++. Sin embargo, la mayoría de estos pasos también son aplicables para entorno Windows.

Hardware
La placa utilizada en el presente artículo es STM32F4-Discovery. También es posible utilizar otras placas, sin embargo, los ejemplos del diagrama se ajustan para ésta.

Software
Para mantener el sistema de archivos limpio todo el software se instalará en el subdirectorio /opt , previsto para este tipo de instalaciones. Para el acceso a escritura de este directorio requerirá privilegios de root. También tiene la posibilidad de escribir todo en su directorio home, sin necesitar derechos de root. Pero esto tiene que decidirlo por sí mismo, según le guste. No todas las distribuciones de Linux son las mismos. En este tutorial se trabaja con Lubuntu 11.10. La mayor parte debe trabajar con Ubuntu y los sistemas Debian. Para otras distribuciones puede editar la sección correspondiente o en la discusión: Diskussion:STM32F4-Discovery (en alemán).

Sourcery CodeBench Lite Edition for ARM EABI
Primero, necesitamos el compilador y linker del toolchain. Aquí se utiliza Sourcery Codebench de Mentor. En la sección "Procesadores soportados" debe ir a "procesadores ARM" y clickar "Download the EABI Release" . Desafortunadamente, usted tiene que registrarse. Una vez registrado recibirá un enlace por correo electrónico a la página de descarga. Usted selecciona el "Recommended Release" y descarga el archivo "IA32 GNU/Linux TAR". Enlace directo para Linux Enlace directo para Windows

Una vez descargado, se descomprime en /opt/CodeSourcery:
root@linux:/home/user/Downloads# mkdir /opt/CodeSourcery root@linux:/home/user/Downloads# cd /opt/CodeSourcery root@linux:/opt/CodeSourcery# tar xvf /home/user/Downloads/arm-2011.09-69-armnone-eabi-i686-pc-linux-gnu.tar.bz2 root@linux:/opt/CodeSourcery# ls arm-2011.09

Después, se personaliza la variable de entorno PATH. De esta forma, se permite que el compilador de Eclipse encuentre el sistema de archivos, sin necesidad deespecificar la ruta de acceso absoluta. Hay varios lugares donde se puede ajustar la variable. Se recomienda ajustarlo en el archivo /etc/environment :

7.. Una vez descargado. descargue "Eclipse Classic". Atención: Si no se permite la operación. También hay un Eclipse ARM GNU Plug-in. se debe extraer los ficheros: root@linux:/home/user/Downloads# cd /opt root@linux:/opt# tar xvf /home/user/Downloads/eclipse-SDK-3. Introduzca http://download.1 Copyright (C) 2011 Free Software Foundation. instalaremos los plugins necesarios. Ya es posible crear una simple C o C + + e utilizar un fichero make importado. Expanda CDT Main Features y seleccione C/C++ Development Tools. En el menú File > New > Project.. Click en Siguiente. verá que puede abrir un entorno C o C++. not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.09/bin\" >> /etc/environment root@linux:/opt/CodeSourcery# source /etc/environment root@linux:/opt/CodeSourcery# arm-none-eabi-gcc --version arm-none-eabi-gcc (Sourcery CodeBench Lite 2011. se obtendrá un diálogo.org/tools/cdt/releases/indigo en “Work with:”. En primer lugar.09-69) 4.1 CDT (C/C++ Development Tooling) Para instalar el IDE de CDT por primera vez.. There is NO warranty. Pero si va a utilizar Eclipse para más lenguajes de programación. El plugin puede ahora manejar la configuración del compilador y linker en Eclipse. Vamos a utilizar Eclipse Classic 3.gz El IDE ya se puede iniciar: user@linux:~$ /opt/eclipse/eclipse En el apartado siguiente. En la ventana principal seleccione el elemento de menú Help > Install New Software..tar..7. Un solo clic para terminar y los plug-ins se descargan e instalan. Eclipse IDE Después de instalar el toolchain. see the source for copying conditions.. .1-linux-gtk. La sección "CDT (C/C++ Development Tooling)" se puede omitir si ha decidido instalar el paquete "Eclipse IDE for C/C++ Developers" en vez de Eclipse Classic 3. el más útil es "Eclipse IDE for C/C++ Developers". Inc.eclipse.root@linux:/opt/CodeSourcery# echo PATH=\"$PATH:/opt/CodeSourcery/arm2011. En este punto. Reinicie Eclipse. se busca en eclipse.6. GNU ARM Eclipse Plug-in Ahora falta el vínculo entre el Toolchain y Eclipse. modifique los privilegios del fichero /etc/environment con el comando chmod y vuelva a intentarlo. Confirme la licencian. procedemos a instalar el IDE Eclipse.org el paquetes que se más se adapte. Expanda CDT Optional Features y seleccione C/C++ GDB Hardware Debugging. plugins necesarios. This is free software.7. En la parte inferior del diálogo se listan los plugins disponibles.1 e instalaremos luego el plug-in CDT (C/C++ Development Tooling).

Reiniciar Eclipse. este es el paquete libusb-1. está el "stm32 discovery line linux programmer" Las herramientas están disponibles como código fuente y debe ser compilado en primer lugar. root@linux:~# mkdir /opt/stlink root@linux:~# cd /opt/stlink root@linux:/opt/stlink# cp /home/user/src/stlink/flash/flash . Para un sistema Ubuntu. Ubuntu necesita los paquetes build-essential y git).La instalación del plug-in funciona igual que la instalación del CDT..Seleccionar CDT GNU Cross Development Tools y click en Next.0-dev (Lubuntu 11.net/updates y pulse Intro.git Para compilar las herramientas de código fuente ahora puede seguir siendo la necesidad de libusb 1.rules /etc/udev/rules. Para Linux. Antes de empezar con los ejemplos. 4. ¡Aquí vamos! Si ha compilado el Linux nunca ha sido con un único programa de ver lo mejor en el manual / wiki para su distribución de acuerdo a lo que usted necesita (por ejemplo. aún debe responder saber cómo los datos están en el chip. Click en Next..10).. Aquí está el resumen: 1. pero con una fuente diferente.Help > Install New Software.d root@linux:~# udevadm control --reload-rules . En primer lugar.. 2. / Gdbserver / st util-copia esté disponible a través de la variable de entorno PATH: Nota: El siguiente bloque que yo llamo de flash en flash-st orden.0.Work with: http://gnuarmeclipse.sourceforge. 6.. 5. Stlink El kit de Desarrollo STM32F4-Discovery se puede programar a través de USB STLinkV2... porque creo que el flash no es particularmente apropiada cuando se pone a disposición a través de una variable de entorno. confirme con OK.Acepte la licencia. Al crear un nuevo C o C + + la cadena de herramientas Toolchain ARM Linux GCC (Sourcery G++ Lite) estará seleccionada.com/texane/stlink.. 7.. descargue el código fuente: user@linux:~/src$ git clone git://github. o bien solamente.Aparecerá un resumen.0./st-flash root@linux:/opt/stlink# cp /home/user/src/stlink/gdbserver/st-util . / Flash / Flash y. root@linux:/opt/stlink# echo PATH=\"$PATH:/opt/stlink\" >> /etc/environment root@linux:/opt/stlink# source /etc/environment Ahora las dos herramientas todavía necesitan acceso de escritura al dispositivo USB: root@linux:~# cp /home/user/src/stlink/49-stlinkv*. 3. Click en Finish. Ahora el código fuente para compilarlo: user@linux:~/src$ cd stlink user@linux:~/src/stlink$ make Si todo se realizó sin errores puede hacer que toda la carpeta.Hay un diálogo de advertencia de que los archivos están firmados. Por favor.

Build → Build before Launch Desactivado. Vaya a: Run > External Tools > External Tools Configurations.Click en “Apply”. Si no lo ha hecho. Seleccione Un clic con el botón derecho del ratón sobre el Program y el New... En la página principal. user@linux:~$ st-flash write ~/STM32F4-Discovery. el archivo se puede escribir de nuevo. 3. Mikrocontrollers.Click en “Close”. el GDB-Server se integra en Eclipse. / dev/stlinkv2_2. "Standard Peripherals Library" se puede descargar en la parte inferior de la página de STMicroelectronics. A continuación.Main → Location: /opt/stlink/st-util 2. STM32F4-Discovery conectado al PC.. 4. 6. user@linux:~$ st-flash read ~/STM32F4-Discovery. Standard Peripherals Library STMicroelectronics ofrece bibliotecas de microprocesadores.. "standard peripherals library" buscando el STM32F4-Discovery necesitamos el archivo STM32F4 DSP and standard peripherals library El archivo se puede descomprimir en cualquier ubicación. seleccione en primer lugar los productos de categoría en la categoría de Products y Micros & Memories...Ahora.. 5. En el campo de Software Resources. un dispositivo nuevo se crea. Escoja un nombre como.Common → External Tools → Display in Favorites menu Activado. lo que disminuye el trabajo del programador. En la parte superior hay un cuadro de búsqueda. Si ha llegado hasta aquí. a continuación. Pasos: 1. ST-Link...Working Directory: ${workspace_loc}${project_path}.bin 0x8000000 Stlink integrado en Eclipse A continuación. se ha descomprimido en /home/user/eclipse/STM32/ Crear un nuevo proyecto Ahora usted puede comenzar con la programación. ahora puede hacer una copia de seguridad del firmware. el IDE se puede iniciar ahora: user@linux:~$ /opt/eclipse/eclipse . se selecciona el Firmware. Se abre un nuevo navegador con una lista de archivos.bin 0x8000000 0x100000 Con este comando. En este caso. Para las placas con STLink v1 usted debe leer el README stlink. seleccione la pestaña Resources. por ejemplo.

3.09/lib/gcc/arm-none-eabi/4.0/Libraries/CMSIS/Device/ST/STM32F4xx/Include • /home/user/eclipse/STM32/STM32F4xx StdPeriphLib V1..Creación de un proyecto: 1. File > New > Project. Es de suponer que la variable de entorno PATH no se ha establecido correctamente. 2.. Si todo ha ido bien hasta el momento actual. se pueden añadir los archivos de origen de los periféricos de la biblioteca estándar: 1.0.. deberá introducir las siguientes rutas.. 4.0/Libraries/STM32F4xx_StdPeriph_Driver/inc • /${ProjDirPath} A continuación. 3.. debe realizar los nuevos ajustes. Si descomprimió el archivo descargado de ST a //home/user/eclipse/STM32.09/lib/gcc/arm-none-eabi/4. directorio = /user/eclipse/STM32/STM32F4xx StdPeriphLib V1. C/C++ > C Project. En primer lugar el fichero de cabecera de los periféricos de la biblioteca estándar que se añadió anteriormente: 1. En el lado izquierdo en el Explorador de proyectos. si lo hizo a otro directorio. la estructura de árbol ya debería estar presente. En la carpeta Include.6. deben haber tres entradas: • /opt/CodeSourcery/arm-2011.0.09/arm-none-eabi/include • /opt/CodeSourcery/arm-2011.0. 5. deberá adaptarlas: • /home/user/eclipse/STM32/STM32F4xx StdPeriphLib V1.1/include • /opt/CodeSourcery/arm-2011.0. Project > Properties C/C++ General > Paths and Symbols Configuration = [All configurations] Ficha Includes.1/include-fixed Si estos datos no existen.. 4. es hasta aquí ha ido un poco mal. después de la C/C++ Perspective debe responder Yes al diálogo. ahora se verá el nuevo proyecto tan pronto como usted lo abra. Languages = GNU C Aquí están las rutas de acceso a los archivos de cabecera de los periféricos de la biblioteca estándar ingresadas.. 2. Next ARM Cross Target Application > Empty Project Toolchains = ARM Linux GCC (Sourcery G++ Lite) Project name = (Aquí escriba el nombre del proyecto)..0/Libraries/STM32F4xx_StdPeriph_Driver/src .0/Libraries/CMSIS/Include • /home/user/eclipse/STM32/STM32F4xx StdPeriphLib V1. Folder Name = StdPeriph 3.6. Link Folder. Finish Finalmente. Browse. 6. Ficha Source Location 2.

0.s La extensión del archivo startup_stm32f4xx.c • /home/user/eclipse/STM32/STM32F4xx StdPeriphLib V1. se crean dos iconos: 1. Add. Ahora copiamos 3 archivos en la carpeta del proyecto: • /home/user/eclipse/STM32/STM32F4xx StdPeriphLib V1.ld • /home/user/eclipse/STM32/STM32F4xx StdPeriphLib V1. El archivo tiene el nombre de los Prejekts y termina en. Ahora usted puede iniciar la programación. 3. 2.ld Ajuste del formato de salida como binario: 1.s debe ser cambiado a un S. C/C++ Build > Settings Configuration = [All configurations] ARM Sourcery Linux GCC Linker > General Script File (-T) = /${ProjDirPath}/stm32_flash. Name: = USE_STM32_DISCOVERY > OK Se activa la secuencia de comandos del linker: 1. Symbols.0/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.0/Project/STM32F4xx_StdPeriph_Templates/TrueSTUDIO/STM324xG_EVAL/stm32 _flash. También debe ser comentadas las siguientes líneas: /* Call static constructors */ // bl __libc_init_array El archivo compilado se encuentra en el Debug o Release en el directorio del proyecto. ARM Sourcery Linux GNU Create Flash Image > Output 2. Languages = GNU C 2.. Hex.Ahora... 4.. Output file format (-O) = binary Cerrar el cuadro de diálogo haciendo clic en Aceptar.0.. El final es en realidad contiene un hexágono binaria. Name: = USE_STDPERIPH_DRIVER > OK 3.0.0/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/TrueSTUDIO/startup_s tm32f4xx. .. Add.

. escriba el nombre de la configuración como STM32F4-Discovery ST-Link. Con el proyecto abierto. En Name. primero seleccione Ejecutar desde el menú principal> Run > External Tools > ST-Link el GDB-Server se ha iniciado. Debugger: GDB-Command: arm-none-eabi-gdb.. seleccione Run > Debug Configurations. que debe ser respondidas con un Yes.. El archivo de C/C++ Application: a elegir el mejor haciendo clic en Search Project .. El programa está cargado en el microcontrolador y el proceso de flash para ser parado inmediatamente. haga clic en el menú principal. . haga clic en Run > Debug Configurations. Si recibe el mensaje de las referencias a variables de selección vacío: $ {} ayuda project_path una vez en un archivo de proyecto o el explorador del proyecto para hacer clic. en la lista de la izquierda permite elegir entre la configuración de hardware de depuración aplicados.. clics. Eclipse ahora pregunta la perspectiva de depuración. Port Number: 4242. Ficha Common: Active Debug → Display in Favorites menu Apply Close Para depurar un proyecto.. en el GDB Hardware Debugging y haga clic en Debug. En la lista de la izquierda.Depuración con GDB En esta sección se muestra uso del GDB-Server con St-link en Eclipse. El campo de proyecto ya debería estar lleno. haga clic con el botón derecho del ratón sobre la GDB Hardware Debugging y seleccione New. A continuación... F8 con la ejecución se puede reiniciar.

Sign up to vote on this title
UsefulNot useful