Autor Tema: Entorno de desarrollo para STM32F4  (Leído 14894 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Entorno de desarrollo para STM32F4
« 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
* How to install the System Workbench for STM32 in Eclipse
* Plugin System Workbench STM32 AC6 para Eclipse+GCC
* System Workbech y mis comienzos con ST
* OpenSTM32 Community 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


IDEs:
* System Workbench for STM32, Free IDE for Win, OS X, Linux. Based on Eclipse
   Descarga directa: install_sw4stm32_win_32bits-latest.exe
   Descarga directa: install_sw4stm64_win_32bits-latest.exe
* Eclipse IDE for C/C++ Developers
   Setting Eclipse + GCC toolchain with STM32 nucleo
 

Configurador:
* STM32CubeMX: initialization code generator
* STSW-STM32095: STM32CubeMX Eclipse plug in for STM32 configuration


Librerias:
* STM32CubeF4: 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 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)
Plugin para Eclipse: http://gnuarmeclipse.github.io/plugins/install/
Plugins: https://dl.bintray.com/gnu-mcu-eclipse/updates
« Última modificación: 05 de Junio de 2017, 16:47:25 por Picuino »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Entorno de desarrollo para STM32F4
« Respuesta #1 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.

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:Entorno de desarrollo para STM32F4
« Respuesta #2 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.
« Última modificación: 01 de Mayo de 2017, 11:26:41 por planeta9999 »

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Entorno de desarrollo para STM32F4
« Respuesta #3 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?
« Última modificación: 24 de Mayo de 2017, 12:22:20 por Picuino, Razón: Sintaxis »

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:Entorno de desarrollo para STM32F4
« Respuesta #4 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


« Última modificación: 01 de Mayo de 2017, 12:12:33 por planeta9999 »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Entorno de desarrollo para STM32F4
« Respuesta #5 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:


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



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.
 

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Entorno de desarrollo para STM32F4
« Respuesta #6 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.

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:Entorno de desarrollo para STM32F4
« Respuesta #7 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.







« Última modificación: 01 de Mayo de 2017, 13:34:13 por planeta9999 »

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:Entorno de desarrollo para STM32F4
« Respuesta #8 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)



Desconectado elgarbe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2178
Re:Entorno de desarrollo para STM32F4
« Respuesta #9 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
-
Leonardo Garberoglio

Desconectado elgarbe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2178
Re:Entorno de desarrollo para STM32F4
« Respuesta #10 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!
-
Leonardo Garberoglio

Desconectado elgarbe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2178
Re:Entorno de desarrollo para STM32F4
« Respuesta #11 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
-
Leonardo Garberoglio

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Entorno de desarrollo para STM32F4
« Respuesta #12 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.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Entorno de desarrollo para STM32F4
« Respuesta #13 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.

Desconectado elgarbe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2178
Re:Entorno de desarrollo para STM32F4
« Respuesta #14 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
-
Leonardo Garberoglio


 

anything