SW4STM32アプリケーションのSTM32CubeIDE移設
4.コンパイルエラーがファームウェア起因かを確認するため、ファームウェアだけをFW_F1 V1.8.0からF1BaseboardTemplate 開発当時のFW_F1 V1.4.0へ戻します。但し、CubeIDE「プラグイン版CubeMX」は、ファームウェアを旧版へ戻す機能がありません。そこで、「スタンドアロン版CubeMX」を使ってファームウェアをFW_F1 V1.4.0へ戻し、再度コード生成を行うと、コンパイルエラーは発生しません。 ※スタンドアロン版CubeMXでファームウェアを元の版数へ戻す方法は、4章で説明します。
STM32CubeMXコード生成ファームウェア変更方法:4章
1.スタンドアロン版CubeMXのProject Managerクリックで表示されるダイアログ一番下のUse Default Firmware Locationの☑を外し、BrowseクリックでRepositoryフォルダ内の旧版ファームウェア:STM32Cube_FW_V1.4.0を選択します。
※CubeIDEプラグイン版CubeMX(2つ前の図)は、Use Default Firmware Location自体有りません。つまり、最新ファームウェアでのみコード生成が可能です。 ※CubeMXのGenerate Reportは、コード生成時の各種パラメタをPDF形式で出力する優れた機能です。しかし、肝心のコード生成ファームウェア版数が現状では出力されません。PDF出力へ手動で使用ファームウェア版数を追記することをお勧めします。
トラブルシューティング:5章
1.CubeIDEのエラーメッセージは、Symbol ‘LCD_EN_Pin’ could not be resolvedです。main.hで定義済みなので、なぜresolveできないのか不可解です。
2.そこで、Lcd.cの#include関連を見ると、#include “UserDefine.h”はあります。 ※弊社テンプレートは、UserDefine.hでツール生成以外の全てのユーザ追加定義を記述し、全ソースファイルへincludeする方式を用いています。 ※一方、CubeIDEは、CubeMXで生成するmain.cソースファイル1つへ、全ての制御を記述する方式を用いています。小規模なサンプルプロジェクトなどでは、解り易い方法です。 ※但し、規模が大きくなると、ソースファイルを機能毎に分離し、ファイル単位の流用性やメンテナンス性を上げたくなり、弊社は、このファイル分離方法をテンプレートに採用中です。
3.UserDefine.hに、#include “main.h”の1行を追加します。
UserDefine.hへ#include “main.h” 追加
4.Clear Project後、Build Projectでコンパイルエラーは解消し、コンパイル成功します。評価ボード:STM32F103RBでF1BaseboardTemplate の最新開発環境での正常動作確認ができます。
最新開発環境への移設まとめ:6章
2017年9月にSW4STM32で開発完了したSTM32Fxテンプレートは、UserDefine.hに、#include “main.h”追記で、2019年11月STM32MCU最新開発環境:STM32CubeIDE v1.1.0、STM32CubeMX v5.4.0、STM32Cube FW_F1 V1.8.0/FW_F0 V1.11.0へ移設できます。
2019年6月にSW4STM32で開発完了したSTM32G0xテンプレートは、なにもせずに、2019年11月最新開発環境:STM32CubeIDE v1.1.0、STM32CubeMX v5.4.0、STM32Cube FW_G0 V1.3.0へ移設できます。 ※STM32G0xテンプレートは、初めからUserDefine.hに、#include main.hが追記済みです。
Build Analyzer最初の図で示したG0AdcTemplate移設後のCubeIDE Build Analyzerを示します。RAM、FLASH使用率が一目で解ります。その他のIDE画面や操作は、旧SW4STM32と殆ど同じです。
Serial ConsoleCubeIDEは、Serial Console画面を持っています。従来環境では別途必要であったVirtual COM Port (VCP)用のTera Termなどのツールが不要となり、IDEだけでVCP入出力が確認できます。高まるVCP重要性が最新IDEへ反映されたと思います(関連投稿:STLINK-V3の4章)。
但し、バックグラウンドが、Tera Termの黒からSerial Console画面では白になったため、テンプレートで用いたVCP出力文字色を、デフォルトの白から黒へ変更した方が見易いです。この色変更後のSerial Consoleが下図右側です。
最新開発環境移設の課題と対策、テンプレート改版予定
現状のCubeIDE v1.1.0は、コード生成後、日本語コメントに文字化けが発生します。また、エディタタブ幅が2のまま変更できません。これら以外にも細かな不具合があります。このままでは、筆者には使いにくいIDEです。一方、Build AnalyzerやSerial Consoleは、とても役立ちます。 CubeIDEプラグイン版CubeMX v5.4.0は、Repository旧ファームウェアへの変更機能が無く、最新ファームウェアのみ利用可能です。
STマイクロエレクトロニクスのSTM32CubeIDE v1.1.0改版により、旧SW4STM32開発アプリケーションを新環境へ移設する連続3回の投稿、いかがでしたでしょうか? 詳細説明がリンク先となり、筆者にしては長文投稿でしたので、解りづらかったかもしれません😌。
P.S:2019年11月12日、2か月遅れでWindows 10 1909配布が始まりました。年2回のWindows 10大型更新トラブル話は多数あります。MCU開発環境は、年2回どころか度々更新されます。開発者は、その度にトラブル対処をしているのです👍。ちなみに本稿は、全てWindows 10 1903での結果です。
金曜新着10投稿
- AI PCと脳老化
- ASRock Ryzen AI Max+ 395搭載ミニPC発表
- デスクトップOneDrive利用方法
- AM5⽤Ryzen AI 400シリーズ発売
- 進化と退化
- AI PCソフトウェアのLLMとMCP
- EVO-X2とFEVM FA-EX9
- Copilot PC変化の兆し
- EVO-X2とMS-S1 Max
- 体調不良のため今週休みます
カテゴリー
- MCU:マイコン (587)
- RAマイコン (66)
- RL78マイコン (217)
- LPCマイコン (186)
- Kinetisマイコン (140)
- STM32マイコン (169)
- PSoC/PRoCマイコン (121)
- MSP432マイコン (45)
- Cortex-M0+コア (216)
- Cortex-M0コア (156)
- Cortex-M3コア (83)
- Cortex-M33コア (112)
- Cortex-M4コア (101)
- LibreOffice (34)
- Linux (19)
- Windows (128)
- サイト関連 (20)