12 puntos por xguru 2022-06-13 | 4 comentarios | Compartir por WhatsApp
  • Se puede usar en microcontroladores, WebAssembly (WASM/WASI) y herramientas CLI, entre otros
  • Soporta la mayoría de los paquetes de la biblioteca estándar y puede compilar código Go sin modificaciones
  • Usa LLVM internamente para generar código pequeño y eficiente
  • Excelente soporte para CGo

4 comentarios

 
bus710 2022-06-13

Cuando probé usar TinyGo en placas Arduino Nano 33 (basadas en nrf52 o Nano 33 IoT), las funciones básicas anduvieron bastante bien (salvo el problema de que no funciona el bonding de BLE...).
Yo también creo que es difícil usarlo para fines comerciales, pero aun así, para experimentar estuvo bastante bien porque los canales de Go funcionaban mejor de lo esperado.
Si hablamos de firmware hoy en día, Zephyr RTOS (C/C++) parece una opción bastante buena; por ahora cuenta con el respaldo de la Linux Foundation, Nordic Semi lo está usando seriamente como su RTOS principal, y sus puntos fuertes son el soporte de varios protocolos y el tooling.
En el caso de Rust, he escuchado que muchas veces hay que trabajar con no_std, así que no es tan sencillo, pero como nunca lo he aplicado en la práctica, a mí también me da curiosidad jaja

 
jjpark78 2022-06-13

El soporte para MCU está algo limitado, y el soporte para familias muy usadas como STM o productos de NXP y TI se ve un poco flojo.
En el caso del ESP32, no funcionan Wi‑Fi ni Bluetooth, y todavía parece faltarle un poco para considerarlo listo para producción.

Personalmente, entre este tipo de proyectos para aplicar lenguajes modernos a MCU, el que más me entusiasma es Rust en embedded.

 
tequila 2022-06-13

Hola, una pregunta porque me pareció interesante lo que comentó mientras pasaba.
En el pasado estudié y escribí firmware en C (STM, TI), pero no iba con mis aptitudes y lo dejé. Ahora, después de mucho tiempo, me gustaría volver a estudiar ese campo de una forma un poco más moderna.
¿En firmware, Rust sigue estando un poco más cerca de la tendencia?

 
jjpark78 2022-06-15

Se puede decir que la adopción de Rust en firmware todavía definitivamente no está lista para producción~~~. Pero está ampliando muy rápido la cobertura de dispositivos compatibles..

Una noticia interesante es que parece que recientemente hubo una reunión, algo así como trabajo previo, para incluir a Rust en la lista del estándar AutoSAR..

En el lado del firmware, por las condiciones especiales del entorno de ejecución, si explota un bug relacionado con unmanaged memory, el golpe es crítico..

En el lado de los MCU de firmware,

software emulation in embedded,
perfect unit testing without boards

son temas que se presentan mucho en seminarios..

Como tema avanzado, ¿sería algo como ONNX en MCU??