PlatformIO y Visual Studio se apoderan del mundo

En una publicación reciente, hablé sobre el uso del módulo STM32 "Blue Pill" con el IDE de Arduino. Realmente no me gusta el IDE de Arduino, pero admito que es simplemente utilizable, lo que lo hace bueno para cosas simples.

No soy un gran admirador de los entornos de desarrollo integrados (IDE) en general. He usado muchos de ellos, especialmente cuando están fuertemente unidos a la herramienta que estoy tratando de usar en ese momento. Pero cuando no hago nada especial, tiendo a escribir mi código en Emacs. Pensando en ello, creo que no me importa mucho el IDE si tiene herramientas que realmente me ayudan. Pero si es solo un editor de texto y lanza algunos comandos, puedo hacerlo desde Emacs u otro de mi elección. Las posibilidades de que su IDE favorito tenga tanta capacidad de edición y personalización como Emacs son casi nulas. Incluso si no le gusta Emacs, ¿por qué aprender a usar otro editor si no hay una clara ventaja?

Hay formas, por supuesto, de usar otras herramientas con Arduino y otros marcos y decidí echarles un vistazo. Después de todo, ¿qué tan difícil es construir código Arduino? Si desea ir directamente al título, puede ver el video a continuación.

Resultados ...

Resulta que Arduino IDE hace mucho más que proporcionar un editor simple y lanzar algunas herramientas de línea de comandos. También gestiona un proceso de construcción muy complicado. El proceso de compilación combina muchos de sus archivos, agrega títulos de acuerdo con lo que piensa y generalmente compila un archivo grande, a menos que haya insertado explícitamente archivos .cpp o .c en su compilación.

Esto significa que simplemente copiar su código Arduino normal (odio decir boceto) no le brinda nada que pueda construir con un compilador normal. Aunque existen muchas soluciones basadas en archivos, también existe una herramienta llamada PlatformIO, que afirma ser una solución de propósito general para construir en muchas plataformas integradas, incluido Arduino.

Acerca de PlatformIO

Aunque PlatformIO afirma ser un IDE, realmente es un complemento para el editor Atom de código abierto. Sin embargo, también tiene complementos para muchos otros IDE. Curiosamente, incluso es compatible con Emacs. Sé que no a todo el mundo le gustan las emas, así que decidí explorar otras opciones. Tampoco estoy hablando de VIM.

Terminé experimentando con dos IDE: Atom y Microsoft Visual Studio Code. Dado que PlatformIO tiene una vista previa de su versión 2.0, decidí intentarlo. Puede que le sorprenda que utilice la herramienta de codificación de Microsoft. Sorprendentemente, se ejecuta en Linux y admite muchas cosas con complementos, incluido un módulo Arduino y, por supuesto, PlatformIO. Incluso está disponible como fuente con una licencia del MIT. Los dos editores en realidad se parecen mucho, como puede ver.

PlatformIO admite una cantidad asombrosa de placas, desde Arduino hasta ESP82666, pasando por placas mBed y Raspberry Pi. También es compatible con diferentes marcos e IDE. Si te pareces a mí y simplemente te gusta estar en la línea de comando, puedes usar PlatformIO Core, que es una línea de comando.

De hecho, esa es una de las cosas que primero se da cuenta de PlatformIO de que no puede decidir si es una herramienta GUI o una herramienta de línea de comandos. Sospecho que algo de eso también está en la elección del IDE. Por ejemplo, con Code, debe iniciar la herramienta de inicialización de proyección en el aviso de shell. De acuerdo, puede abrir un shell dentro de Code, pero sigue siendo una línea de comando. Incluso en PlatformIO IDE (en realidad, Atom), cambiar el marco Arduino Blue Pill a mBed requiere abrir un archivo INI y cambiarlo. La configuración de la ruta de carga para FRDM-KL46 requirió el mismo tipo de cambio.

¿Es fácil?

