Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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).
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
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
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
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.