Está en la página 1de 7

Traduccin y adaptacion del artculo publicado en: http://www.mikrocontroller.

net/articles/STM32F4-Discovery

STM32F4-Discovery
Este artculo Wiki es una ayuda para introducirse en la familia de procesadores STM32 de STMicroelectronics. Se indican los pasos de instalacin de las herramientas software necesarias para trabajar bajo Linux, programando el C/C++. Sin embargo, la mayora de estos pasos tambin son aplicables para entorno Windows.

Hardware
La placa utilizada en el presente artculo es STM32F4-Discovery. Tambin 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. Tambin tiene la posibilidad de escribir todo en su directorio home, sin necesitar derechos de root. Pero esto tiene que decidirlo por s mismo, segn 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 seccin correspondiente o en la discusin: Diskussion:STM32F4-Discovery (en alemn).

Sourcery CodeBench Lite Edition for ARM EABI


Primero, necesitamos el compilador y linker del toolchain. Aqu se utiliza Sourcery Codebench de Mentor. En la seccin "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 electrnico a la pgina 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

Despus, 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 :

root@linux:/opt/CodeSourcery# echo PATH=\"$PATH:/opt/CodeSourcery/arm2011.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.09-69) 4.6.1 Copyright (C) 2011 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Atencin: Si no se permite la operacin, modifique los privilegios del fichero /etc/environment con el comando chmod y vuelva a intentarlo.

Eclipse IDE
Despus de instalar el toolchain, procedemos a instalar el IDE Eclipse. En primer lugar, se busca en eclipse.org el paquetes que se ms se adapte. En este punto, el ms til es "Eclipse IDE for C/C++ Developers". Pero si va a utilizar Eclipse para ms lenguajes de programacin, descargue "Eclipse Classic". Vamos a utilizar Eclipse Classic 3.7.1 e instalaremos luego el plug-in CDT (C/C++ Development Tooling). Una vez descargado, se debe extraer los ficheros:
root@linux:/home/user/Downloads# cd /opt root@linux:/opt# tar xvf /home/user/Downloads/eclipse-SDK-3.7.1-linux-gtk.tar.gz

El IDE ya se puede iniciar:


user@linux:~$ /opt/eclipse/eclipse

En el apartado siguiente, instalaremos los plugins necesarios. La seccin "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.7.1

CDT (C/C++ Development Tooling)


Para instalar el IDE de CDT por primera vez. En la ventana principal seleccione el elemento de men Help > Install New Software.... se obtendr un dilogo. Introduzca http://download.eclipse.org/tools/cdt/releases/indigo en Work with:. En la parte inferior del dilogo se listan los plugins disponibles, plugins necesarios. Expanda CDT Main Features y seleccione C/C++ Development Tools. Expanda CDT Optional Features y seleccione C/C++ GDB Hardware Debugging. Click en Siguiente. Confirme la licencian. Un solo clic para terminar y los plug-ins se descargan e instalan. Reinicie Eclipse. En el men File > New > Project..., ver que puede abrir un entorno C o C++. Ya es posible crear una simple C o C + + e utilizar un fichero make importado.

GNU ARM Eclipse Plug-in


Ahora falta el vnculo entre el Toolchain y Eclipse. Tambin hay un Eclipse ARM GNU Plug-in. El plugin puede ahora manejar la configuracin del compilador y linker en Eclipse.

La instalacin del plug-in funciona igual que la instalacin del CDT, pero con una fuente diferente. Aqu est el resumen: 1.- Help > Install New Software... 2.- Work with: http://gnuarmeclipse.sourceforge.net/updates y pulse Intro. 3.- Seleccionar CDT GNU Cross Development Tools y click en Next. 4.- Aparecer un resumen. Click en Next. 5.- Acepte la licencia. Click en Finish. 6.- Hay un dilogo de advertencia de que los archivos estn firmados. Por favor, confirme con OK. 7.- Reiniciar Eclipse. Al crear un nuevo C o C + + la cadena de herramientas Toolchain ARM Linux GCC (Sourcery G++ Lite) estar seleccionada. Antes de empezar con los ejemplos, an debe responder saber cmo los datos estn en el chip.

