TODOPIC

Otros Microcontroladores / Dispositivos programables => Microcontroladores ARM => Mensaje iniciado por: Picuino en 01 de Mayo de 2017, 10:33:58

Título: Entorno de desarrollo para STM32F4
Publicado por: Picuino en 01 de Mayo de 2017, 10:33:58
He comprado una placa STM32 con un micro Cortex-M4F y un programador J-Link V8.
Ahora sólo me falta instalar el entorno de desarrollo.

¿Algún consejo?

Un saludo.



Edito:

Documentación:
* Mastering STM32, Carmine Noviello (https://leanpub.com/mastering-stm32)
* How to install the System Workbench for STM32 in Eclipse (http://www.emcu.it/AC6/HowToInstallSTM32Workbench.pdf)
* Plugin System Workbench STM32 AC6 para Eclipse+GCC (http://www.todopic.com.ar/foros/index.php?topic=44245)
* System Workbech y mis comienzos con ST (http://www.todopic.com.ar/foros/index.php?topic=44325)
* OpenSTM32 Community (http://www.openstm32.org/HomePage) The goal of this site is to create a knowledge hub for everyone who is interested in building STM32-based embedded systems.
* Description of STM32F4 HAL and LL drivers (http://www.st.com/content/ccc/resource/technical/document/user_manual/2f/71/ba/b8/75/54/47/cf/DM00105879.pdf/files/DM00105879.pdf/jcr:content/translations/en.DM00105879.pdf)


IDEs:
* System Workbench for STM32, Free IDE for Win, OS X, Linux. Based on Eclipse (http://www.openstm32.org/System+Workbench+for+STM32)
   Descarga directa: install_sw4stm32_win_32bits-latest.exe (http://www.ac6-tools.com/downloads/SW4STM32/install_sw4stm32_win_32bits-latest.exe)
   Descarga directa: install_sw4stm64_win_32bits-latest.exe (http://www.ac6-tools.com/downloads/SW4STM32/install_sw4stm32_win_64bits-latest.exe)
* Eclipse IDE for C/C++ Developers (http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/neon3)
   Setting Eclipse + GCC toolchain with STM32 nucleo (http://www.carminenoviello.com/2014/12/28/setting-gcceclipse-toolchain-stm32nucleo-part-1/)
 

Configurador:
* STM32CubeMX (http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html): initialization code generator
* STSW-STM32095: (http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stsw-stm32095.html) STM32CubeMX Eclipse plug in for STM32 configuration


Librerias:
* STM32CubeF4 (http://www.st.com/en/embedded-software/stm32cubef4.html): Embedded software for STM32F4 series (HAL, Low-Layer APIs, CORE, DSP, RTOS, USB, TCP/IP, File system, RTOS, Graphic)


Programadores:
* ST-Link
Es el interface más estandar y mejor soportado por System Workbench (Eclipse para STM32). Viene ya incluido por defecto en las placas de pruebas de ST o se puede comprar por separado a precios muy bajos (menos de 3 Euros).

* Bootloader integrado en ROM
Muy limitado en comparación con el programador ST-Link. Teniendo en cuenta el precio de un ST-Link, no merece la pena utilizarlo.

* J-Link (https://www.segger.com/downloads/jlink) de Segger
Programador no recomendable. Es muy caro, la versión EDU más barata está muy limitada y los clones que se pueden comprar en e-bay dan problemas de compatibilidad y son más caros que el ST-Link
Software + plugins + drivers + documentación (Windows) (https://www.segger.com/downloads/jlink/JLink_Windows_V614h.exe)
Plugin para Eclipse: http://gnuarmeclipse.github.io/plugins/install/
Plugins: https://dl.bintray.com/gnu-mcu-eclipse/updates
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: KILLERJC en 01 de Mayo de 2017, 11:02:06
Te recomiendos que leas:

http://www.todopic.com.ar/foros/index.php?topic=44325.0

Ahi ya te explica como tener todo funcionando para la placa del STM32, debugger, compilador, etc.
Respecto al J-Link no se si lleva algo aparte.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: planeta9999 en 01 de Mayo de 2017, 11:24:26
.

No he usado nunca el Jlink con los STM32, para estos tengo el ST-LINKV2, supongo que te servirá igual por SWD.

Una vez instales Eclipse + AC6 + Cube, para configurar un proyecto, lo recomendable es usar siempre Cube, te ahorras un montón de tiempo, prácticamente te vas directo a escribir tu código. Incluso puedes seleccionar que te incluya ciertas librerías para USB, TPC/IP, SD y alguna más y te lo deja todo prefabricado.

Cualquier cosa que quieras cambiar de la configuración, siempre ir a Cube y regenerar el proyecto. Si respetas donde tienes que meter tu código, Cube lo mantiene cuando cambias y generas de nuevo el proyecto, si no lo haces así, te volará todo tu código.

Recomendable el libro en PDF de Carmine Noviello, "Mastering STM32", es la biblia de los STM32.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 01 de Mayo de 2017, 12:01:11
Con cube imagino que te refieres a STM32CubeMX, que es el configurador.

Pero imagino que también habrá que instalar STM32CubeF4 para las librerías.

¿Que es la AC6?
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: planeta9999 en 01 de Mayo de 2017, 12:10:10
.

Se instala todo desde Eclipse, sw4stm32 es el plugin de AC6. Es la preconfiguración de Eclipse para trabajar con los STM32, Cube es el generador de código (yo lo abrevio de STM32CubeMX o CubeMX).

http://www.todopic.com.ar/foros/index.php?topic=44245.0
http://www.emcu.it/AC6/HowToInstallSTM32Workbench.pdf

Es mejor descargarse Eclipse de la web oficial, para tener la última versión, y luego cargarle todos los plugins, en este caso AC6 y CubeMX. https://eclipse.org/downloads/packages/eclipse-ide-cc-developers/neon3


Título: Re:Entorno de desarrollo para STM32F4
Publicado por: KILLERJC en 01 de Mayo de 2017, 12:19:13
¿Que es la AC6?

Agrego un poco mas a lo de planeta para que lo puedas ver que te cambia el AC

Al momento de crear el proyecto te sale esto:
(http://www.ac6-tools.com/shared/MCU_Project_Configuration.png)

Vos elegis la libreria y seguramente te las descarga e instala, a veces me dio error por que posee un link a una de las versiones y resulta que le cambian el link y ahi tira error, pero podes descargarlo y ponerlo en la carpeta donde se descarga al .rar, Asi lo toma como si fuera ya descargado. Como ves tenes 2. la Standard Library y las HAL. Y luego si no queres usar ninguna simplemente adjuntas la carpeta CMSIS y manejas con registros ( si tu idea es aprender ), sino le metes a las HAL y feliz.

En si lo que cambia es que vas a tener que modificar registros o usar una funcion para que te lo haga y listo, lo demas que es tu programa va igual.
Es lo que te dijo planeta antes

(http://www.ac6-tools.com/shared/MCU_configuration.png)

Aca te pregunta por si vas a usar una placa, de esa forma carga los archivos del linker para el microcontrolador que estes usando, si creas una placa podes crearle un nombre, entonces cuando seleccionas tu placa ya tiene asignado el microcontrolador que dijiste.
 
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 01 de Mayo de 2017, 12:28:42
Mi placa no es estandar. Ya veré cómo resuelvo eso.

Entonces AC6 es la empresa que ha creado el System Workbench y el plugin de STM32 para Eclipse.

¿Y el compilador para ARM?
Me gustaría instalar el GCC. ¿se puede instalar standalone y luego integrar con Eclipse o viene con el plugin de System Workbench?

Un saludo.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: planeta9999 en 01 de Mayo de 2017, 13:26:24
.

No hace falta que selecciones por placa, puedes elegir el micro.

No he indagado que es AC6, aparece como el proveedor del plugin, pero vamos que es algo soportado y presentado oficialmente por ST.

Cuando selecciones la instalación del plugin desde Eclipse, te lo instala y configura todo, el compilador es GCC. Lo que no se es si te va a integrar automáticamente el programador Jlink de SEGGER.

A mi en el desplegable para elegir el programador/debugger solo me sale el ST-LinkV2 y V2-1, y como interface SWD o JTAG.

(http://www.todopic.com.ar/foros/imgtiny/34fdyxi.jpg)

(http://www.todopic.com.ar/foros/imgtiny/5zmyyh.jpg)



Título: Re:Entorno de desarrollo para STM32F4
Publicado por: planeta9999 en 01 de Mayo de 2017, 13:49:21
.

En el Kinetis Design Studio, que es también Eclipse con un plugin, si que me aparece el Jlink de SEGGER, también el U-Multilink the PE Micro y el USBDM (este se lo compré a los chinos). Los tengo los tres, más un clon del Jlink (además del EDU original)


(http://www.todopic.com.ar/foros/imgtiny/qoyoee.jpg)
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: elgarbe en 01 de Mayo de 2017, 13:50:17
El system workbench es Eclipse con todos los plugins instalados y configurados, así como el compilador y el debug. Es la mejor opcion para empezar.
Como mostró dijeron hay 2 formas de programar una placa (en cuanto a linker script y debug) una es elegir una placa de la lista, si es que tu placa está en dicha lista. La otra es programar por SWD y entonces al momento de crear el proyecto eliges un micro y "creas una placa", todo se hace en el menú de nuevo proyecto.

Tambien tienes que tener en cuenta que hay 2 formas de hacer un proyecto. La primera es hacer uso del CubeMX (cabe aclarar que hay 2 CubeMX, uno que viene como plugin de eclipse y se abre en una perspectiva dentro de eclipse y el otro un standalone de java para ejecutar sin tener eclipse corriendo), configurar los perifericos y generar el proyecto. Luego entras a eclipse e importas ese proyecto en el workspace y ya puedes empezar a agregar codigo. Se te agrega todo el código para que las HAL estén funcionales ya que son necesarias para el código de configuracion de los perifericos.
La otra opcion es partir de un proyecto desde cero. En eclipse vas a archivo nuevo proyecto y eliges AC6, micro, placa y librería. Como dice KILLER cuando eliges librería (HAL o stdplibrary (obsoleta pero con muchos ejemplos en la web)) si no la tienes se descarga e instala. Tambien hay que notar que aunque uses la misma libreria en el SystemWorkbench y en el CubeMX, estas se guardan en directorios separados, por lo que siempre tendras duplicadas las librerías  :?. En el archivo desde 0 se te configura el micro para que arranque y te da un main para que programes todo. Las librerías HAL estan referenciadas, pero no están inicializadas y por lo tanto no las puedes usar. Tiens que llamar a HAL_Init y seguir los pasos que se dan en un manual para usar las HAL.

Generalmente se usan combinaciones de ambas, es muy raro crear un proyecto de 0 porque configurar los perifericos es mucho código y tampoco se suele usar un proyecto del CubeMX porque el proyecto que se te crea tiene sus problemas, es complicado agregar ficheros .c/.h etc. Esto lo han ido mejorando, pero creo que aún no esta al 100%.

Yo lo que hago es hacer un proyecto con la configuracion/inicializacion de los perifericos. Luego hago con proyecto de 0 con la estructura de directorios/archivos que quiero y me copio el código generado a mi proyecto...

Saludos
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: elgarbe en 01 de Mayo de 2017, 14:04:46
Con cube imagino que te refieres a STM32CubeMX, que es el configurador.

Pero imagino que también habra que instalar STM32CubeF4 para las librerías.

¿Que es la AC6?

Las STM32CubeF4  son justamente las HAL y se instalan solitas cuando quieres usar el CubeMX o cuando quieres hacer un proyecto de 0 y eliges al final que tu proyecto use las HAL...

Como comente en otro momento, bien puedes arrancar sin las HAL de ST. Puedes hacer uso de las CMSIS y trabajar todo por registro.
Si te fijas en este post: http://www.todopic.com.ar/foros/index.php?topic=39861.msg331853#msg331853
que es de la epoca cuando comence con ARM se usaba todo por registro:
Código: C
  1. void lcd_out_data4(unsigned char val){
  2.      IOCLR0 |= (LCD_DATA);
  3.      IOSET0 |= (val<<4);
  4. }

No es una mala forma de empezar, solo debe incluir los .h que corresponden a la familia de tu micro (cm4) y probabblemente alguno específico del micro elegido y ya tendrías el nombre de todos los registros como en el user manual para usar ...

Saludos!
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: elgarbe en 01 de Mayo de 2017, 14:12:34
Te recomiendos que leas:

http://www.todopic.com.ar/foros/index.php?topic=44325.0

Ahi ya te explica como tener todo funcionando para la placa del STM32, debugger, compilador, etc.
Respecto al J-Link no se si lleva algo aparte.

Que buen post!!!!!! :D  ya me habia olvidado!!!! ahí está todo explicado el tema de CMSIS, stdperiplibrary o HAL.

Saludos
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 01 de Mayo de 2017, 15:03:52
Eso de programar con los registros no está mal, pero no pienso hacerlo para empezar.

Así es como programo con los PIC y me cansa bastante. Al final, para hacer cualquier cosilla tienes que leer un montón de documentación y escribir mucho código.
Solo lo veo bien para cuando quieres afinar mucho. Es como programar en código máquina, está bien para pequeños fragmentos de código si no tienes otra alternativa.

Ya tengo el Eclipse con los plugins y GCC. Solo falta que me llegue la placa y a programar.

Como tengo ganas de comenzar con el proyecto de un identificador de impedancias, lo he intentado con pics y es bastante difícil.
Solo hay unos pocos PIC de 16bit que tengan DAC (>=7bit), DMA y ADC rápido (>500ksps) y ahora no tengo ninguno a mano.

Gracias a todos.
Un saludo.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 01 de Mayo de 2017, 15:30:12
Estoy leyendo el libro Mastering STM32 y dice que las librerías HAL de ST están llenas de bugs y que los resuelven despacio y mal.
¿Cómo va la cosa a día de hoy? ¿Es preferible utilizar las CMSIS?

Saludos.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: elgarbe en 01 de Mayo de 2017, 16:19:18
CMSIS es todo registro. no hay librerías. Yo tengo un proyecto con un LPC1769 de NXP que hasta el DMA configuré por registro. Pero es como tu dices, mucho estudio y código.
Las hal tienen bugs y muchos se quejan de como estan programadas. Para mi son un excelente punto de partida. Solo me toco una vez renegar con una especie de bug en el SPI, pero algo muy puntual.
Yo en su momento maldije mucho a las HAL, ahora ya he aprendido a quererlas...
Lo bueno es que sacan release constantemente y se van corrigiendo algunos bugs.
Los grandes desarrolladores siempre dicen lo mismo... las librería de los fabricantes NINGUNA es perfecta.

Otra libreria interesante:
https://github.com/libopencm3/libopencm3/wiki

saludos
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: planeta9999 en 01 de Mayo de 2017, 16:24:47
.

Yo toda la periferia, reloj y librerías Middleware (como le llaman a lo común, USB, TCPIP, CAN, SDIO, FATFS etc...), las configuro con Cube. Ni loco me pongo a configurar todo eso a mano. En la estructura que te crea Cube, por ahí se ve el directorio de las CMSIS, pero creo que no está completo, supongo que puedes luego copiar a capón todos los ficheros y usarlas.

En toda la estructura que te genera Cube, echa mano de las HAL. Tengo un proyecto que usa SPI, SDIO, FATFS y GPIO, y no he tenido ningún problema. Cuando quiero cambiar o añadir algo de configuración, me voy a Cube, lo toco, regenero el proyecto y a seguir. Si colocas tu código donde debes, Cube te lo respeta. Te ahorras muchísimo tiempo de trabajo. En el KDE para los Kinetis tienes algo parecido, pero no tan chulo, por lo menos el Processor Expert no es tan completo.

El usuario puede meter código propio en todas las acotaciones entre /* USER CODE BEGIN  x */   y    /* USER CODE END x */, donde x es un número correlativo que identifica cada bloque,  tienes unas cuantas en todos los fuentes que genera Cube.


(http://www.todopic.com.ar/foros/imgtiny/wi7x3p.jpg)
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 01 de Mayo de 2017, 16:39:51
Ok. Entonces empezaré con la librería HAL.
Saludos.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: planeta9999 en 01 de Mayo de 2017, 16:51:53
.

Importante, si trabajas con un monitor con resolución por encima de full HD, configurar los fonts de Eclipse o te puedes quedar ciego, de lo pequeño que sale todo.

Tengo un monitor de 32" con resolución 2K y me tuve que cambiar todos los fonts, para poder trabajar en condiciones (también lo hice con Arduino, porque era insoportable de lo enano que salía todo). Lo tienes en Windows > Preferences > General > Appearance > Colors and Fonts. El tamaño del font se puede definir para varios sitios en Eclipse, yo los toqué casi todos y me los puse a 18 y 20 (creo que por omisión están a 10 y 12).

Se echa en falta que puedas variar el tamaño de font en pantalla, usando la rueda del ratón, como en otros editores. Hace tiempo encontré un plugin para cambiar el font, pero era muy cutre, con dos flechitas en la barra de herramientas.


(http://www.todopic.com.ar/foros/imgtiny/20r7fk3.jpg)
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 01 de Mayo de 2017, 18:06:57
Gracias. No sé que tamaño tiene mi monitor, pero no es pequeño (1920x1024px).

PD.
Ya lo he medido: 24''
Menudo pedazo de monitor que tienes.

En el mío la mayoría de las fuentes se ven bien, pero en ocasiones las amplío. En arduino con tamaño 12 es suficiente, y en Eclipse nunca he tenido problemas. Pero en ocasiones me gusta ampliar la fuente.

Un saludo.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 24 de Mayo de 2017, 13:46:51
He instalado el STMCube32MX para configurar el microcontrolador con lo mínimo.
También he añadido FreeRTOS para probar un middleware.
El proyecto que genera al final es de espanto. El proceso se parece a la instalación de un sistema operativo Linux antiguo. Igual de complejo y laborioso.
Al final hay que hacer un master para encender un led. Espero que a partir de ahí sea todo más sencillo.

Saludos.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: KILLERJC en 24 de Mayo de 2017, 13:48:35
Citar
El proyecto que genera al final es de espanto. El proceso se parece a la instalación de un sistema operativo Linux antiguo. Igual de complejo y laborioso.

Comparado con Arduino y si.
Pero es una exageracion lo de instalar un Linux
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 24 de Mayo de 2017, 13:53:49
He tenido que configurar o hacer click en unas 20 opciones de muchas más que había en el menú.
Es como elegir drivers y configuraciones de un kernel Linux  :shock:

A mí no me asustan las cosas complejas siempre que vengan poco a poco. Pero el STMCube te las lanza todas a la vez.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: elgarbe en 24 de Mayo de 2017, 13:59:12
Pero quisiste poner freertos...
Configurar un pin como salida y luego hacer el toggle en el código es cosa de 5 minutos.
Las opciones que te pueden confundir es si las hal las querés en el proyecto o como librería externa. El resto de las opciones son para preferencias a la hora de crear el proyecto, pero si elijes el IDE que usas y dejas el resto por defecto anda de una.

Si necesitas ayuda avisa, puedo hacer un pequeño vídeo para crear un proyecto e importarlo en el IDE.

Que estás usando como IDE?

Sds
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 24 de Mayo de 2017, 15:30:20
No te preocupes por el video, por ahora sobrevivo y no voy a dedicarle más tiempo.
El FreeRTOS no me ocupó mucho. Tardé más en el oscilador, GPIO, DAC, ACD, etc.

Utilizo Eclipse (System Workbench)

Si continuo con el tema, ya postearé dudas. Voy a esperar a que me llegue el ST-Link

Un saludo.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 26 de Mayo de 2017, 11:24:24
Me llegó un JLink y un STLink .
Cuando los pruebe posteo.

Saludos.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: planeta9999 en 26 de Mayo de 2017, 11:26:25

Con eso ya puedes hacer Debug. El Jlink con los ST nunca lo he probado, lo utilizo con los Kinetis.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 26 de Mayo de 2017, 12:27:46
Entonces intentaré probarlo también con el Teensy.
Pero, ahora que recuerdo, con el Teensy no se puede utilizar un programador porque las líneas están ocupadas por el chip que hace de Bootloader.
Le echaré un vistazo de todas formas.

Saludos.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 29 de Mayo de 2017, 15:27:28
He instalado System Workbench y el software de J-Link
¿Cómo se instala el plugin de J-link en Eclipse?
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: planeta9999 en 29 de Mayo de 2017, 15:32:15
.

Creo que es al revés, cuando instalas el software de SEGGER te reconoce que programas compatibles tienes instalados y te da opción a instalar los drivers para cada uno. A mi me pidió si quería instalar el Jlink para KDS, Eclipse y MPLAB.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 29 de Mayo de 2017, 17:30:23
Solo me ha reconocido el MPLAB de Microchip. El System Workbench, el Eclipse para C++ y el Eclipse para Java no los ha reconocido.

¿Hay alguna manera de añadir el plugin a mano?
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 29 de Mayo de 2017, 17:34:02
Me respondo:
Instalación: http://gnuarmeclipse.github.io/plugins/install/
Plugins: https://dl.bintray.com/gnu-mcu-eclipse/updates
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 29 de Mayo de 2017, 17:57:37
Plugin instalado.

Llevo dos días para encender un simple led en la placa y todavía no lo he conseguido. Estoy empezando a cansarme de la porquería del Eclipse. Como no empiece a funcionar ya, me voy a la línea de comandos.

Ahora le doy al RUN y me dice que no puede encontrar los binarios, que primero compile (Build) el proyecto.
Le doy al Build (Ctrl+B, Build all), se compila todo sin errores y sigue sin encontrar los binarios.  :8}

¿Hay que hacer un master para compilar un simple programa de encender un led?
¿Este es el entorno de desarrollo para STM32 sencillo?
¿Todavía hay alguien que se pregunte por qué Arduino lo está petando?

Esto es inhumano.
Echo de menos el emoji para colgarme.

Saludos.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 29 de Mayo de 2017, 18:06:18
Lo encontré:

 - Tienes que ingresar para ver archivos adjuntos -

Ya me encuentro mejor :D

Lo dejo por hoy. Saludos.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: planeta9999 en 29 de Mayo de 2017, 18:26:42
.

Yo con Jlink en Eclipse para los STM32 no te puedo ayudar, uso el ST-Link V2 de ST. Nunca me ha dado ese error de binario no encontrado.

Mira a ver que tienes configurado en Run > Run Configurations, en la pestaña del proyecto, Debug, Debug Device y Debug Interface. 

En la web de SEGGER también te explican al detalle como instalar Jlink en Eclipse, aunque relacionado con hacer Debug, no veo por ninguna parte referencias a usar Jlink parar programar el chip desde Eclipse:
https://www.segger.com/IDE_Integration_Eclipse.html

Aquí te explican al detalle como configurar Eclipse para usar Jlink.
http://gnuarmeclipse.github.io/debug/jlink/



Título: Re:Entorno de desarrollo para STM32F4
Publicado por: elgarbe en 29 de Mayo de 2017, 20:28:59
Plugin instalado.

Llevo dos días para encender un simple led en la placa y todavía no lo he conseguido. Estoy empezando a cansarme de la porquería del Eclipse. Como no empiece a funcionar ya, me voy a la línea de comandos.

Ahora le doy al RUN y me dice que no puede encontrar los binarios, que primero compile (Build) el proyecto.
Le doy al Build (Ctrl+B, Build all), se compila todo sin errores y sigue sin encontrar los binarios.  :8}

¿Hay que hacer un master para compilar un simple programa de encender un led?
¿Este es el entorno de desarrollo para STM32 sencillo?
¿Todavía hay alguien que se pregunte por qué Arduino lo está petando?

Esto es inhumano.
Echo de menos el emoji para colgarme.

Saludos.

Yo creo que cometiste cuanto error existe. Va con onda.
Mirá que simple es todo si seguis los pasos que el fabricante pide:
http://www.todopic.com.ar/foros/index.php?topic=44325.0

Vos descargaste todo por separado, luego quisiste integrarlo, luego modificaste cosas en las propiedades de proyecto, algo con el make, cosas que nunca vi en ningun otro lado  :shock:

Fijate en el post que puse, son 3 hojas y los utiles son solo 3 o 4 post creo yo. Es muy simple y esta casi todo automático.

Saludos
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: KILLERJC en 29 de Mayo de 2017, 22:34:04
Es como dice elgarbe, es instalar 2 cosas seguidas + pedir instalar nuevo software para el debug (ya dentro del eclipse) y esta funcionando. Al menos esa fue mi experiencia siempre que lo instale.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 30 de Mayo de 2017, 17:39:40
La instalación está bien hecha. Los problemas están en otro lado:

1º El proyecto tenía algún problema. He vuelto a generar uno más simple con STM32CubeMX y ha compilado sin problemas. Ya no me da el error anterior

2º Ahora el programador JLink no funciona bien. Al intentar ejecutar el proyecto Eclipse me dice que no tengo conectado el STLink:

Citar
OpenOCD child process termination. Reason: Unplugged target or STLink already in use or STLink USB driver not installed.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: elgarbe en 30 de Mayo de 2017, 20:36:31
2º Ahora el programador JLink no funciona bien. Al intentar ejecutar el proyecto Eclipse me dice que no tengo conectado el STLink:

Ten en cuenta que el JLink no es de ST. EL programador/depurador de ST es el STLink. Por lo tanto lo que estas tratando de hacer es algo que no es "normal" en el IDE de ST, el SystemWorkbench. Si bien hay plugins para eclipse, tranquilamente puedes renegar mucho para hacerlos andar.
Si te sirve de algo, la fuente de informacion o consultas del systemworkbench es el foro que está en openstm32.com

Si lo que tuvieses es una STLink, no tienes mas que hacer click aquí:

 - Tienes que ingresar para ver archivos adjuntos -

y automáticamente se te crea la configuracion del GDB y la comunicacion con la STLink. Es muy simple.

Saludos
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: elgarbe en 30 de Mayo de 2017, 20:43:07
Llevo dos días para encender un simple led en la placa y todavía no lo he conseguido. Estoy empezando a cansarme de la porquería del Eclipse. Como no empiece a funcionar ya, me voy a la línea de comandos.

Hace unas semanas estuve investigando para como hacer para obtener un makefile de un proyecto creado con CubeMX, con eso ya podrías pasar a la linea de comandos (estaba tratando de conseguir eso mismo)
Lo que encontré es esto:
https://github.com/duro80/Makefile4CubeMX

Fijate que hay una issue cerrada en la que plantié un problema:
https://github.com/duro80/Makefile4CubeMX/issues/2

Si consigues que funcione, me interesa. Podrías hacer un post con como crear el makefile con un proyecto de CubeMX.

CubeMX es muy pero muy util. Yo trabajo con dos monitores, a la derecha tengo el CubeMX con la figura del micro y sus pines, asignando y remapeando las señales que necesito y en el monitor central el Altium con el ruteo. En funcion de como me quedan mejor las pistas voy cambiando la asignacion de perifericos en el CubeMX. Cuando termino, genero el proyecto, lo importo en el SystemWorkbench y empiezo a agregar codigo.
Al principio no me gustaba, pero debo reconocer que es una herramineta excelente.

Saludos
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: elgarbe en 30 de Mayo de 2017, 20:50:27
Ok. Ya he resuelto el problema. He tenido que ejecutar Project... Index... Rebuild.
.....

Eso es de otro post. Te respondo acá.
De esta FAQ:
http://www.openstm32.org/tiki-view_faq.php?faqId=5

Extraigo esto:
Código: C
  1. Question: I got plenty of "could not be resolved" errors in a newly created/imported project
  2. Answer  These errors are sometimes reported by eclipse when it access some source file before its index was fully built. To solve this you should rebuild the index by right-clicking on the project (or any file in the project) in th eProject Explorer then selecting "Index >> Rebuild". Then, if they do not disapear automatically after a while, you may delete the errors (in the Problems view) and they should no more appear.

Igual, entiendo que con esos errores, el programa compila igual, solo que tenes un monton de cosas marcadas en rojo.

Saludos
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: elgarbe en 30 de Mayo de 2017, 21:12:14
He vuelto a instalar SystemWorkbench. Al iniciar, ha vuelto a descargar el GNU ARM Toolchain y ya está integrado.

Ahora el problema está en las librerías. He descargado el archivo stm32CubeF4 pero no sé cómo integrarlo en Eclipse.
Me dan muchos errores al compilar por falta de librerías:
Citar
Description   Resource   Path   Location   Type
Field '__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1)' could not be resolved   main.c   /Project0/Src   line 176   Semantic Error

Un saludo.

Esto tambien es del otro post.

Las librerías HAL que estan en el stm32CubeF4 no debes descargarlas e integrarlas por tu cuenta. Es todo automático. Quizás el problema sea ese, estas acostumbrado a hacer todo a mano y cuando te encuentras con algo que es automático lo rompes sin querer metiendo mano.

Te explico, si lo que querés es arrancar un proyecto de 0 en el system workbench para stm32 y que incluya las HAL entras al SW, creas un workspace nuevo, en una carpeta vacía. Luego vas a File-> New -> C project, en la ventana que aparece pones el nombre y eliges AC6 STM32 MCU Project en el tipo de proyecto, luego Next, otra vez next, En la siguiente pantalla debes elegir la MCU o la placa que estas usando. Si es una placa propia, eliges create a new custom board y en la nueva ventanita podrás poner de que modo vas a programar/depurar el micro. Finalmente en la ultima ventana tiene que elegir si queres que el proyecto tenga o no las HAL. Si eliges que si, entonces automáticamente el SW verifica si ya tienes las ultimas Cube instaladas, si no las tienes, eliges download target firmware y listo, solito se instala y configura todo.
En esta ultima ventana hay algo interesante. Puede elegir que las HAL se inserten en tu proyecto y se compilen junto a tu proyecto o que se  agreguen al workspace como una librería estática externa. La ventaja de esta ultima opcion es que si tienes muchos proyectos con la misma placa, si lasHAL son externas, solo se compilan una vez para todos los proyectos y no ocupan lugar en el proyecto. Si eliges que se copien en cada proyecto, pues cada proyecto pesará varios mega bytes en el disco rigido.

Si lo que quieres es traer un proyecto del CubeMX, entonces es en el CubeMX donde debes tener las HAL instaladas. Por supuesto, esa instalacion es automática tambien.

Espero aclare un poco el panorama.

Saludos!
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: elgarbe en 30 de Mayo de 2017, 21:17:29
Llevo dos días para encender un simple led en la placa y todavía no lo he conseguido. Estoy empezando a cansarme de la porquería del Eclipse. Como no empiece a funcionar ya, me voy a la línea de comandos.

Hace unas semanas estuve investigando para como hacer para obtener un makefile de un proyecto creado con CubeMX, con eso ya podrías pasar a la linea de comandos (estaba tratando de conseguir eso mismo)
Lo que encontré es esto:
https://github.com/duro80/Makefile4CubeMX

Fijate que hay una issue cerrada en la que plantié un problema:
https://github.com/duro80/Makefile4CubeMX/issues/2

Si consigues que funcione, me interesa. Podrías hacer un post con como crear el makefile con un proyecto de CubeMX.

CubeMX es muy pero muy util. Yo trabajo con dos monitores, a la derecha tengo el CubeMX con la figura del micro y sus pines, asignando y remapeando las señales que necesito y en el monitor central el Altium con el ruteo. En funcion de como me quedan mejor las pistas voy cambiando la asignacion de perifericos en el CubeMX. Cuando termino, genero el proyecto, lo importo en el SystemWorkbench y empiezo a agregar codigo.
Al principio no me gustaba, pero debo reconocer que es una herramineta excelente.

Saludos

A partir de la version 4.21.0 ya se puede generar un makefile con el CubeMX.

Saludos!
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 31 de Mayo de 2017, 04:18:06
Gracias por las respuestas. Tomo nota de todo.

1. Voy a seguir intentando poner en marcha Eclipse con JLink
2. Compraré una placa de ST con STLink para empezar con algo estandar sin tantos problemas.
3. Una vez que Eclipse funcione intentaré utilizar los makefiles.

Es verdad que me siento más cómodo gestionando las cosas a mano. Eso de que las máquinas y ordenadores hagan las cosas en automático no suele funcionar bien. Ni siquiera con el cambio de marchas de los automóviles. Funciona de forma ideal, pero te quita libertad y al final conduzco mejor con mi antiguo cambio de marchas manual.

Un saludo.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: planeta9999 en 31 de Mayo de 2017, 04:43:28
.

Yo no me complicaría la vida, usa ST-Link V2 con Eclipse para ST y te funcionará a la perfección. Ten en cuenta que Jlink tiene muchas limitaciones, a menos que te gastes un pastizal en la versión PRO o uses un clon (y no lo actualices o te lo cargarás).

Jlink solo lo tengo para los Kinetis con KDS, MCUXpresso y también lo puedo usar con los ARM de Atmel, aunque para eso prefiero el Atmel IDC.

Jlink para ST con Eclipse, creo que está documentado para Debug con GDB, pero no he visto como configurarlo para poder programar desde Eclipse. Siempre podrías configurar una llamada a un programa externo, y ejecutar el JFlash Lite, pero es mucho más cómodo que se programe y ejecute desde Eclipse pulsando el icono "Run".

Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 31 de Mayo de 2017, 17:40:53
Ya he conseguido grabar el *.hex en el microcontrolador con la utilidad J-Flash Lite de Segger.
No he conseguido integrar el J-Link en System Workbench y no pienso perder más tiempo en ello. Ya he comprado un ST-Link y es lo único que pienso utilizar.

El problema ahora es que no sé que instrucciones usar para encender un led en PC10 (digitalWrite) y para esperar un segundo (delay).

Espero que todo esto merezca la pena. Con Arduino ha sido infinítamente más sencillo empezar con Teensy. En un minuto hice el programa de parpadeo y a los pocos días estaba programando las HAL y en ensamblador.
Con STM32 la curva de aprendizaje es bastante más pronunciada.

Saludos.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 31 de Mayo de 2017, 17:48:24
He intentado esto y no funciona:

Código: C
  1. /* Infinite loop */
  2.   /* USER CODE BEGIN WHILE */
  3.   while (1)
  4.   {
  5.   /* USER CODE END WHILE */
  6.  
  7.   /* USER CODE BEGIN 3 */
  8.     HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_10); //Toggle the state of pin PC10
  9.     HAL_Delay(500); //delay 500ms
  10.   }
  11.   /* USER CODE END 3 */

El resto del código está creado de forma automática por STM32CubeMX para un STM32F407VET6
Estoy a punto de tirar la placa a la basura.

¿Algún alma caritativa que me ayude a salir del pozo?

Un saludo.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: elgarbe en 31 de Mayo de 2017, 18:20:21
Que significa no funciona?
Compila y se graba en el micro pero no corre?
Probaste de resetear el micro despues de grabar? porque interfaz y con que programa grabaste el .hex?

publicaá el main.c completo, por favor.

saludos
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: planeta9999 en 31 de Mayo de 2017, 18:43:46
.

A ver como has configurado el puerto en CubeMX.


Esta es una configuración en uno de mis programas, controlando varios led, un laser, un acelerómetro, un módulo de radio a 2.4Ghz, leyendo botones, todo funcionó perfectamente a la primera. Recomendable poner etiquetas a los puertos, el programa se hace mucho más legible.

Programa de test básico.

Código: [Seleccionar]
#define B2_CERRADO HAL_GPIO_ReadPin(BOTON2_GPIO_Port, BOTON2_Pin) == GPIO_PIN_SET
#define APAGA_LASER HAL_GPIO_WritePin(LASER_GPIO_Port, LASER_Pin, GPIO_PIN_RESET);
#define ENCIENDE_LASER HAL_GPIO_WritePin(LASER_GPIO_Port, LASER_Pin, GPIO_PIN_SET);
#define CAMBIA_ESTADO_LASER HAL_GPIO_TogglePin(LASER_GPIO_Port, LASER_Pin);
#define ENCIENDE_LED1_ROJO HAL_GPIO_WritePin(LED1_ROJO_GPIO_Port, LED1_ROJO_Pin, GPIO_PIN_RESET);
#define APAGA_LED1_ROJO HAL_GPIO_WritePin(LED1_ROJO_GPIO_Port, LED1_ROJO_Pin, GPIO_PIN_SET);
#define CAMBIA_ESTADO_LED1_ROJO HAL_GPIO_TogglePin(LED1_ROJO_GPIO_Port, LED1_ROJO_Pin);

//****** DEBUG ************
 while (1)
  {

// DEBUG ---
if (B2_CERRADO) {
                           ENCIENDE_LED1_ROJO
           ENCIENDE_LASER
           HAL_Delay(100); //delay 200ms
                 } else {
                                  APAGA_LED1_ROJO
                  APAGA_LASER
                        }
leo_sensores(); // Leo acelerometro, giroscopo, magnetometro
  }
//**********************************


(http://i1322.photobucket.com/albums/u573/planeta9999/ScreenHunter_005_zpsdwpg9iwh.jpg)



Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 01 de Junio de 2017, 10:07:53
Solo he configurado el reloj (con oscilador interno para no tener problemas) y dos puertos de salida (dos led).

 - Tienes que ingresar para ver archivos adjuntos -

 - Tienes que ingresar para ver archivos adjuntos -

 - Tienes que ingresar para ver archivos adjuntos -

Un saludo.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 01 de Junio de 2017, 12:35:41
El compilador con Eclipse me genera un fichero *.bin dentro del directorio Debug, que es el que estoy grabando en el micro.
Quizás el formato no sea el adecuado. ¿No debería generar un *.hex?

Saludos.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: elgarbe en 01 de Junio de 2017, 13:06:09
arm-none-eabi-gcc tengo entendido que genera un elf con la configuracion que viene por defecto en el systemworkbench

Luego:
arm-none-eabi-objcopy -O ihex xxxx.elf xxx.hex
para producir el hex.

tambien podes agregar al post build esto:

'arm-non-eabi-objcopy -0 ihex ${BuildArtifactFileName}${BuildArtifactFileBaseName}.hex'

no lo prové en system workbench por que en mi caso le doy al bichito verde (debug) y solo se compila y graba.

Saludos
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: KILLERJC en 01 de Junio de 2017, 13:09:34
Si lo quieres en .hex si... Pero el .bin te serviria tambien.. El .bin es parecido al .hex nomas que es directo y no posee ninguna "codificacion/checksum"
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 01 de Junio de 2017, 13:14:57
Pero eso es muy complejo y el bin grabado con J-Link no funciona.
Me voy a esperar a que me llegue el ST-Link y si funciona bien, tiro el JLink a la basura (junk-box).

Saludos.

Título: Re:Entorno de desarrollo para STM32F4
Publicado por: elgarbe en 01 de Junio de 2017, 14:52:53
Con la ST-LInk no tenes que hacer nada, solo la conectas a los pines SWD de la placa tuya y listo. Cuando le das a debug, se compila, graba en el micro y arranaca en modo debug.

Tenes identificado los pines del SWD en la placa tuya?

sds.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 01 de Junio de 2017, 15:06:45
No. Sólo tengo los pines PD14, PA6, etc.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: elgarbe en 01 de Junio de 2017, 15:29:13
En el CubeMX, en el panel de perifèricos en RCC creo, tenes que habilitar el debug por SWD y entonces se te van a marcar los pines que pertenecen al SWD. Esos pines son los que vas a conectar al STLink.
La otra opcion es con cable JTAG, pero eso nunca lo probe. Yo soy fiel a "lo que funciona no se cambia" y como a mí el SWD me funcionó siempre a la perfeccion, pues en mis placa es lo que uso.

La placa tuya de ST no tiene un conector en algun rincon que diga SWD?

sds.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 01 de Junio de 2017, 16:20:39
No. Solo tiene el conector JLink.

http://www.ebay.com/itm/142124645773

Gracias. Cuando me llegue el programador estudiaré los pines.

Saludos.


Título: Re:Entorno de desarrollo para STM32F4
Publicado por: elgarbe en 01 de Junio de 2017, 16:28:25
Me resisto a buscar que pines son los del JLink, pero me animo a decirte que entre ellos estan los del SWD.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: planeta9999 en 02 de Junio de 2017, 03:58:10
.

Los pines del SWD los tienes en el datasheet del micro, además en esa placa tienes un hermoso conector que tiene toda la pinta de ser un JTAG (2x10 pines), ¿ no te han dado ninguna documentación de la placa ?.  Te están dando un cable Dupont que puedes usar para conectar al programador.

SWDIO ---> PA13
SWCLK ---> PA14
RESET ----> NRST (pin14 en un TQFP100)
GND
+3.3v


Te has complicado la vida de mala manera, una Discovery lo lleva todo, programador integrado incluido, se conecta por USB y lo puedes programar y debugear sin problemas. Tratar de usar un Jlink para programar/debugear un STM32 también son ganas de hacerlo difícil.


PF: confirmado, en la imagen de la serigrafía de tu placa, pone JTAG en el conector de 2x10. El STLink también tiene JTAG y te lo dan con el correspondiente cable plano, probablemente lo puedas conectar directamente. Yo en mis placas, solo pongo un conector de 5 pines para programar por SWD, y conecto al STLink con un cable hecho a medida. También puedes usar el modo BOOT para cargar firmware, pero sin debug.

Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 02 de Junio de 2017, 10:36:39
Gracias.
Ha sido un error de principiante. A partir de ahora utilizaré el STLink para cualquier STM32.

Saludos.
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: elgarbe en 04 de Junio de 2017, 18:29:55
Esto seguro te va a interesar Picuino...

http://www.carminenoviello.com/2014/12/28/setting-gcceclipse-toolchain-stm32nucleo-part-1/

sds
Título: Re:Entorno de desarrollo para STM32F4
Publicado por: Picuino en 05 de Junio de 2017, 16:46:06
Muy bueno. El System Workbench te da todo eso ya integrado, pero hacerlo a mano tiene la ventaja de darte más control y conocimientos.

Estoy añadiendo al primer mensaje de este post todo lo que recopilo. Voy a añadir este enlace.

Saludos.