STM32CubeIDEのmakeで使われる環境変数

STM32CubeIDEで今まで使っていた自作書き込みツールを使うために、Project -> Propertys -> C/C++Build ->Settings -> BUile Steps のPost-build stepsに、OpenOCDを呼び出すコマンドを記述することが出来ます。

そのコマンドの中でプロジェクトパス等を指定する環境変数が使えるはずと思い、あちこち検索しても見つからなかったので、環境変数を表示するコマンドを使って調べてみました。

makeの変数一覧を実行するコマンド

@$(foreach v,$(.VARIABLES),$(info $v=$($v)))

表示された変数

CURDIR=D:/work/stm32/project1/Debug

他にもたくさんの変数が表示されますが、書き込むオブジェクトの場所の指定に使えるのはこれだけでした。

STM32CubeIDEのシステム変数

その後、STM32CubeIDEのシステム変数を確認する方法があることに気が付きました。
Project -> Propertys -> C/C++Build ->Build Variables で下のShow system variablesにチェックを入れるとシステム変数一覧が表示されます。

STM32CubeIDEの日本語文字化け

STM32CubeIDEのサポートしている文字コードはUTF-8です。

STM32CubeIDEで作成したソースコードの日本語コメントは正常に表示されますが、他の環境で作ったソースコードを使うときに、日本語が文字化けすることがあります。
その場合はあらかじめソースコードをUTF-8に変換することで日本語を正常に表示することが出来ます。

私の場合は、元の文字コードがSJISだったのでSAKURAエディターでソースを開き、全選択して変換機能を使ってSJIS→UTF-8に変換することで対応しました。

STM32CubeIDE事始め

STM32CubEIDEについて

STマイクロエレクトロニクスから、統合開発環境TrueSTUDIOに、MCUの周辺機能を設定して自動的にライブラリを作成するSTM32CubeMXを組み込んだ無償版の開発環境STM32CubeIDEがリリースされました。

STM32CubeMXとTrueSTUDIOを統合して使い勝手をシンプルにしたというコンセプトで、STマイクロとしては今後、推奨開発環境をSTM32CubeIDE一本に絞るということです。
これまで、stm32シリーズのプログラム開発ツールとして有償無償版を含め、いくつかありましたが、今後は無償版のIDEをメーカーが本腰を入れてサポートするとアナウンスしたことは歓迎できます。

俺様開発環境のJDEからSTM32CubeIDEに移る

私はルネサスのH8、SHシリーズを使っていた時代からこれまで、GCCをベースにした自作の統合開発環境JDEを使ってきました。

JDEを作って使い続けてきた理由の一つは無償版の開発環境がなかったことです。
私の会社の顧客には教育・研究開発機関があり、ユーザーがプログラムを開発・変更出来るように開発環境を含めたシステムを提供することがあるため、高価な有償の開発環境を避けたかったことがあります。

もう一つは、私がかつてのVZエディターやDelphiのDOSIDEキーマップにこだわっているということがありました。
このキーマップは Ctrl-Sで左、Ctrl-Dで右、Ctrl-Eで上、Ctrl-Xで下にカーソルが移るDOSの時代に流行ったものです。
マウスを使わずにコードを編集したいということもありますが、このキーマップに慣れていてWindowsの標準キーマップを使うと、うっかりCtrl-Xを押してラインを消去してしまうことが頻発するためです。

STM32CubeIDEはメーカー推奨の無償版開発環境で、最新のEclipseをベースにしていて、キーのカスタマイズが自由に出来るためほぼ不満のない使い勝手となりました。

もう一つの理由として、STM32CubeIDEがOpenOCDをサポートしてくれたことがあります。
これまでMCUボードへの書き込み手段としてJtagKeyをベースにしたFT2232Dを使った書き込みボードをOpenOCDから使っていました。
この書き込みボードはJtagKeyで空いていた9,10番ピンにFT2232Dで使える仮想 COMポートのTx,Rxを割り当てて、プログラム書き込みと同時にUSBシリアル機能が使えるようにしたもので、リアルタイム制御プログラムで欠かせないシリアルモニタ機能をサポートするものです。

STM32CubeMXがリリースされたときにJDEでCubeMXを使うために、JDEにCubeMX が生成するプロジェクトをインポートする機能を追加したりもしましたが、これから発表される可能性のある新機能に対応していくのも面倒なため、この機会にSTM32CubeIDEを本格的に使い始めることにしました。