鳥なき里のマイコン屋(158) Mbedオンライン環境からKeil Studio Cloud

Joseph Halfmoon

インストールせずに(また無料で)Arm用のオブジェクトを生成できるArm社Mbed Online Compilerにはお世話になっております。しかし環境の移行を促すメッセージが表示されるようになってまいりました。移行先は Keil Studio Cloudです。機能拡張は良いのですが今までのソースの移行は大丈夫か?

大分前に新環境のアナウンスがあったものの、Mbed Online Compilerは直ぐに使えなくなるわけじゃないし、ということで高をくくって対応してませんでした。しかし、とうとうMbed Online Compilerの画面を開くと「移行を促すオレンジ色のバーが表示」されるようになり、別件で慌てることになりました。

今回はArm Mbed Online Compilerの上部に出現したバーの下にある、Keil Studio Cloudを開くスイッチから、Keil Studio CloudにログインしてKeil Studio Cloudを使ってみたいとおもいます。試してみるのは、

    1. Mbed Online Compiler側のプロジェクトインポート
    2. インポートしたプロジェクトのビルド
    3. 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

チェックして、Copy programボタンを押すと最初の2つ(三上先生御ソース)はほとんど一瞬でコピーが終わりました。しかし、残りの1個モダンOSの方は終わりません。こんな感じ。

COPYresults

三上先生の御ソースはMbed OS2 で、「モダンOSのお砂場」の方はMbed OS6です。Keil Studio Cloudのドキュメントを見ると、サポートしているのは Mbed OS6、OS5、OS2なのですが、新しいOS6推奨、OS2は要注意に思われたので実は逆の状況を想像してました。どうも3個目のコピーは失敗のようなので、このウインドウをCancelして閉じました。COPY成功した2プロジェクトはワークスペースにコピーされてます。失敗したプロジェクトも「残骸」がありましたがよろしくないようです。この件についてはまた今度だな~。

インポートしたプロジェクトをビルドして実行

さてインポートしたMbed OS2のプロジェクト「手習ひデジタル信号処理(44)適応線スペクトル強調器、学習同定法+Leaky LMS版とな」で使ったものを「ハンマー」アイコンを押してビルドしてみます。ビルドの末尾はこんな結果です。ALEsampleBuild

問題なくビルド成功。現状のデフォルト設定ではビルド後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書き込みまでです。

サンプルプロジェクトを開いたところが以下に。

Example

クリーン・ビルドした結果の末尾付近のログは以下です。

ExampleBuildResults

ビルドできたので、NUCLEO-F401REボードを接続してみます。Target hardwareをみると自動認識されているのが分かります。

ExampleConnected

認識されているのなら、書き込みできるじゃろ~と、右向き三角のRUNボタンを押してみます。その結果の末尾が以下に。エラーぼろぼろ。ダメです。RUN_ERROR

「エラーの元」を調べてみると以下でした。なんじゃらほい?

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

ますSTM32 ST-LINK Utilityの起動画面が以下に。Keil Studio Cloudからうまく見えない状態であるとST-LINK Utilityでも接続されていないように見えます。STLink

そこでSettings を開き、以下のように

    • Connect Under Reset
    • Hardware Reset

を選択してOKと。STLinkRESET

ST-LINKユーティリティに接続されました。このままだとボードとST-LINKユーティリティが接続されているので、忘れずにST-LINKユーティリティを立ち下げます。そしてからKeil Studio CloudでRun.

こんな感じ。RunOK

おお、書き込み成功。F401REボード上でLチカ動いておるようです。次回はデバッグかね。しかし、プロジェクトの移行ができなかった件も気になるし。。。

鳥なき里のマイコン屋(157) M5StackでもGo! TinyGoで6機種目 へ戻る

鳥なき里のマイコン屋(159) Keil Studio Cloudへの移行、TIPS? へ進む