インストールせずに(また無料で)Arm用のオブジェクトを生成できるArm社Mbed Online Compilerにはお世話になっております。しかし環境の移行を促すメッセージが表示されるようになってまいりました。移行先は Keil Studio Cloudです。機能拡張は良いのですが今までのソースの移行は大丈夫か?
※「鳥なき里のマイコン屋」投稿順Indexはこちら
大分前に新環境のアナウンスがあったものの、Mbed Online Compilerは直ぐに使えなくなるわけじゃないし、ということで高をくくって対応してませんでした。しかし、とうとうMbed Online Compilerの画面を開くと「移行を促すオレンジ色のバーが表示」されるようになり、別件で慌てることになりました。
今回はArm Mbed Online Compilerの上部に出現したバーの下にある、Keil Studio Cloudを開くスイッチから、Keil Studio CloudにログインしてKeil Studio Cloudを使ってみたいとおもいます。試してみるのは、
-
- Mbed Online Compiler側のプロジェクトインポート
- インポートしたプロジェクトのビルド
- Keil Studio Cloud側のサンプルプロジェクトをビルドして実行(WebアプリケーションからのFlash書き込み)
です。
プロジェクトのインポート
Mbed Online Compiler(にログインした状態)からKeil Studio Cloudを開こうとすると再びログインを求められます。現状は再度Mbed Online Compilerのログイン画面が表示されるのでまったく同じユーザ名でロゴインします。するとKeil Studio Cloudに接続されます。
Keil Studio Cloudに接続すると以下のMbed Online Compilerのプロジェクトをコピーするためのウインドウが開きます。今回は「手習ひデジタル信号処理」シリーズで使わせていただいている三上先生の御ソースのプロジェクト2つと、「モダンOSのお砂場」で使用した自作ソースのプロジェクト1つをインポートしてみました。なお、このコピーウインドウはデフォルトで毎回表示されてます。
チェックして、Copy programボタンを押すと最初の2つ(三上先生御ソース)はほとんど一瞬でコピーが終わりました。しかし、残りの1個モダンOSの方は終わりません。こんな感じ。
三上先生の御ソースはMbed OS2 で、「モダンOSのお砂場」の方はMbed OS6です。Keil Studio Cloudのドキュメントを見ると、サポートしているのは Mbed OS6、OS5、OS2なのですが、新しいOS6推奨、OS2は要注意に思われたので実は逆の状況を想像してました。どうも3個目のコピーは失敗のようなので、このウインドウをCancelして閉じました。COPY成功した2プロジェクトはワークスペースにコピーされてます。失敗したプロジェクトも「残骸」がありましたがよろしくないようです。この件についてはまた今度だな~。
インポートしたプロジェクトをビルドして実行
さてインポートしたMbed OS2のプロジェクト「手習ひデジタル信号処理(44)適応線スペクトル強調器、学習同定法+Leaky LMS版とな」で使ったものを「ハンマー」アイコンを押してビルドしてみます。ビルドの末尾はこんな結果です。
問題なくビルド成功。現状のデフォルト設定ではビルド後Mbed Online Compiler同様に、生成したオブジェクトファイルがダウンロードされてきます。
Nucleo-F446REを接続してみます。Mbed Online Compilerで行うのと同様にPC上でストレージデバイスに見えているF446REにダウンロードしたオブジェクトファイルを書き込んでみます。OK、動きました。
なんだ、Mbed Online Compilerでやっていることと同等な作業はまったく問題なくできるじゃん。簡単だね。
サンプル「Lチカ」プロジェクトを直接書き込み
Keil Studio Cloudを開くとデフォルトで mbed-os-example-blinkyというプロジェクトがインストール済でした。ターゲットデバイスはNUCLEO-F401REです。これは気を効かせて自動インストールしてくれているのか、いや、以前、一度、Keil Studio Cloudを開いてしまったときに自分でやった仕業なのか?委細は不明。しかし、このプロジェクトを使って Keil Studio Cloud がMbed Online Compilerと大きく異なる「売り」の部分
WebアプリケーションからPCに接続したマイコンボードを直接操作する
を確かめてみたいと思います。デバッグもできる筈なのですが、今回やってみたのはFlash書き込みまでです。
サンプルプロジェクトを開いたところが以下に。
クリーン・ビルドした結果の末尾付近のログは以下です。
ビルドできたので、NUCLEO-F401REボードを接続してみます。Target hardwareをみると自動認識されているのが分かります。
認識されているのなら、書き込みできるじゃろ~と、右向き三角のRUNボタンを押してみます。その結果の末尾が以下に。エラーぼろぼろ。ダメです。
「エラーの元」を調べてみると以下でした。なんじゃらほい?
Connect ('haltOnConnect') to device STM32F401RETx... RDDI-DSL ERROR: vRviTTAPSeqSim::RunSequence(): SDS_ERR_SESSION_COMMS_FAIL : SDS session comms failed.
調べてみると、Mbed Online CompilerからKeil Studio Cloudへの移行で同じような目にあっている人がいるみたいでした。コミュニティのページが以下に。
Migration from MBED-Online-Compiler to Keil-Cloud-Studio
上記を参照し、STマイクロエレクトロニクス社の純正ツール、STM32 ST-Linkユーティリティ(以前からたまにお世話になっているので当方インストール済です)でNucleo-F401ボード搭載のST-Linkにハードリセットをかけてみることにいたしました。なお、いろいろやっていたら別のマイコン(うさちゃん)に接続したUSBシリアルの誤認という事態もあったので
-
- Nuceo-F401以外のUSBシリアルは外した
状態で作業いたしました。なお、ST社のST-LINKユーティリティのページは以下に。
ますSTM32 ST-LINK Utilityの起動画面が以下に。Keil Studio Cloudからうまく見えない状態であるとST-LINK Utilityでも接続されていないように見えます。
そこでSettings を開き、以下のように
-
- Connect Under Reset
- Hardware Reset
ST-LINKユーティリティに接続されました。このままだとボードとST-LINKユーティリティが接続されているので、忘れずにST-LINKユーティリティを立ち下げます。そしてからKeil Studio CloudでRun.
おお、書き込み成功。F401REボード上でLチカ動いておるようです。次回はデバッグかね。しかし、プロジェクトの移行ができなかった件も気になるし。。。