🫡

STM32をUbuntuから書き込みたい

に公開

UbuntuでSTM32_Programmer_CLIを行う方法

Yocto開発を行ってると、Yoctoを実行したUbuntu環境で書き換えを行いたい時があります。
しかもコマンドラインで(機器にはSSHで接続してます)
そこで、メーカー公式のSTM32_Programmer_CLIをインストールする際に、なんか引っかかったので記録を残しておきます(自分用メモでもある)

おっと、YoctoってLinuxでしょ?って思うじゃん。
STM32はマイコンもLinuxが動くチップ(STM32MPシリーズ)も同じライターで書き込み出来るので、同様の方法で操作可能だと思ってください。

本体のダウンロード

https://www.st.com/ja/development-tools/stm32cubeprog.html

Linux版をダウンロードします

※なんかこの頃、Linux版にWindows用のexeが入ってますが、気にせず放置でOK

※ライセンスの関係で、wget等で行えないのでローカルで行います

作業フォルダの作成

mkdir STM32_Programmer

この中にダウンロードしたzipを入れます

Ubuntuで展開

unzip stm32cubeprg-lin-v2-20-0.zip

ここまでは予想通り。ここから先が情報少なく上手く動作しない。

作業フォルダに権限を与える

実行ファイルじゃなく作業フォルダに 権限を与えます。
ココが毎回忘れるし探しても見つからない所

sudo chmod +x -R .

ドットの所は、今いるフォルダに権限を与えます。
想定しているフォルダは、unzipしたファイルが保存されているフォルダ(仮で作ったSTM32_Programmer)です。

※どうやら、STM32_Programmer_CLIは Javaで動いているらしく、jreと言うフォルダにも実行権限が無いと動作しないみたいです。

実行してみる

./SetupSTM32CubeProgrammer-2.20.0.linux

ふぅ、上記のように本当にする?みたいなのを何度も聞かれます。
全部1もしくはYで進められます。
念の為内容を良く読んだのですが、気にする点は特に無く、デフォルトの方が進みが良いです。

完了すると

/usr/local/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin

に実体が作成されます。

コマンド環境に登録する

インストールしたままだと、コマンドとして使えない為、PATHを通す必要があります。
方法は色々あると思いますが、以下が結構楽だったのでオススメ気味

sudo ln -s /usr/local/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin/STM32_Programmer_CLI /usr/local/bin/STM32_Programmer_CLI

これで、コマンドがデフォルトで参照しているフォルダにリンクが追加されました。

STM32_Programmer_CLI -h

これでコマンドが使える様になりました。良かった良かった。

USB系(ST-LINKやDFU)の権限ルールの追加

sudo cp /usr/local/STMicroelectronics/STM32Cube/STM32CubeProgrammer/Drivers/rules/* /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger

既にインストールしたフォルダにメーカー提供のルールがあるので、それをコピーしリロードすれば良さそう。

これで快適にYoctoで開発出来る!

LinuxでSTM32系(マイコン向けも含めて)の書き換えが出来ますので、Linuxでビルドして書き込むも自動化出来そう。
工場とか量産する際に知っておくと便利な感じ
オススメします~
それでは!


ArtifactNoise合同会社では技術コンサルタントを行っております。
ご興味があれば是非ご連絡くださいませ。
北神雄太 kitagami(at)artifactnoise.com

Discussion