症状
STM32CubeIDE 1.16.0 以降で、IDEをインストール後にiocからのコード生成が実行されない
STM32CubeIDEで重要な機能の一つに、MCUの設定用GUIファイル(iocファイル)からのHALコードの自動生成機能があります。
最近、メインで使用しているPCをとある事情から初期化しCubeIDEを新インストールしたところ、IDEは正常に起動しコンパイルやMCUへの書き込みは正常に機能するものの、HALコードの自動生成が行われない症状に出くわしました。
generate codeコマンドなどを実行しても、アラートなどは出ないものの一切動作しないので一見して原因がわかりません。
原因
STMicroのフォーラムに同じ症状で困っているスレッドがあったので読んでみました。
当該スレッド内で共有されている情報として、IDE内でSTアカウントでのログインをしないとコード生成が行われない仕様になったようです。
このスレを立ち上げた人はSTM32CubeIDE 1.16.0を使用しているとのことなので、少なくともこのバージョン以降のIDEを使用する場合はSTアカウントでログインが必要です。
スレ内ではCubeMXのインストールやCubeIDEの修復が必要との声が上がっていましたが、私の場合はログインのみで解決しました。おそらくログイン以外の処理は必要ないかと思われます。
対処方法
原因を解決するためにIDEからSTアカウントでのログインを実行します。
Help>STM32Cube updates>Connection to myST からログインフォームを呼び出します。
mySTアカウント情報を入力する選択肢が現れますので(下画像の水色ボタン)選択します。
mySTログインフォームが起動しますのでmySTアカウントでログインしてください。
ログインが通るとHALコードの生成ができるようになりました。
おわりに(愚痴っぽいなにか)
いつからこの仕様になったか分かりませんが、IDEがiocファイルの取得等でSTMicroのサーバーからデータ等を取得する際にmySTアカウントでの認証を必須とするセキュリティに変わったっぽいです。
セキュリティ強化は全然良いと思いますが、仕様を変えたならログインフォームの誘導やアラートの発報などをしてくれると親切でしたね。
特に目立つ発報がないのに機能が動作しないパターンが一番困る...