みつきんのメモ

組み込みエンジニアです。Interface誌で「My オリジナルLinuxの作り方」連載中

tinygoでnRF52840-DK(PCA10056)を動かす

はじめに

nRF52840 Development Kitを入手したのでtinygoで動かしてみる。

tinygoのインストール

Ubuntu 18.04にtinygo-0.5.0をインストールするの手順でインストール済みであることを想定。

ツールのダウンロード

nrfjprogコマンドが必要なので、下記からコマンドラインツールをダウンロードする。

https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF5-Command-Line-Tools/Download#infotabs

tarのアーカイブなので展開する。

$ tar xvf nRF-Command-Line-Tools_9_8_1_Linux-x86_64.tar
$ mv ./nrfjprog ~/bin/
$ mv ./mergehex ~/bin/
$ cat << 'EOF' >> ~/.bashrc
export PATH=$PATH:${HOME}/bin/nrfjprog:${HOME}/bin/mergehex
EOF
$ source ~/.bashrc

J-Link Softwareのインストール

当然のことながらnrfjprogはj-Linkのライブラリを必要とするので、インストールしていない場合はこれをインストールする。

SEGGERのダウンロードページからダウンロードする。

ダウンロードが完了したら次のコマンドでインストールする。

$ sudo gdebi JLink_Linux_V644g_x86_64.deb 

サンプルプログラムの書き込み

サンプルプログラムをビルドして書き込む。

バイスターゲットの生成

これは最初にやっておく必要がある。

$ cd $GOPATH/src/github.com/tinygo-org/tinygo
$ make gen-device

プログラムの書き込み

次のコマンドでビルドして書き込む。ここではexamples/Blinky1を書き込む。

ターゲット指定はpca10056

$ tinygo flash -target=pca10056 examples/blinky1

LED1がチカチカしたら成功。

まとめ

SEGGER J-LinkやnRF Command Line Toolは必要となるが、それを入れてしまえば問題なく動作する。

tinygoの手軽さは素敵。