No me malinterpretes. Personalmente, no me importa editar un archivo o emitir un comando de solicitud. Sin embargo, parece que esta herramienta atraerá principalmente a cualquiera que lo haga. Me gusta que existan las herramientas de línea de comandos. Pero parece extraño cuando se realizan algunos cambios en la GUI y otros se realizan desde la línea de comandos.

Eso es reparable, por supuesto. Sin embargo, tengo otra queja de la que me siento mal por expresarme porque no tengo una mejor solución. PlatformIO hace demasiado. Teóricamente esa es la fuerza de la misma. Puedo escribir mi código y no me importa cómo se escriben las bibliotecas mBed o cómo las herramientas Arduino ensamblan mi código fuente. Ni siquiera tengo que configurar una cadena de herramientas porque PlatformIO descarga todo lo que necesito la primera vez que lo uso.

Cuando eso funciona, es realmente genial. El problema es cuando no. Por ejemplo, en la versión anterior de PlatformIO, tuve problemas con las bibliotecas mBed que se estaban construyendo para otro propósito. Busqué y encontré la cosa, pero no fue fácil. Si tuviera que construir la cadena de herramientas y controlar el proceso, sabría mejor cómo resolver problemas.

También al final tendrás que resolver problemas. PlatformIO tiene como objetivo mover objetivos. Siempre que el IDE de Arduino o los marcos de mBed o cualquier otra cosa cambie, hay muchas posibilidades de que se rompa algo. Cuando esté listo, tendrá que trabajar para solucionarlo hasta que los desarrolladores lo solucionen por usted. Si puede hacer eso, es un costo en el tiempo. Pero sospecho que las personas que estarán más interesadas en PlatformIO serán menos capaces de solucionarlo cuando se averíe.

Línea de fondo

