Cadenas de herramientas para STM32CubeMX IDE: ¿entre qué elegir?

Acabo de instalar el STM32CubeMX (el IDE ARM original de ST Microelectronics, si entiendo bien). Una vez instalado, intenté abrir un nuevo proyecto para un kit DISCOVERY que tengo (STM32F0DISCOVERY).

ingrese la descripción de la imagen aquí

Sin embargo, después de continuar, Open projectme enfrenté a una demanda para instalar una cadena de herramientas:

ingrese la descripción de la imagen aquí

Como revelé, EWARM es un IDE totalmente funcional de IAR, por lo que me sorprendió que el IDE de STM requiera el IDE de IAR para su trabajo (además, EWARM de IAR no es un software gratuito, es un software muy costoso que yo sepa).

En la ventana de configuración del proyecto hay tres opciones:

ingrese la descripción de la imagen aquí

  • EWARM de IAR,

  • MDK-ARM de Keil y

  • TrueSTUDIO de Atollic.

Todos son muy caros :(

Entonces las preguntas son:

  1. ¿Es correcto que el STM32CubeMX de STM no me brinde ninguna funcionalidad de forma gratuita?

  2. Según entiendo del mensaje, el proyecto se puede asociar con otra cadena de herramientas, así que ¿puedo echar un vistazo a GCC o cualquier cadena de herramientas a un precio más razonable (por supuesto, prefiero el software libre)?

  3. En caso afirmativo: ¿cómo puedo usar GCC con Cube?

Puede usar gcc con cualquier IDE flexible de su elección.
@ChrisStratton, ¿cómo puedo usar GCC? Solo veo las cadenas de herramientas de IAR, Keil y Atollic en la selección. Todos son caros :(
Tendría que instalarlo usted mismo y personalizar el IDE para controlarlo directamente o mediante una compilación de Makefile o algún otro controlador de compilación. Es bastante factible en general (aunque quién sabe acerca de su IDE en particular), pero usted está solo con los detalles. En otras palabras, puedes pagar o puedes aprender. Elijo este último porque es más barato para proyectos personales y porque se adapta de manera más flexible a las prácticas de desarrollo de software organizacionales existentes o deseadas para los profesionales.
¡Gracias, @Chris! Entonces, ¿por qué necesito Cube en absoluto? ¿Solo como un editor de texto?
No lo necesitas. Parece divertido qué pin hace qué funciones, pero debe sopesar eso con el cambio de herramientas/prácticas cada vez que cambia de proveedor de chips.
Le recomiendo encarecidamente que se mantenga alejado de Cube/HAL. Tiene incluso más errores que SPL. Use los ejemplos de cube para comenzar y cambie a libopencm3 más tarde.
¿Ha considerado usar Eclipse con gcc (según la respuesta de Chris Sutton)?
Cubo como un 'IDE'? En realidad, según la documentación, Cube es solo una herramienta para generar código básico y 'repetitivo' como configurar el oscilador, establecer la dirección del puerto, etc. y no un IDE completo como EWARM o Eclipse. Entonces, de esa manera, Cube 'requiere' otros IDE no es el caso. Probablemente solo esté personalizando el código generado automáticamente para adaptarse a estos IDE reales. Tendremos que revisar la documentación...

Respuestas (4)

Para un IDE que ofrece algunas funciones como Cube, puedo sugerir que vale la pena probar Coocox . Es gratis, está basado en Eclipse y es compatible con algunas de las placas STM listas para usar.

Según tengo entendido, CubeMX es solo un generador de código que escribirá su código (dentro de esa carpeta que le da) donde se lleva a cabo toda la inicialización periférica. Todo el resto del desarrollo tiene que tener lugar en un IDE normal.


Actualizar:

Recientemente se anunció que Atollic Truestudio ahora se ofrece de forma gratuita para los usuarios de STM32.

Supongo que eso dará acceso a un IDE y una cadena de herramientas de gama alta a un público más amplio. No lo he usado, por lo que no puedo comentar sobre sus características, pero el análisis de fallas integrado en el depurador podría ser útil, por ejemplo.

Sé que es una publicación antigua, pero esto podría ayudar a otros...

No confunda la cadena de herramientas con IDE. Puede considerar que el IDE es el último eslabón de la cadena de herramientas, pero una cadena de herramientas no implica necesariamente un IDE . Eclipse es un IDE que se conecta a muchas cadenas de herramientas diferentes. En mi caso (ARM gcc build [enlazador, compilador, ensamblador, etc.] + automake) es mi cadena de herramientas.

No uso un IDE. Tomo el código fuente generado de CubeMX y escribo makefiles para compilarlo de la forma que yo elija. La opción de cadena de herramientas en mis opciones de CubeMX es TrueStudio porque esa opción genera un buen script de enlace que puedo cambiar fácilmente. Esto, a pesar de que no uso (ni pretendo usar) TrueStudio.

Si quieres usar gcc, genial. Pero la selección de IDE es en gran medida una elección independiente, a menos que el IDE que haya elegido le imponga algún otro compilador. Si realmente desea un IDE (en mi opinión, se interponen más que ayuda), es posible que deba elegir uno que coincida con automake (Makefiles) o gcc directamente. Eclipse es el único que conozco.

Algunos compiladores tienen diferentes convenciones para manejar construcciones a nivel de preprocesador (macros, pragmas, condicionales, etc...) pero el código fuente real no variará mucho.

Probaría la cadena de herramientas de Leaflabs que usan para su hardware Maple . El Maple es una placa de estilo Arduino que ejecuta un procesador STM32 Cortex M3. Entregan la cadena de herramientas con el IDE y el IDE ejecuta Windows, por lo que la cadena de herramientas puede funcionar para su situación. No hay garantías, por supuesto.

En traducción, el entorno Maple viene con binarios de Windows para un gcc de brazo desnudo, al igual que el entorno Arduino viene con binarios para avr-gcc.
Sí. Eso es practicamente todo.

Todas las herramientas tienen una versión restringida, pero gratuita....

A pesar de que estoy en el mismo lugar que usted, uso GUN/Linux, desafortunadamente todas las herramientas anteriores se ejecutan en WinOS.

Después de buscar un poco, encontré una solución. Probaré pronto detenidamente, pero antes de compartir la solución: Lea la entrada del blog de Baoshi . Tiene una descripción y un Makefilegenerador de archivos.

Alguna adición: con el Cube más nuevo, necesito piratear porque Cube no genera el *.ldarchivo correcto para F0, así que copié de otras herramientas *.ldpara el mismo objetivo. Tal vez sea una pregunta relacionada con Linux.

Bienvenido a EE.SE. Agregue parte de la información del enlace a esta respuesta. Se desaconsejan las respuestas de solo enlace, ya que es posible que el enlace no esté disponible en una fecha posterior.