IDE de software STM32 [cerrado]

Después de una experiencia de dos años con SAM mcu de ATMEL, decidí pasar a los microcontroladores STM32. Elegí comenzar con STM32F410RB. Después de mucha búsqueda en Internet, encontré dos IDE gratuitos, Atollic TrueSTUDIO y SW4STM32. Los he instalado y no veo ninguna diferencia entre ellos. También instalé la extensión CubeMX para la generación de código para controladores periféricos de hardware, creo que corresponde al ASF de ATMEL. En este punto tengo dos preguntas.

  1. ¿Cuál es la principal diferencia entre los dos IDE anteriores que aún no noté?
  2. ¿Cómo puedo habilitar la función de autocompletar mientras escribo? AtmelStudio hace esto y es extremadamente útil, pero en TrueSTUDIO y SW4STM32 necesito presionar Ctrl+espacio cada vez para activar esta función y es un poco molesto.

Respuestas (2)

eh, nunca he oído hablar de estos dos. En general, no necesita un IDE específico para el fabricante de su chip: son solo microcontroladores ARM y, siempre que su IDE no esté restringido a un fabricante específico (probablemente AtmelStudio), funcionarán con cualquier MCU que sea un BRAZO.

Ahora, por supuesto, las versiones de fabricante de los IDE vienen con herramientas para generar código de inicialización, hacer cosas como estimar el uso de energía, etc., pero también puede encontrar estas características en diversos grados en los grandes IDE integrados.

En realidad, hay bastantes opciones aquí. Soy un poco de la vieja escuela, y hago mi programación en el editor de texto del sistema operativo de mi elección, construyo y flasheo imágenes con Makefiles y ejecuto GDB a mano para la depuración, pero reconozco que ese no es necesariamente el camino a seguir para proyectos más grandes.

Entonces, los grandes competidores aquí son

  • Keil (keil puede, iirc, incluso usarse gratis para STM32)
  • Taller IAR
  • El propio DS-5 de ARM

y muchas herramientas gratuitas, y creo que valdría la pena mencionar

  • Código
  • UCM en Eclipse

Yo elegiría Eclipse, si alguna vez lo has usado antes. Hay buenos tutoriales de instalación y tiene todas las funciones de autocompletado, inspección de tipos y depuración que ya vienen con él. Eclipse es una plataforma IDE muy "poderosa" y se usa ampliamente para muchos objetivos diferentes, ya sea desarrollo de Java, C ++ para servidores, PHP para sitios web o C para microcontroladores. Es muy modular, por lo que obtienes un editor bastante maduro con herramientas de código muy buenas y una buena integración con el depurador, etc. Esta configuración particular basada en Eclipse también viene con plantillas de proyecto STM32, IIRC.

Básicamente, puede usar cualquier IDE que admita GCC / GDB como compilador: el paquete GCC gratuito (como en Speech y Beer, y ambos son buenos siendo gratuitos) es prácticamente el compilador "nativo" para la arquitectura ARM. Solo tendrá que configurar su IDE favorito para usar arm-none-eabi-gcc / -gdb en lugar del binario GCC y GDB predeterminado de su host :)

TrueStudio y SW4STM32 son solo Eclipse + GCC/GDB con un instalador de Windows. Probablemente sea por eso que el OP no puede notar la diferencia.
aaaah ahora veo. Así que básicamente también estoy sugiriendo lo mismo :)
Sin embargo, estoy de acuerdo en que rodar tu propia configuración es mejor. TrueStudio tiene bastantes errores y es lento. Bueno para hacer cosas de helloworld cuando estás aprendiendo, pero rápidamente se vuelve frustrante.

En general, recomendaría SW4 (OpenSTM32).

  1. Fácil importación desde CubeMx. Personalmente, no uso HAL (por lo general, solo programación de registros desnudos), pero cuando creo el proyecto Cube, obtengo los archivos CMSIS más actualizados para mi uC.
  2. Funciona muy bien. He realizado muchos proyectos grandes usando el complemento Eclipse +, sin ningún problema.
  3. Es gratis y tiene una gran comunidad de usuarios.
  4. Tiene el apoyo oficial de STM.

Por supuesto, puede hacer su propia configuración de bricolaje. Si necesita la cadena de herramientas más nueva, recomendaría la cadena de herramientas BleedingEdge de Freddy (pero tendrá que compilar gcc, bibliotecas y herramientas).

+1 por no usar bibliotecas HAL, pero ¿quién puede usar los archivos generados por Cube Mx sin bibliotecas HAL? (el proyecto creado por MX ya obliga a usar sus rutinas de servicio de interrupción y funciones de inicialización)
¿Por qué no usar bibliotecas HAL? No he encontrado ninguna otra biblioteca para controladores de bajo nivel.
1. CubeMx genera dependencias HAL pero se puede eliminar fácilmente (solo un par de clics). De hecho, uso HAL modificado solo para USB y Ethernet. Todos los demás periféricos - es demasiado pesado. 2. Qué otra biblioteca: no necesita ninguna biblioteca para el 90% de los proyectos. STM32 es muy fácil de programar usando solo los registros de hardware (más fácil que aprender megaestructuras y funciones de HAL)