Go

TinyGoいってみよう

TinyGoいってみよう

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に作業すれば問題ありません。それぞれのバージョンに依存関係があるそうです。

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環境構築の動機や準備状況をまとめました。まだまだスタートラインです。少しずつ進めていきたいと思います。

参考リンク

comments powered by Disqus