【Makecode Arcade】自作本体のファームウェア作り方&インストールし方

Makecode ArcadeはWEB上で簡単にゲームが作れてしまう仕組みです。Makecode Arcadeは作ったゲームを遊べる携帯端末の作り方まで用意されているので、任天堂ゲームボーイのような(今でいうとスイッチのような)端末が自作できます。
以前このブログでは私の作ったMakecode Arcadeを紹介しました。
この時は細かく説明しませんでしたが、今回はこの装置を作る過程でCPUボードに書き込むファームウェアの作り方とインストールの仕方を紹介します。
(作ったゲームのインストール方法ではないので注意してください)
ファームウェアを用意する
ファームウェアを自分でコンパイルする
ファームウェアを自分でコンパイルするにはコンパイルできるコンピュータが必要です。私はDebian Linux 9を使いました。(最終的にコンパイルできなかったのでUbuntuのほうが良いかも?)
事前にコンパイラをインストールしておきます。私のLinuxではgcc-arm-none-eabiだけインストールすれば必要なものが全部入りました。
# apt update # apt install gcc-arm-none-eabi
環境によりますが、Gitコマンドが必要ですので、これもインストールしておきます。Gitをインストールした後に初期設定をしておきます。
# apt install git $ git config --global user.name "First-name Family-name" $ git config --global user.email "username@example.com" $ git init
WindowsでコンパイルできないかとWindows Subsystem for Linuxで試してみましたが、コンパイルの途中でWidnowsの改行コードを認識できずエラーが連発しました。頑張れば修正できるかもしれませんが、あきらめました。
そのうち再挑戦してみます。
ファームウェアのソースコードはGithubに公開されています。私は以下のバージョンを参考にしました。
このページの緑色の「code」ボタンを押すとプルダウンの一番下に「Download ZIP」がありますのでZIPファイルがダウンロードできます。
ダウンロードしたZIPファイルを解凍するとソースコードが入ったuf2-stm32-mastarフォルダができますのでそのフォルダに移動して「make」とコマンドを入力するだけでファームウェアがコンパイルされます。
uf2-stm32-mastarフォルダ中のREADMEにも「makeするだけ」と書いてありますが、私の環境だとlibopencm3のコンパイルでエラーが出ます。
確認してみたらlibopencm3のフォルダがカラでした、ダウンロード元のQ&Aではlibopencm3はコンパイル中に自動でダウンロードするからOKのように書いてあるのですが、私のは動いていないみたいです。
わかる人いたら教えてください。
ファームウェアをもらってくる
何も自らコンパイルせずとも先人の偉業に頼れば問題なしです。ファームウェアの実行ファイルは廣尾コンパイラさんのNOTEページでダウンロード可能です。
(半分からすこし下のあたり)
私のハードウェアはこの設定を参考にして作りましたので、廣尾さんのファームウェアがそのまま使えます。
ファームウェアをインストールする
ファームウェアはUSBケーブル経由でもインストールができるのですが、多くの場合に不具合が出るようなので、STM32用のライター”ST-LINK-V2″をおすすめします。
ST-LINK V2はAmazonに1200円くらいで売っているます。Aliexpressなら激安で送料込み300円くらいです。やるぞと決めたときに発注しておけば、必要な時期に届くんではないでしょうか。
この激安ST-LINK V2はSTMicroelectoronics社のST-LINK互換機なんですが、STMicroのドライバでもちゃんと動きます。
ファームウェアの書き込みにはWindows PCを使います。Widnow PCに STMicroの”STM32CubeProgrammer”をインストールします。

次にST-LinkV2を経由してCPUボードとPC接続します。