TinyGoの開発環境を構築する
なぜTinyGoなのか
マイコンの開発をやっているとマイコンの種類毎に開発ツールがあり、それぞれ勉強しないといけません。幅広い開発環境を共通化して同じツールで開発できるようになると、マイコンごとに覚えることが減って、中身に時間を割けるのではという思いつきです。
昨年tiygoを見つけて調べていたのですが、まだ開発が進んでおらず一部のマイコンしか対応していませんでした。
ようやく、Pi pico,stm32,esp32などが対象ボードに追加されたので、そろそろ試してみようと思いました。
まずは、Lチカコードでそれぞれのマイコン用のバイナリーを作成でき、書き込みできプログラムが動くことまでが目標です。
開発環境の準備
手っ取り早くWin10と同居しているWSL2(debian)でやってみようかと思いましたが、物理的なUSBとdebianをくっつけるのが大変そうなので断念。しばらく非可動だったpi2bに環境を構築したいと思います。
全体構成
go-lang環境とTinyGoを中心に、それぞれのマイコンに合わせてライブラリーや書き込みツールの準備が必要です。それぞれを確認するのは骨が折れます。構築する環境の全体構成図を作成しました。間違いは逐次修正します。
必要な物
ハード的に準備したのは以下のとおりです。
- Pi2b+ ver1.1
- SDカード
- USB A - micro Bケーブル
- USB A - type Cケーブル
pi2bは、ver1.2と思っていたら違ってました。ということで32bitカーネルです。
セットアップしたpi2bは、このような環境です。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| pi@pi2b:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 11 (bullseye)
Release: 11
Codename: bullseye
pi@pi2b:~ $ uname -a
Linux pi2b 5.15.32-v7+ #1538 SMP Thu Mar 31 19:38:48 BST 2022 armv7l GNU/Linux
pi@pi2b:~ $ df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 29538380 3852860 24450360 14% /
devtmpfs 341064 0 341064 0% /dev
tmpfs 472648 0 472648 0% /dev/shm
tmpfs 189060 684 188376 1% /run
tmpfs 5120 4 5116 1% /run/lock
/dev/mmcblk0p1 258095 50413 207683 20% /boot
tmpfs 94528 0 94528 0% /run/user/1000
|
ソフトウェアの準備
go-lang環境、tinygoなど関係するソフトウェアをインストールします。本家を参考に作業すれば問題ありません。それぞれのバージョンに依存関係があるそうです。
1
2
3
4
5
6
| pi@pi2b:~ $ go version
go version go1.15.15 linux/arm
pi@pi2b:~ $
pi@pi2b:~ $ tinygo version
tinygo version 0.23.0 linux/arm (using go version go1.15.15 and LLVM version 14.0.0)
pi@pi2b:~ $
|
まとめ
TinyGo環境構築の動機や準備状況をまとめました。まだまだスタートラインです。少しずつ進めていきたいと思います。
参考リンク