TinyGo – kleiner Go-Compiler auf LLVM-Basis
(github.com/tinygo-org)- Einsetzbar auf Mikrocontrollern, für WebAssembly (WASM/WASI) und CLI-Tools
- Unterstützt die meisten Standardbibliothek-Pakete und kann Go-Code ohne Änderungen kompilieren
- Nutzt intern LLVM, um kleinen und effizienten Code zu erzeugen
- Hervorragende CGo-Unterstützung
4 Kommentare
Als ich TinyGo auf Arduino-Nano-33-Boards (nrf52-basiert oder Nano 33 IoT) ausprobiert habe, funktionierten die grundlegenden Features ziemlich gut (abgesehen vom Problem, dass BLE-Bonding nicht funktioniert ...). Ich denke auch, dass es für den kommerziellen Einsatz schwierig ist, aber trotzdem liefen die Go-Channels besser als erwartet, sodass es ganz spaßig war, damit aus Interesse etwas auszuprobieren. Für Firmware scheint mir derzeit Zephyr RTOS (C/C++) ganz ordentlich zu sein; es wird von der Linux Foundation unterstützt, wird von Nordic Semi ernsthaft als zentrales RTOS eingesetzt, und die Unterstützung verschiedener Protokolle sowie das Tooling sind seine Stärken. Bei Rust habe ich gehört, dass man häufig
no_stdverwenden muss und es deshalb nicht gerade einfach ist, aber ich habe es selbst noch nie in der Praxis eingesetzt, daher bin ich auch neugierig, haha.Die unterstützten MCUs sind etwas eingeschränkt, und die Unterstützung für weit verbreitete Produktfamilien von STM, NXP oder TI wirkt etwas fragwürdig.
Bei ESP32 funktionieren weder WLAN noch Bluetooth, und um es schon als production-ready zu bezeichnen, scheint es noch etwas zu früh zu sein.
Persönlich finde ich unter solchen MCU-Anwendungsprojekten mit modernen Sprachen
Rust in Embeddedam vielversprechendsten.Hallo, ich habe eine Frage, weil ich den von Ihnen erwähnten Punkt interessant fand.
Ich habe früher Erfahrung damit gesammelt, Firmware in C zu lernen und zu schreiben (STM, TI), habe aber aufgegeben, weil es mir nicht lag. Jetzt, nach viel Zeit, würde ich dieses Gebiet gern noch einmal etwas moderner angehen.
Ist Rust bei Firmware heutzutage eher näher am Trend?
Bei Firmware kann man durchaus sagen, dass der Einsatz von Rust noch ganz sicher nicht production ready ist~~~. Aber die Abdeckung der unterstützten Geräte wird sehr schnell erweitert..
Eine interessante Nachricht ist außerdem, dass es wohl kürzlich eine Art Vorgespräch oder Meeting gegeben hat, um Rust in die Liste des AutoSAR-Standards aufzunehmen..
Im Firmware-Bereich sind Bugs im Zusammenhang mit unmanaged memory wegen der speziellen Betriebsumgebung besonders fatal..
Im Bereich Firmware/MCU
software emulation in embedded,
perfect unit testing without boards
sind Themen, die auf Seminaren häufig vorgestellt werden..
Als advanced topic vielleicht so etwas wie onnx in mcu ??