この記事はQiita AdventCalendar 2019 Go6の17日目のエントリです。 「TinyGoでマイコン開発に入門してみよう!」という内容で現状のTinyGoをご紹介。 TinyGoって? Goのフロントエンドを使ってバックエンドにLLVMを利用する形で マイコンに向いたバイナリを出力可能にしたものです。 特徴 Goのマイコン向けサブセット AVRやARMシリーズに対応 WASMやPC向けバイナリも出力可能 LLVMバックエンドのため高効率(サイズ、処理性能) なぜGoはマイコンに向かないのか? OS依存が大きいとかランタイムが大きいなど ネットワークライブラリがモノリシックで巨大 メモリの利用方法が富豪的 組込に必要なGCの保留やvolatile機能の不足 TinyGoがサポートする標準ライブラリ まだ、本家Goとの差異はいくつか残っていてその影響で半数ほどのパッケージは