CubeIDEがプロジェクト・プロパティを上書きする

By | 2019年11月17日

(2019/Nov/27追記:本エントリの問題は、v1.0.2までのものであり、v1.1.0では解決済みです。執筆時点でアップデートしていなかったのが原因です。コミュニティにもその旨報告済みです)

上記の件の発生条件を突き止めました。

STM32 CubeIDEで生成したプロジェクトはスケルトンですので、内製、外製含む多数のモジュールを持ち込むことになり、それらはサブディレクトリに配置されます。したがって、プロジェクト・プロパティにはカスタムのインクルード・パスやソース・ロケーションを追加するわけですが、これらをCubeIDEが消去する問題が有りました。

カスタムパス

発生条件がまちまちに見えたので困惑していたのですが、腰を据えて調べることで挙動を特定することができました。

この問題は「.iocファイルを開いたあとの最初のコード生成のみで発生」します。つまり、.iocファイルを開きっぱなしであれば、何度コード生成してもパスは消去されません。

.iocファイルさえ開いてあれば、デバイスのコンフィギュレーションどころかFreeRTOSの追加削除ですらパスは消去されません。FreeRTOSの追加削除はFreeRTOS用のパスの追加削除も行われますが、コード生成をすると綺麗にRead-Modify-Writeが行われており、カスタム・パスはそのままにFreeRTOS関連のパスのみ変更されます。そして、.iosを閉じて開き直したあとにコードを生成すると、カスタム・パスのみが消え去ります。

カスタムパスを消されると、プロジェクトの設定をやり直しになります。デバイスのコンフィギュレーションを探りながら開発している時には、イライラで爆発しそうになる嫌なバグです。

検証環境は以下のとおり。おそらくほぼすべてのSTM32マイコンの開発で発生するでしょう。

  • STM32 CubeIDE 1.0.2
  • Ubuntu 16.04 LTS
  • Nucleo G431RB ( 32 pin ) ほか

この問題はコミュニティに報告済みです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください