MbedのWeb開発環境で、Nucleo用にプログラムを書いていて、気になっていたものがあるのです。Exportメニューの最初に現れてくる
SW4STM32
というツールです。そんなメニューの先頭に出てくるくらいだから、きっとMbedからの移行は簡単なのに違いない。ローカルな環境だから、GUIからデバッガ使えてきっと嬉しい。などと考えて、ちょっと触ってみることにいたしました。
※「鳥なき里のマイコン屋」投稿順Indexはこちら
早速、OpenSTM32.orgへ行ってダウンロードし、インストールいたしました。デスクトップにならぶSTM32用ツールのアイコンが素晴らしい。
今回インストールしてみたのは一番右のSystem Workbench for STM32です。ST社「純正」のSTM32CubeIDE同様、EclipseベースのIDEでgccツールチェーンです。同じマイコン・ファミリをターゲットに同じような構成の開発環境が複数あるというのも、目出度いことです。比べてみるのもまたよろしいかと。
インストール後、早速起動してみます。同じEclipseとは言え、各社スプラッシュ画面は特徴をだしていますな。
OpenSTM32自体は、オープンなコミュニティだということですが、
ac6
というのが、それを支える中核企業で、ツールの会社であるようです。
さて、Mbedからイクスポートしたプロジェクトをこの環境でビルドするにあたり、2種類のプロジェクトを用意しました。ぶっちゃけ、
そうは問屋が卸さない、何かトラブるに決まっている
という予想があったためです。ボタンをちょっと押しただけで環境の移植が完了するなら世話は無い、と。2種類、Mbed OSのバージョンを変えてみました。
-
- OS2のBlinky
- OS5のThreadのトレーニングプログラム、このとき作ったもの
結論から言うと、トラブったのは、マルチスレッドでもない OS 2の超単純なBlinky(いわゆるLチカ)の方でした。インポートし、ビルドを掛けるとエラーで落ちます。ログ見ていると、mainプログラムのコンパイルは通っているのですが、ELF型式のオブジェクトを作るリンクで失敗していました。何が悪いのだろう。また後で調べることにして、難しい方の OS 5のプログラムもビルドしてみます。複数スレッドで同期もとっているプログラムですが、こちらの方は、何の問題もなく、ビルド完了。OS5のイクスポートでは、OSを構成する各種機能はソースでイクスポートされるので、全部をコンパイルしなければならず時間がかなりかかりますが、ただしくmakeファイルなどが構成されビルドできている模様。それに対してOS2のイクスポートでは、main以外の構成要素は皆オブジェクトファイル供給なので、コンパイル時間はかからないのですが、どうも、その後のリンクの設定に何か問題があるようです。
できたバイナリファイルを Nucleo F401REに書き込めば、動作OK. 次回は、デバッガ使えるようにしないと。