Stlink
El kit de Desarrollo STM32F4-Discovery se puede programar a travs de USB STLinkV2. Para Linux, est el "stm32 discovery line linux programmer" Las herramientas estn disponibles como cdigo fuente y debe ser compilado en primer lugar. Aqu vamos! Si ha compilado el Linux nunca ha sido con un nico programa de ver lo mejor en el manual / wiki para su distribucin de acuerdo a lo que usted necesita (por ejemplo, Ubuntu necesita los paquetes build-essential y git). En primer lugar, descargue el cdigo fuente:
user@linux:~/src$ git clone git://github.com/texane/stlink.git

Para compilar las herramientas de cdigo fuente ahora puede seguir siendo la necesidad de libusb 1.0. Para un sistema Ubuntu, este es el paquete libusb-1.0.0-dev (Lubuntu 11.10). Ahora el cdigo 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, o bien solamente. / Flash / Flash y. / Gdbserver / st util-copia est disponible a travs de la variable de entorno PATH: Nota: El siguiente bloque que yo llamo de flash en flash-st orden, porque creo que el flash no es particularmente apropiada cuando se pone a disposicin a travs de una variable de entorno.
root@linux:~# mkdir /opt/stlink root@linux:~# cd /opt/stlink root@linux:/opt/stlink# cp /home/user/src/stlink/flash/flash ./st-flash root@linux:/opt/stlink# cp /home/user/src/stlink/gdbserver/st-util . root@linux:/opt/stlink# echo PATH=\"$PATH:/opt/stlink\" >> /etc/environment root@linux:/opt/stlink# source /etc/environment

Ahora las dos herramientas todava necesitan acceso de escritura al dispositivo USB:
root@linux:~# cp /home/user/src/stlink/49-stlinkv*.rules /etc/udev/rules.d root@linux:~# udevadm control --reload-rules

Ahora, STM32F4-Discovery conectado al PC, un dispositivo nuevo se crea, / dev/stlinkv2_2. Para las placas con STLink v1 usted debe leer el README stlink. Si ha llegado hasta aqu, ahora puede hacer una copia de seguridad del firmware.
user@linux:~$ st-flash read ~/STM32F4-Discovery.bin 0x8000000 0x100000

Con este comando, el archivo se puede escribir de nuevo.


user@linux:~$ st-flash write ~/STM32F4-Discovery.bin 0x8000000

Stlink integrado en Eclipse


A continuacin, el GDB-Server se integra en Eclipse. Vaya a: Run > External Tools > External Tools Configurations.... Seleccione Un clic con el botn derecho del ratn sobre el Program y el New. Escoja un nombre como, por ejemplo, ST-Link. Pasos: 1.- Main Location: /opt/stlink/st-util 2.- Working Directory: ${workspace_loc}${project_path}. 3.- Build Build before Launch Desactivado. 4.- Common External Tools Display in Favorites menu Activado. 5.- Click en Apply. 6.- Click en Close.

Standard Peripherals Library


STMicroelectronics ofrece bibliotecas de microprocesadores, lo que disminuye el trabajo del programador. "Standard Peripherals Library" se puede descargar en la parte inferior de la pgina de STMicroelectronics. En la pgina principal, seleccione en primer lugar los productos de categora en la categora de Products y Micros & Memories, a continuacin, Mikrocontrollers. A continuacin, seleccione la pestaa Resources. En el campo de Software Resources, se selecciona el Firmware. Se abre un nuevo navegador con una lista de archivos. En la parte superior hay un cuadro de bsqueda. "standard peripherals library" buscando el STM32F4-Discovery necesitamos el archivo STM32F4 DSP and standard peripherals library El archivo se puede descomprimir en cualquier ubicacin. En este caso, se ha descomprimido en /home/user/eclipse/STM32/

Crear un nuevo proyecto


Ahora usted puede comenzar con la programacin. Si no lo ha hecho, el IDE se puede iniciar ahora:
user@linux:~$ /opt/eclipse/eclipse