Si desea experimentar con otra forma de crear programas y, lo que es más importante, una única forma de crear y construir, debe recurrir a PlatformIO. Cuando trabaja, trabaja bien. Aquí hay algunos enlaces para comenzar:

  • PlatformIO IDE (requiere Atom)
  • PlatformIO Core (no es necesario si está instalando un paquete IDE)
  • Visual Studio Code (instale PlatformIO desde el IDE)
  • En última instancia, cuando funciona, funciona muy bien. Cuando no es así, es doloroso. Lo usas? Es conveniente, no hay duda al respecto. La integración con Code es mínima. La integración de Atom, aunque no es perfecta, es mucho más perfecta. Sin embargo, si está aprendiendo a utilizar las herramientas de la línea de comandos, poco importa. Usa cualquier editor que te guste, y eso me gusta. Si lo usa, solo espere que no se rompa y que tenga un plan de respaldo si lo hace.

    • Mik dice:

      Errores tipográficos: "las bibliotecas mBed están escritas"

      ¡Gracias por el artículo!

      • Al Williams dice:

        Suena como ... arreglado 😉

    • Tucson Tom dice:

      Como defensor del uso de make plus, su editor favorito para el desarrollo de STM, creo que omito un tema importante. A saber, bibliotecas. Principalmente he desarrollado bare metal, que es muy divertido y hace flotar mi barco. Pero, ¿qué pasa con alguien que no quiere escribir todos sus propios controladores? Así que estoy empezando a pensar en formas de aprovechar las bibliotecas que podrían incluirse con los desarrolladores específicos de STM (llámelos IDE, si lo desea). De qué hablar.

      • Luke Weston dice:

        Al menos en lo que respecta a Arduino, sería bueno tener una cadena (Makefile, bash scripts, lo que sea) que pueda construir y cargar su código en el microcontrolador de línea de comandos, con cualquier elección de editor que haga flotar su barco.

        En cuanto a las bibliotecas, espero que sea simplemente una cuestión de proporcionar a ese constructor una ruta al directorio en el que están almacenadas sus bibliotecas.

      • zakqwy dice:

        He estado usando libopencm3 durante aproximadamente un año y en el exterior, y durante el último mes profesionalmente. Tiene sus limitaciones (sobre todo cuando se utilizan chips menos compatibles, como el STM32L0), pero ha demostrado ser bastante eficiente y capaz. ¿Le diste una oportunidad?

        • Tucson Tom dice:

          Sí señor, es bastante fácil proporcionar un camino a las bibliotecas. ¡Pero debes tener algunas bibliotecas!

          Gracias por el consejo sobre libopencm3, ¡eso es exactamente lo que estoy buscando! Quiero decir, me gusta escribir controladores de dispositivos más que casi cualquier otra cosa, pero estoy tratando de que un amigo comience a jugar en dispositivos STM32 y no quiero que lo comience a hacer completamente bare metal. Aparte de eso, incluso a veces me da pereza y considero usar algún controlador.

          • Al Williams dice:

            Una cosa que no me gustó de libopencm3 (y esto puede ser mi ignorancia) es la documentación de algunas cosas (como la serie) que no aparecieron en el lugar correcto. Por lo tanto, debe buscar el documento en cualquier procesador que no utilice y que lo proporcione. El código se ve bien, sin embargo, simplemente no me gustaron los documentos.

            Sé que es controvertido, pero no estoy muy descontento con las bibliotecas STM32CubeMX. Está un poco hinchado, pero no tan mal y todo coincide con votaciones, interrupciones o DMA. El generador de código coincide con Eclipse y es bueno configurar todo (excepto donde produce errores). Probablemente debería publicar sobre eso en algún momento en el futuro cercano.

            • halherta dice:

              mBed es más fácil de usar que STM32Cube / HAL. La API de mBed también es muy flexible y en mi mente está mucho mejor estructurada que la API de arduino. Pero es la API más cara que he usado (50 KB de tamaño binario para una luz intermitente que envía un mensaje a una serie cada segundo), especialmente cuando estás usando mbed OS 5 y una tableta compatible recientemente. En muchos sentidos, la debilidad de mBed es similar a la de una plataforma. Intenta admitir demasiados tableros e intenta ocultar muchas de las complicaciones de cada periférico externo y crear un diseño del usuario. Por lo tanto, se necesitarán muchos problemas cuando encuentre un error / problema

            • Al Williams dice:

              @halherta ... Bueno, en realidad me gusta mBed para algunas cosas. Pero la exportación a IDE casi nunca es adecuada para mí. Siempre termino con un gran dolor de cabeza al sacarlo del IDE de Internet. Una cosa que me gustó de PlatformIO es que configurará con éxito un proyecto mBed sin conexión para mí, así que +1 para eso. Sin embargo, tuve problemas cuando necesitaba una versión anterior de la biblioteca mbed. El comentario de Ivan (a continuación) puede ser una respuesta a eso, así que tal vez lo intente de nuevo.

            • halherta dice:

              @Al Williams Supongo que quise decir que si bien mBed es principalmente una API y una plataforma es un sistema de compilación, ambos intentan respaldar muchos objetivos y esto puede ser muy difícil. Me gusta mucho una plataforma y la uso con regularidad. Cuando se informa de un error en una plataforma, generalmente se corrige muy rápidamente. Esta es una de las razones humanas por las que tiene éxito.

              Desafortunadamente, este no es el caso con mBed. Los errores y la falta de soporte periférico pueden afectar a algunos objetivos durante años. La biblioteca mbed RPC no admite muchos objetivos y tiene errores ... muy rápidamente consume toda la memoria. La biblioteca USB mBed tampoco es compatible con muchos objetivos y solo ahora (años después de que estos objetivos se anunciaran como compatibles con mBed) hay un pequeño esfuerzo para llevar las bibliotecas de dispositivos USB a los dispositivos STM32F0 / F1 / F3.

              Debido a que es responsabilidad de los proveedores importar mBed a sus microcontroladores, por lo general (especialmente los chicos de ST) solo admiten la biblioteca mBed básica y aún así se apresuran ... introduciendo aún más errores. Sin mencionar que hay pocos documentos sobre el propósito con el que admite periféricos avanzados como Ethernet, USB, Bluetooth, etc.

              Ahora agregue el swell de código que proviene del uso de RTOS por defecto en mbedOS5 (mbedOS2 ya ha explotado como está) y mBed desafortunadamente se convierte en un desastre. También continúan introduciendo nuevos RTOS y pilas sin abordar estos problemas centrales al introducir aún más hinchamiento.

              mBed es una gran biblioteca de API, realmente me gusta, pero en mi experiencia está plagada de muchos problemas que surgen de tener muchos objetos que no son compatibles correctamente. Espero que resuelvan estos problemas. Si no, migraré de regreso a un Arduino / adolescente para mis necesidades de prototipos rápidos.

              Por cierto, ha intentado reemplazar el IDE de Internet mBed actual con uno que está basado en cloud9-IDE. No estoy seguro de cómo sucede eso ahora.

              Durante el año pasado, he estado usando principalmente codificación con MBed (Nucleus-F411RE) sin conexión a través de un complemento PlatformIO con el editor de código Atom a pesar de sus deficiencias (Atom). Probablemente cambiaré mi plataforma prototipo rápida favorita a la teensy 3.2 todavía a través de la plataforma y tal vez VIM como IDE.

    • Luke Weston dice:

      Como mínimo soportable, si no puedo escribir, compilar y cargar fácilmente el código Arduino en vim, al menos me gustaría poder invertir el color en el IDE de Arduino para obtener un fondo negro con menos fatiga visual.

      • Arsenio Dev (@ Ascii211) dice:

        Lo encubrí al respecto, escribí un tutorial sobre cómo hacer precisamente eso y cambiar a una fuente MUCHO más fácil de leer mientras lo hace. https://tminusarduino.blogspot.com/2016/03/how-to-theme-and-change-font-of-arduino.html

    • ikravets dice:

      Hola al

      En primer lugar, ¡muchas gracias por esta revisión! Es el primer álbum de blog sobre PlatformIO en La-Tecnologia.

      > Pero parece extraño cuando se realizan algunos cambios en la GUI y otros se realizan desde la línea de comandos.

      Quiero señalar que PlatformIO comenzó una historia como una herramienta CLI. PlatformIO IDE es un envoltorio de PlatformIO Core (CLI) con sus propias herramientas y características adicionales. Actualmente estamos trabajando en PlatformIO IDE 2.0, donde el objetivo principal es crear una herramienta fácil de usar pero con un rico conjunto de características profesionales (depuración, procesamiento de datos, etc.).

      > Cuando esté listo, tendrás que trabajar para solucionarlo hasta que los desarrolladores lo solucionen por ti.

      No es necesario hacer eso. Puede arreglar su proyecto a una versión específica de una plataforma de desarrollo. Además, puede tener muchos entornos de compilación basados ​​en diferentes versiones de plataformas de desarrollo. Por ejemplo (platform.ini),

      "
      [env:stable]

      plataforma = foo@~1.2.3
      tablero = ...

      [env:dev]

      plataforma = foo
      tablero = ...

      [env:legacy]

      plataforma = foo @ <1.0.0
      tablero = ...
      "

      Consulte la documentación para obtener más detalles: http://docs.platformio.org/page/projectconf.html#platform

      ——–

      Tenga en cuenta que aún no hemos lanzado PlatformIO IDE. Implementamos solo el 20% de las funciones sin comprimir en PIO IDE 2.0.0 beta.3. Algunas de las características ya están anunciadas, como "depuración" con 1 clic y otras las mantenemos en secreto 🙂

      ¡Manténganse al tanto!
      - https://twitter.com/PlatformIO_Org

      Saludos,
      Ivan Kravets @ PlatformIO

      • Al Williams dice:

        Hola ivan

        Espero que no haya tomado algunos de mis comentarios como demasiado duros. Personalmente, me gusta la CLI. Solo sé que soy una minoría y siempre me divierte cuando veo una mezcla que parece que no satisfaría a nadie porque la mayoría de la gente se polariza de una forma u otra. Sin embargo, diré que al menos sus archivos están claros. SystemWorkbench me molesta, lo que me hace cambiar un archivo de texto oculto para corregir el reajuste de OpenOCD cada vez que creo un nuevo proyecto. Eso es malo no importa lo que hagas 😉

        Al corregir los números de versión, tendré que esforzarme más en eso. Sé que las bibliotecas mbed, en particular, son terribles debido a cambios masivos que rompen los niveles bajos (cómo adaptarlo al F103). Entonces, tal vez esa es la respuesta para congelarse en un nivel. No me di cuenta de que pudieras hacer eso.

        Todavía prefiero la CLI y uso Emacs como mi GUI, pero nuevamente podría decir eso sobre casi todo.

        • ikravets dice:

          > Espero que no hayas tomado algunos de mis comentarios como demasiado duros.

          Tus comentarios son 100% verdaderos. Me gusta un punto de vista honesto, me obliga a ser más y mejor. ¡De la misma manera vemos qué partes debemos mejorar lo antes posible!

          No pretendemos clonar IDE existentes (Eclipse, Visual Studio Desktop, etc.). La comunidad de IoT requiere herramientas simplificadas y fáciles de usar en las que las personas puedan centrarse en sus propias ideas y ahorrar tiempo en el aprendizaje de nuevos IDE, herramientas, etc. Un único ecosistema para cientos de placas / MCU, bibliotecas, fácil cambio entre ellas, etc.

          ¡Gracias!

      • ubidefeo dice:

        Comencé a usar Platform.io hace más de un año porque confío mucho en SublimeText como mi editor completo.
        El complemento DevIoT, aunque a veces tiene errores, ofrece una excelente manera de hacerlo más fácil para usted en la plataforma y, después de un tiempo, realmente mejora en la edición de archivos de configuración usted mismo y aquí y allá usando la línea de comando;)

        Realmente disfruto Platform.io, especialmente lo fácil que es usar bibliotecas locales y crear entornos de destino.
        Principalmente desarrollo en AVR, y me gusta que puedo especificar el marco de Arduino o simplemente trabajar sin él (especialmente cuando se trata de vectores ISR usados ​​en el marco de Arduino).

        Es un gran proyecto y ayudé a algunos de mis alumnos más curiosos a participar 🙂
        Sin embargo, la documentación todavía parece tener algunas entradas actualizadas, por lo que a menudo prefiero simplemente lanzar comandos con la bandera -h e ir desde allí.

        Soy un feliz evangelista de Platform.io;)

    • wassfila dice:

      Me gusta este artículo porque estas herramientas introducen nuevos conceptos.
      1) Concepto Arduino, más amplio y abierto
      Si algunas personas encuentran que el Arduino es genial, bueno, el concepto de Arduino es aún mejor. El mBed es para mí como un concepto similar a Arduino (código cerrado, soporte de placa lista, o funciona fácilmente o se olvida de adaptarlo), lo cual es bueno para ganar el 99% para aquellos que no necesitan modificar ningún programa, solo prepararse. proyectos y los ilumina. Entonces, aplicar ese concepto a Frames de código abierto trae el poder de dos mundos, proyectos comparables y con la opción de rehacer el código fuente y usarlo en otros proyectos para aquellos que lo deseen.
      2) Gestión de paquetes:
      http://docs.platformio.org/en/latest/librarymanager/
      Nodejs, no habría tenido éxito sin npp, así como pip para python, y ahora los programas de microcontroladores tienen su propia administración de paquetes que, con suerte, permanecerá en la comunidad y, por lo tanto, cualquiera contribuiría a su biblioteca con dependencias y versión para que otros puedan usar sin dolor de cabeza (sin embargo con esfuerzo pero todo es relativo).
      3) Versatilidad
      PlatformIO proporciona su función principal independientemente de cualquier IDE o editor específico. Atom es para mí como un Arduino, pretendiendo ser un IDE. No perdonaría al IDE por la falta de depuración que requeriría que alguien tuviera otro IDE, por lo que el primero elimina la "I" del IDE.
      4) Visual Studio Code nunca pretendió ser un IDE, intenté buscar en su página de inicio y About it es un editor de código fuente. Hace que las transmisiones de git sean más rápidas y el terminal de línea de comandos es una parte integral de él. Está hecho por desarrolladores y para desarrolladores. Para hacerte una idea, solo mira el "Archivo Preferencias Accesos directos", pues te abre un archivo json donde puedes buscar, copiar, pegar, generar, reservar, el sueño de todo desarrollador que tuvo que ejecutar durante dos horas. con interfaz gráfica de usuario para encontrar atajos en editores clásicos.
      5) Parece fácil, pero no lo es
      Apoyo totalmente el problema de que con ambos conceptos combinados, Plataforma + VSCode, las cosas parecen simples, pero no lo son, bueno, veámoslo de esta manera: esto nunca fue pensado para aquellos que buscan buzones de salida, sin que los usuarios lean documentos que pueden quedarse con el IDE de Arduino, pero preferiblemente para aquellos que analizan el documento, conocen todo lo que hay debajo del capó, y una vez allí, la pregunta a qué Framework y editores podrían ser los más efectivos, y me cuesta imaginarme mejor.
      6. Conclusión
      - Después de que alguien haya instalado su entorno completo, personalizado o IDE, ¿qué pasa con la administración de paquetes? Eso es lo principal que me empujaría a usar una plataforma, probablemente más tarde para buscar bibliotecas y compartir la mía.
      - No soy un usuario de Emacs o Vim, ya sé que VSCode puede no competir, ya que todavía es posible argumentar, pero VSCode es lo suficientemente nuevo para el código abierto, y me sorprende ver que los escépticos de Microsoft dicen cosas buenas al respecto. , así que quién sabe, dónde terminará esto.

      • Fobias dice:

        Thw mbed es un código completamente abierto durante algunos años. Solo mira el gitube.

        • Darren dice:

          Cuando mbed comenzó a funcionar, solo estaba en línea y, en mi opinión, fue completamente inútil debido a eso. Ahora se puede usar solo y admite bastantes líneas de procesadores. Encontré que la documentación es bastante buena.

        • wassfila dice:

          Bueno, teóricamente tienes razón, me costó decir cerrado debido a la estrategia histórica y estaba un poco influenciado por mbed OS 5, que solo se compila a través de armcc ya sea de manera costosa o en línea (toman tu fuente para eso). Entonces, para ser optimistas, esperemos que estos problemas de compilación de gcc (o si aún no) se resuelvan, y ARM reproducirá el código abierto real y no tendrá miedo de la así llamada fragmentación.

      • Gerrit Visser dice:

        simplemente use PlatformIO con Visual Studio Community en lugar de VS kernel. He estado haciendo esto durante 2 años. Ivan proporciona un excelente soporte BTW, por lo que incluso si encuentra un problema / defecto, se resuelve rápidamente.

        La construcción de Arduino es un error que conduce a una estructura de código terrible, debe evitarse para todo "real". Eche un vistazo a MySensors.org, una biblioteca encantadora incomprensible cuando desea cambiar algo debido a problemas de fondo mágico IDE de Arduino. Pero PlatformIO lo entiende, por lo que las cosas volverán a ser tolerables 🙂

    • Matt Venn dice:

      +1 para plataforma, me encanta.

    • Gravis dice:

      ¿Por qué usaría un IDE basado en javascript cuando hay IDE nativos que hacen más, lo hacen mejor, lo hacen más rápido y usan menos recursos? No entiendo la apelación.

      • halherta dice:

        Porque todos los hipsters conocen javascript y se niegan a programar en cualquier otra cosa, independientemente de si está en línea o no. Por lo tanto, terminamos con un editor de código que se ejecuta en una instancia adicional y usa al menos 300 MB de RAM al principio (Atom IDE). ¡Todos saludan al desagradable javascript!

        Por otro lado, una plataforma cuando se usa en modo climático o con otro editor de código / IDE es bastante impresionante ... hasta que hay un error que rompe su sistema de construcción ... aunque corrigen errores bastante rápido.

    • halherta dice:

      La plataforma es una herramienta del constructor de cli basado en Python 2.7 que usa scons http://scons.org/. Atom.io es solo el IDE recomendado para usar con una plataforma. También se admiten muchos otros IDE.

    • pborges475 dice:

      plataforma con https://www.jetbrains.com/clion/ es el cielo

      • Alex E dice:

        CTRL + F clon. Gracias. ¡No es gratis, pero CLION es un IDE increíble!

    • Jerjes tercero dice:

      ¿Alguna de estas herramientas (PlatformIO o VS Code) admite la depuración de dispositivos para microcontroladores? Parece que no, pero podría estar equivocado. Parece que la mayoría de los chicos quieren depurar el uso de IDE fabricados (o extremos) algo basado en el Eclipse CDT.

      • Jaydcarlson dice:

        Totalmente 100% de acuerdo. Estamos en 2017, ¿no lo hemos descubierto todavía? No hablo de las MCU que no tienen depuradores confiables (y buenos IDE para acompañar), y no tengo idea de por qué las personas soportan entornos de desarrollo (CLI o gráficos) que no permiten esto. Honestamente, todos los entornos de desarrollo de la "comunidad" siempre me parecieron extraños. Los fabricantes dedican mucho tiempo a desarrollar IDE que funcionan bien con sus MCU, ¿por qué no usarlos? Si toma una parte de Freescale (error, NXP ...), ¿por qué usaría otra cosa que no sea Kinetis Design Studio? Lo mismo con las MCU de Silicon Labs, Microchip, TI, etc. (diablos, incluso Infineon tiene un gran IDE en DAVE). Básicamente, todos los fabricantes tienen un IDE basado en Eclipse hoy en día, y los usuarios de Mac / Linux ya no pueden ladrar sobre el soporte del sistema operativo, ya que parece haber soluciones bastante buenas sin importar el sistema operativo que use.

        • halherta dice:

          Si bien los depuradores son una herramienta de desarrollo increíblemente poderosa y, en algunos casos, son una necesidad absoluta (depurar cosas de DMA), creo que rara vez necesito usarlos si tengo acceso a una función printf bien desarrollada.

          • Gerrit Visser dice:

            Estás bromeando, ¿no? Printf cambia el flujo y la hora de su código. Esp en dispositivos pequeños donde el serial algo se interrumpe o peor aún, se sondea. Si saca las impresiones, entonces el tiempo se acaba. Nada supera a un conjunto de puntos de ruptura.

            • halherta dice:

              Estoy de acuerdo en que nada supera un conjunto de puntos de ruptura. pero el 85% de las veces una impresión con poca grasa es suficiente.

        • rrwakc dice:

          Si. Al igual que Atmel Studio, esto se bloquea por completo cuando lo coloca en una computadora con Visual Studio ya instalado. Y cuando funciona y usas 2 computadoras (en casa y en la oficina) tienes que tener exactamente la misma versión o sucederán cosas extrañas. O cuando STM actualiza sus bibliotecas para solucionar problemas que ha tenido, pero después de una actualización, su versión de código no coincide con la versión de la biblioteca. La compatibilidad de versiones está ampliamente presente en todos los compiladores basados ​​en IAR y eclipse. Sin mencionar que la compatibilidad con Linux en su mayoría no existe.
          Sí, el IDE de arduino es inútil y la mayoría de las bibliotecas son clases que nombran clases para nombrar clases. Pero si tuviera la opción de controlar qué biblioteca usa y haga clic con el botón derecho en la función y diga Ir a implementación, estaría en los mejores IDE entre sistemas. Si usa la versión portátil cuando termine, crea un archivo zip y después de 2 años, cuando quiera cambiarlo, lo abrirá en cualquier máquina con Windows / Linux que probablemente funcione.
          Tampoco se instala durante una hora y tarda 5 minutos en encenderse.

          • Jaydcarlson dice:

            Atmel Studio es, con mucho, el peor de los IDE de marca. No tuve más que problemas con los controladores AVR Dragon, herramientas extrañas sobre el encadenamiento y cosas por el estilo, así que estoy totalmente de acuerdo con usted (tenga en cuenta que no mencioné a Atmel en mi comentario al que respondió). Mi consejo sería probar herramientas de otro proveedor (ST no es una buena opción porque realmente no tienen otros proveedores que no sean STM32Cube). Eche un vistazo a Silicon Labs, Microchip, NXP / Freescale o TI. En serio, nunca he tenido ninguno de los problemas de los que estás hablando, y * todas * esas plataformas son compatibles con Linux. Eche un vistazo especial a las cosas de Silicon Labs. Al marcar una casilla de verificación, las bibliotecas / controladores periféricos se * copian * (no se hace referencia) a su proyecto. Cambie fácilmente entre las versiones de la cadena de herramientas de la versión local (lo mismo con MPLAB). Parece iniciarse y ejecutarse de manera confiable con una computadora moderna como cualquier otro software de ingeniería.

    • Johan van Gils (@vangilsjohan) dice:

      Es curioso, este mes también me mudé a platformIO con código VS. Funciona muy bien para mí. Por alguna razón, no puedo conectarme con Atom, se siente demasiado lento y lento. VS Code es un IDE realmente agradable y funciona muy bien junto con platformIO

    • Robert Schultz dice:

      Desafortunadamente, ambos editores se basan en Chromium, lo que significa fuentes de contorno borrosas. VSCode no admite deshabilitarlo y nunca pude lograr que lo deshabilitara realmente. Me gustan las fuentes de mapa de bits rizadas de SublimeText y, por lo tanto, me quedaré con ellas.

    • Silfo dice:

      Me alegra ver que Platform finalmente está prestando algo de atención aquí. Bien merecido. Nunca he sido fanático de PlatformIO IDE (probablemente principalmente porque no soy fanático de Atom) pero me encanta el núcleo CLI, que creo que son todas las piezas importantes de todos modos.

    • wassfila dice:

      El video de @Al Williams se enfoca en Atom, traté aquí de enfocarme en VSCode, y también entender lo que hay debajo de PlatformIO, lo que trae y lo que viene de mBed o ST, bueno, me sorprendió muy gratamente, con respecto a la contribución de la plataforma de integrar todo junto con la instalación con un solo clic más toda la compilación y gestión de framworks. Así que aquí hay muchos detalles, incluso comencé a depurar con VSCode y luego me quedé atascado:
      https://la-tecnologia.io/project/21045-stm32-bluepill-frameworks-evaluation

    • Neil Cherry dice:

      ¡CLI y Emacs me inscriben! Tengo todo tipo de cosas en las que el IDE de Arduino me vuelve loco. Realmente odio que escondan muchas cosas. Trabajo con las cosas de PIC32 y ESP para mis cosas de Smart Home.

    • Malaquías dice:

      He estado usando una plataforma durante muchos meses. Es una herramienta bastante singular en su esfuerzo por reunir ecosistemas tan diferentes. Es un gran ahorro, como ya se ha aludido, eludir la parte integral de estas herramientas. No solo eso, sino que el apoyo de la comunidad y el creador es bastante receptivo, lo que en sí mismo es un factor extremadamente importante.

      La administración de bibliotecas es lo más estimulante que he visto en cualquier entorno integrado, e incluso hay algunos comportamientos similares a los archivos MAKE para rastrear qué archivos de origen se incluyen si no desea que descubra automáticamente sus problemas (a priori comportamiento). .

Victoria Prieto
Victoria Prieto

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *