マイコンでTensorFlow!? (2)

今回は開発環境をセットアップしていきます。前回説明した通り、SparkFun EdgeボードはまだGUIIDEが用意されていないので、コマンドラインベースの開発環境を構築する必要があります。

(1) Bash

コマンドラインツール、いわゆるシェルです。MacLinuxを使ってる開発者にはおなじみのものなので説明の必要はないでしょう。問題はWindowsの場合です。SparkFunのページではGit Bashを使う方法が紹介されていますが地雷臭しかしないので、素直にVirtualBox等の仮想マシンLinux使う方が良いと思います。

VirtualBoxの場合、デフォルトの仮想ハードディスクのサイズは10GBですが、10GBではTensorFlowのビルドをすると足りなくなるので余裕をもったサイズで作成しましょう。あとからパーティションを拡張するのは面倒です。

f:id:licheng:20190409233013p:plain:w500

(2) Make

自動ビルドツールです。MacLinuxを使ってる開発者にはおなじみのものなので説明の必要はないでしょう。Windowsの場合は仮想マシンLinuxを使いましょう。SparkFunのページではGit Bash上でGNU MCU Eclipse Windows Build Toolsを使う方法が紹介されていますが、ここではそういうケッタイな方法はとりません。

Ubuntuなら下記のコマンドを実行してください。Makeを含む基本的なビルドツール一式がインストールされます。

sudo apt-get install build-essential

(3) Python3

SparkFun Edgeボードの開発のためのもろもろのスクリプトPythonで書かれています。

Ubuntuなら下記のコマンドでインストールできます。SparkFunのページではWindowsの場合の注意点が書かれてますが、仮想マシンLinux使うなら関係ありません。

sudo apt-get install python3

Pythonで暗号化とシリアル通信をおこなうためにPyCryptodomeとPySerialをインストールします。Ubuntuなら下記のコマンドを実行してください。

sudo apt-get install python3-pip
sudo pip3 install pycryptodome
sudo pip3 install pyserial

(4) GNU Arm Embedded Toolchain

かんじんのCコンパイラです。ARM Cortex-R/Mマイコン用のGCCであるGNU Arm Embedded Toolchain (GNU-RM) を用います。

GNU Arm Embedded Toolchainはここからダウンロードしてインストールできますが、Ubuntuならもっと簡単です。下記のコマンドを実行してください。

sudo apt-get install gcc-arm-none-eabi

(5) Ambiq SDK

Ambiq Apolloマイコン用のSDKです。Ambiq社の下記ページの下のほうの「Apollo3 Blue」の「Software」の「AmbiqSuite SDK Version X.X.X」からzipファイルをダウンロードし、適当なディレクトリに解凍します。ここではホームディレクトリ直下のAmbiqSuiteに解凍したとして話を進めます。

※ 2019/04/07の時点で最新版はAmbiqSuite SDK Version 2.1.0ですが、後述のSparkFun Edge BSPとの整合性がとれないので、「Software - Earlier Releases 」からAmbiqSuite SDK Version 2.0.0をダウンロードして使用します。

SDKの主なフォルダ構成は以下のようになっています。

  • boards : 各ボードサポートパッケージ
  • CMSIS : ARM Cortexプロセッサ用の標準化されたライブラリ
  • mcu/apollo3 : Ambiq Apolloマイコン用のライブラリ
  • tools/apollo3_scripts : ビルドとFlash書き込みのためのPythonスクリプト
  • utils : ディレイや文字列操作などのユーティリティーライブラリ

諸事情により下記の修正が必要です。

cd ~/AmbiqSuite
cp tools/apollo3_scripts/keys_info0.py tools/apollo3_scripts/keys_info.py
chmod +x tools/apollo3_scripts/*.py

(6) SparkFun Edge BSP

SparkFun Edgeボード用のBSP(サポートパッケージ)です。下記のGitHubリポジトリからcloneするなりzipをダウンロードするして、~/AmbiqSuite/boards/ の下に配置します。ここでは~/AmbiqSuite/boards/SparkFun_Edge_BSPに配置したとします。

諸事情により下記の修正が必要です。

cd ~/AmbiqSuite/boards/SparkFun_Edge_BSP
chmod +x bsp/tools/*.py

以上で開発環境のセットアップは完了です。次回はサンプルコードのビルドとボードへの書き込みを行います。

参考URL

この記事は下記のSparkFunのページをもとに書きました。