Creacin de un proyecto: 1. 2. 3. 4. 5. 6. File > New > Project... C/C++ > C Project; Next ARM Cross Target Application > Empty Project Toolchains = ARM Linux GCC (Sourcery G++ Lite) Project name = (Aqu escriba el nombre del proyecto); Finish Finalmente, despus de la C/C++ Perspective debe responder Yes al dilogo.

En el lado izquierdo en el Explorador de proyectos, ahora se ver el nuevo proyecto tan pronto como usted lo abra, la estructura de rbol ya debera estar presente. En la carpeta Include, deben haber tres entradas: /opt/CodeSourcery/arm-2011.09/arm-none-eabi/include /opt/CodeSourcery/arm-2011.09/lib/gcc/arm-none-eabi/4.6.1/include /opt/CodeSourcery/arm-2011.09/lib/gcc/arm-none-eabi/4.6.1/include-fixed Si estos datos no existen, es hasta aqu ha ido un poco mal. Es de suponer que la variable de entorno PATH no se ha establecido correctamente. Si todo ha ido bien hasta el momento actual, debe realizar los nuevos ajustes. En primer lugar el fichero de cabecera de los perifricos de la biblioteca estndar que se aadi anteriormente: 1. 2. 3. 4. Project > Properties C/C++ General > Paths and Symbols Configuration = [All configurations] Ficha Includes, Languages = GNU C

Aqu estn las rutas de acceso a los archivos de cabecera de los perifricos de la biblioteca estndar ingresadas. Si descomprimi el archivo descargado de ST a //home/user/eclipse/STM32, deber introducir las siguientes rutas, si lo hizo a otro directorio, deber adaptarlas: /home/user/eclipse/STM32/STM32F4xx StdPeriphLib V1.0.0/Libraries/CMSIS/Include /home/user/eclipse/STM32/STM32F4xx StdPeriphLib V1.0.0/Libraries/CMSIS/Device/ST/STM32F4xx/Include /home/user/eclipse/STM32/STM32F4xx StdPeriphLib V1.0.0/Libraries/STM32F4xx_StdPeriph_Driver/inc /${ProjDirPath} A continuacin, se pueden aadir los archivos de origen de los perifricos de la biblioteca estndar: 1. Ficha Source Location 2. Link Folder..., Folder Name = StdPeriph 3. Browse..., directorio = /user/eclipse/STM32/STM32F4xx StdPeriphLib V1.0.0/Libraries/STM32F4xx_StdPeriph_Driver/src

Ahora, se crean dos iconos: 1. Symbols, Languages = GNU C 2. Add..., Name: = USE_STDPERIPH_DRIVER > OK 3. Add..., Name: = USE_STM32_DISCOVERY > OK Se activa la secuencia de comandos del linker: 1. 2. 3. 4. C/C++ Build > Settings Configuration = [All configurations] ARM Sourcery Linux GCC Linker > General Script File (-T) = /${ProjDirPath}/stm32_flash.ld

Ajuste del formato de salida como binario: 1. ARM Sourcery Linux GNU Create Flash Image > Output 2. Output file format (-O) = binary Cerrar el cuadro de dilogo haciendo clic en Aceptar. Ahora copiamos 3 archivos en la carpeta del proyecto: /home/user/eclipse/STM32/STM32F4xx StdPeriphLib V1.0.0/Project/STM32F4xx_StdPeriph_Templates/TrueSTUDIO/STM324xG_EVAL/stm32 _flash.ld /home/user/eclipse/STM32/STM32F4xx StdPeriphLib V1.0.0/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c /home/user/eclipse/STM32/STM32F4xx StdPeriphLib V1.0.0/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/TrueSTUDIO/startup_s tm32f4xx.s La extensin del archivo startup_stm32f4xx.s debe ser cambiado a un S. Tambin debe ser comentadas las siguientes lneas:
/* Call static constructors */ // bl __libc_init_array

El archivo compilado se encuentra en el Debug o Release en el directorio del proyecto. El archivo tiene el nombre de los Prejekts y termina en. Hex. El final es en realidad contiene un hexgono binaria. Ahora usted puede iniciar la programacin.

Depuracin con GDB


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