##トラ技ノール2020年3月号掲載のARM-First買ってみた
ので解説動画を見ながらセットアップしてみたがつまづき放題なので備忘録として書いておく。
環境は次のとおりです。
MacBookPro(mid2014)
OSX Mojave(10.14.6)
STM32-IDE(1.3.1)※この時点で最新
CubeProgrammer(2.4.0)
##STM32-IDE編
インストールからつまづきます。
stマイクロのサイトからバイナリをDLし、dmgファイルを開いてインストーラなりアプリのコピーなりしますが、セキュリティ設定で弾かれます。
で、システム環境設定>セキュリティとプライバシー>一般で見てみると昔合ったはずのすべてのアプリケーションを許可ボタンが消えている。
ので許可ボタンを出します。
これをやっておかないとSTマイクロだけでなく他のアプリもインスコできまへん。
ターミナルから下記を入力します。
$sudo spctl --master-disable
そうするとシステム環境設定で実行許可に実行したはずのインストーラなどが出てくるので「このまま開く」を押すと開くはずです。
しかし、私の環境ではこれでもだめだったのでインストール後のアプリ起動でもまたセキュリティ設定がもとに戻っていたりと面倒なのでアプリのフォルダ配下の拡張属性を削除して起動しました。
これもターミナルで下記のように実行します。
$xattr -cr /Users/hoge/Downloads/SetupSTM32CubeProgrammer-2.4.0.app/
※同様にIDEもインストール後に行います
$xattr -cr /Users/hoge/Applications/STM32CubeIDE.app/
これで起動しました。
####起動後のアップデート
起動するとアップデートがあるので入れておきます。
2GB以上あったので往年の「CoffeBreak」で待ちます。
####サンプルを動作させてみる
付録のサンプルプログラムをProgrammerで「Arm_First_Test_lcd.bin」を書き込むときにはUSBに挿したあとでDFUモードに移行します。
・BOOT/RESET同時押し
・RESET離す
・BOOT離す
でDFUモードに移行します。移行したらUSBの接続は切れてしまうので"/dev/cu.usbmodem0000000******"のようなデバイスファイルは消えます。
その代わり、CubeProgrammerでUSBが認識されます。
こうなれば右のConnectボタンを押して接続して、左の上から2番めの書き込みボタンを押しサンプルを指定して「StartProgram」で書き込みます。
ただしこれは単体で書き込む方法なので実際はST-Link2デバッガを使ってIDE上で「Run」ボタンを押すと書き込みから実行〜デバッグまでシームレスに見ることができます。
なので実際はST-Link2を使ったほうが断然楽です。
ST-Link2は単体でも買うことができますが、イベントなどでSTマイクロさんのブースにて応募するともらえるボードなどにはついていますのでぜひSTマイクロさんのセミナーなどに参加してゲットするのが良いでしょう。
※首都圏以外の方は単体購入のほうが絶対安いです
とはいえ2020年の今年は新型肺炎ウイルスの影響でイベント皆無&リアル秋月電子も休業(ECはやってる)なのでいろいろ厳しいですね。
ちなみに私がゲットしているのはこちらのボードです。
http://akizukidenshi.com/catalog/g/gM-07723/
あとは記事や付録DVD通りにやっていけば問題なくコンパイル〜実行できます。
##Arduino環境に関して
Macの場合は結論から言うとST-Link2経由でないと書き込みできません。
これは、記事中で紹介しているライブラリSTM32GENERIC
https://github.com/alto0126/STM32GENERIC
のドキュメントによれば専用のbootloaderのバイナリを取ってきて読ませてからDFUモードでやれと書いてありますが、すでにST-Link2を持っているのでST-Link2経由でアップロードすれば何ら問題なく実行できます。
そのまま実行するとArduinoIDEで書き込み時にエラーが出て書き込めません。
ST-Link2経由で接続していればツールメニューで次のように設定してやれば問題なく書き込めます。
#ひとまず学習を進められるには
これらの設定でできると思います。
書面の都合だと思いますが、Macでの方法も一部書いてほしいなと思います。
サポートページのリンクでもいいんだけど・・・
余裕が出てきたらVSCode&PlatformIOでも試してみたいですが、CubeMXとかとの連携どうすんの問題はもうちょい落ち着いてからやろう。
このあたり知っている方がいれば教えていただけるとめちゃくちゃ嬉しいです。