Mbed OS 2をMbed OS 5 CLIで動かす
前回の記事で、Mbed OS 5のCLIをインストールし実際にARMを動かすのをお見せしました。Mbed OS 5に対応していないボードをtargetにすると、そのままではコンパイルできないのでイマイチ使い物にならないと思い込んでましたが、実は(まぁ当たり前ですが)そんなことはありませんでした。GitHubのMbed CLIのページを見るとMbed OS 2を動かせるとあります。引用すると、
$ mbed new mbed-classic-program --mbedlib [mbed] Creating new program "mbed-classic-program" (git) [mbed] Adding library "mbed" from "https://mbed.org/users/mbed_official/code/mbed/builds" at latest revision in the current branch [mbed] Downloading mbed library build "f9eeca106725" (might take a minute) [mbed] Unpacking mbed library build "f9eeca106725" in "D:\Work\examples\mbed-classic-program\mbed" [mbed] Updating reference "mbed" -> "https://mbed.org/users/mbed_official/code/mbed/builds/f9eeca106725" [mbed] Couldn't find build tools in your program. Downloading the mbed 2.0 SDK tools...
とこれはWidowsでの動作例ですが、--mbedlibオプションで昔のmbedライブラリまるごとごっそりとgitで引っ張ってくることができるようです。しかし、実際にやってみると、
$ mbed new mbed-classic-program --mbedlib [mbed] Creating new program "classic-test" (git) [mbed] Adding library "mbed" from "https://mbed.org/users/mbed_official/code/mbed/builds" at latest revision in the current branch [mbed] Updating reference "mbed" -> "https://mbed.org/users/mbed_official/code/mbed/builds/tip" [mbed] Couldn't find build tools in your program. Downloading the mbed 2.0 SDK tools...
となり、mbedライブラリをダウンロードしません。mbed-classic-program/mbedのディレクトリが空っぽです。
ならばマニュアルで強引にライブラリをダウンロードしようと、ブラウザでhttps://os.mbed.com/users/mbed_official/code/mbed/にアクセスし、ダウンロードレポジトリのzipファイルをクリックしてダウンロードしてきました。unzipしてできたファイルを丸ごと、先のmbed-classic-program/mbedにコピーしてしまうと、一応、プロジェクト内のファイル構成がおなじになるはずです。
ターゲットをLPC11U35のQuickStart Board互換(秋月で売ってる互換ボード)として、Lチカのmain.cppを適当にこしらえ、コンパイルしてみます。
$ cat main.cpp #include "mbed.h" DigitalOut led(P0_8); int main() { led = 0; while(1) { led = !led; wait(0.5); } } $ mbed compile -m lpc11u35_401 Building project mbed-classic-program (LPC11U35_401, GCC_ARM) Scan: . Scan: env Scan: mbed Compile [100.0%]: main.cpp Link: mbed-classic-program Elf2Bin: mbed-classic-program +--------------------------+-------+-------+------+ | Module | .text | .data | .bss | +--------------------------+-------+-------+------+ | BUILD/lpc11u35_401 | 228 | 4 | 24 | | [fill] | 281 | 0 | 6 | | [lib]/c_nano.a | 2391 | 100 | 12 | | [lib]/gcc.a | 1044 | 0 | 0 | | [lib]/mbed.a | 1368 | 0 | 30 | | [lib]/misc | 244 | 8 | 28 | | mbed/TARGET_LPC11U35_401 | 2928 | 8 | 24 | | Subtotals | 8484 | 120 | 124 | +--------------------------+-------+-------+------+ Total Static RAM memory (data + bss): 244 bytes Total Flash memory (text + data): 8604 bytes Image: ./BUILD/lpc11u35_401/GCC_ARM/mbed-classic-program.bin
はい。これでMbed OS 2のボードでも無事にMbed CLIでビルドすることができました。やれやれ。