年末で閉鎖のArm Online Compilerの移行方法の1番手はKeil Studio Cloudへの自動COPYです。COPY成功しても古いAPIを使っていると新しいAPIで動作しているKeil Studio CloudのIDE上はエラーが出る件(けれどビルド可能)、一番ボロボロだったケース、ご参考まで。
※「モダンOSのお砂場」投稿順Indexはこちら
Keil Studio Cloud 上で使えるOnline Complierからのプロジェクトの自動コピー機能を使えば、多くのプロジェクトをOnline Compilerから「救い出す」ことが可能です。ただし、前回述べたとおり、行先のターゲットボードのKeil Studio Clouldでのサポートが十分でないケース(例BBC micro:bit)は失敗することがあるかもしれません(個人の経験です。)
今回は、自動コピー機能で救い出せ、かつ、Keil Studio Clould上でビルド可能、そして実行OKであったけれども、IDE上は「ボロボロ」に見えるケースです。自動コピー機能でOS2プロジェクトをコピーするとまず間違いなく遭遇することになるケースですが、今回のはOS5プロジェクトでした。OS5レベルでもダメダメに見えることがあるのね。知らんけど。
コピー成功後のプロジェクトフォルダ
自動コピーは短く済むプロジェクトは結構素早く行われるのですが、今回のプロジェクトについては結構時間かかってました。ハングしたのかと思って一度閉じてしまいました。そして開きなおしたらプロジェクトがコピーされてました。該当プロジェクトをターゲットプロジェクトに設定し、ターゲットボードは大丈夫なハズのNucleo-F401REに設定してみました。こんな感じ。
この時点で、赤の×印が登場しており、通常であればビルドできない雰囲気です。
IDE上で問題を列挙してくれる Problemsタブを見ると以下のとおり。まあOnline Compiler上ではエラーにならないソースなのによくもまあここまでエラーがでるもんだと。大体 mbed.hがnot foundってどういうこと!
ソースを開けば上記の問題報告を反映し、以下のように真っ赤。こうもボロボロでは。。。
なお、ライブラリを確認してみたら、OS5.7.0でした。数年前に練習したプロジェクトだったのでOS2かと思ったけれど、Threadとか使っているからOS5だったのね。意外と新しいじゃん。
それでもビルドしてみる
上のようにIDE上ではエラー出まくりでも、ビルドできるケースをやってきているので、ためらわずビルドボタンを押します(ホントにダメなケースはビルドボタンを押すこともできませぬ。)
Build succeeded とな。ビルドできたじゃん。
オブジェクトファイルをNucleo-F401REボードへ書き込んで、仮想シリアル端末(TeraTermPro)でUSBシリアルを眺めてみればこんな感じ。
動いておるみたいよの。ボロボロに見えても大丈夫です。