オフィシャルのドキュメント
「Github: Arm Mbed Command Line Interface https://github.com/ARMmbed/mbed-cli」
「arm MBED https://os.mbed.com/docs/v5.9/tools/installation-and-setup.html」
日本語の解説
「Toyomasa Watarai」さんの「mbed オフラインの開発環境」
「Yoshihiro TSUBOI」さんの「[lang:ja] mbed CLIをWindowsで使ってみる(環境構築編)」
@matsujirushiさんの「Arm Mbed CLIの環境構築 for Windows」
WindowsまたはMac OS Xの場合は専用のインストーラーがあるようですが、もろもろのツールを手動インストールしていました。
以下、PowerShellで作業しました。
手動でインストールしたプログラムの確認
Python
PS D:\> python --version Python 2.7.14
Git
PS D:\> git --version git version 2.16.2.windows.1
Mercurial
PS D:\> hg --version Mercurial - 分散構成管理ツール(バージョン 4.6.1) (詳細は https://mercurial-scm.org を参照) Copyright (C) 2005-2018 Matt Mackall and others 本製品はフリーソフトウェアです。 頒布条件に関しては同梱されるライセンス条項をお読みください。 市場適合性や特定用途への可否を含め、 本製品は無保証です。
GCC
PS D:\> arm-none-eabi-gcc --version arm-none-eabi-gcc.exe (GNU Tools for Arm Embedded Processors 7-2018-q2-update) 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907] Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
GCCはGCC 7をインストールしてPATHを通していますが、mbed-cliでcompileするとエラーが出たので、別にインストールしているGCC 6をmbed-cliの環境設定で指定して使用しました(後述)。
エラーメッセージ
PS D:\Users\gizmo\Documents\mbed\mbed-os-example-blinky> mbed compile -t GCC_ARM -m NUCLEO_F446RE [Error] @,: Compiler version mismatch: Have 7.3.1; expected version >= 6.0.0 and < 7.0.0
mbed-cliのアップデート
PS D:\Users\gizmo\Documents\mbed> pip install -U mbed-cli Collecting mbed-cli Downloading https://files.pythonhosted.org/packages/dc/42/8c4d0ac81a063074a62143aeb136035c9d80517bdaf611603fefe2b67856/mbed_cli-1.7.5-py2-none-any.whl (47kB) 100% |################################| 51kB 1.2MB/s Installing collected packages: mbed-cli Found existing installation: mbed-cli 1.7.3 Uninstalling mbed-cli-1.7.3: Successfully uninstalled mbed-cli-1.7.3 Successfully installed mbed-cli-1.7.5 You are using pip version 9.0.1, however version 18.0 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' command.
mbed-cliを新規インストールする場合は
pip install mbed-cliとUpdateするオプションの「-U」を省いてやればだいじょうぶだと思います。
念の為ですが、パスの「gizmo」はWindowsのUser名で「D:\Users\gizmo\Documents\mbed\」をmbedの作業フォルダとしています。
mbed-cliはPythonスクリプトでPythonのインストール・フォルダ下にあります。
C:\Python27\Scripts
Exampleのインポート
まずはLチカです。mbed-os-example-blinkyをインポートしました。
インポートにまずまず時間はかかりますが、インポート完了時に反応がないので適当にEnterキーを押します。
PS D:\Users\gizmo\Documents\mbed> mbed import mbed-os-example-blinky [mbed] Importing program "mbed-os-example-blinky" from "https://github.com/ARMmbed/mbed-os-example-blinky" at latest revision in the current branch [mbed] Adding library "mbed-os" from "https://github.com/ARMmbed/mbed-os" at rev #f8b140f8d7cb
インポートしたフォルダのサイズ:695MB
環境変数の設定
前述の通り、mbed-cliの環境設定でGCC 6のパスを指定します。PS D:\Users\gizmo\Documents\mbed\mbed-os-example-blinky> mbed config -G GCC_ARM_PATH "D:\GNU Tools ARM Embedded\6.2 2016q4\bin" [mbed] D:\GNU Tools ARM Embedded\6.2 2016q4\bin now set as global GCC_ARM_PATH
mbed-cliの設定の確認
PS D:\Users\gizmo\Documents\mbed\mbed-os-example-blinky> mbed config --list [mbed] Global config: GCC_ARM_PATH=D:\GNU Tools ARM Embedded\6.2 2016q4\bin [mbed] Local config (D:\Users\gizmo\Documents\mbed\mbed-os-example-blinky): No local configuration is set
パソコンに繋がっているmbedボードの検出
mbedボード(今回はNucleo F446RE)をUSBでパソコンに繋ぎ、確認します。PS D:\Users\gizmo\Documents\mbed\mbed-os-example-blinky> mbed detect [mbed] Detected NUCLEO_F446RE, port COM4, mounted I:, interface version 0221: [mbed] Supported toolchains for NUCLEO_F446RE +---------------+-----------+-----------+-----------+-----------+-----------+ | Target | mbed OS 2 | mbed OS 5 | ARM | GCC_ARM | IAR | +---------------+-----------+-----------+-----------+-----------+-----------+ | NUCLEO_F446RE | Supported | Supported | Supported | Supported | Supported | +---------------+-----------+-----------+-----------+-----------+-----------+ Supported targets: 1 Supported toolchains: 3
コンパイル
PS D:\Users\gizmo\Documents\mbed\mbed-os-example-blinky> mbed compile -t GCC_ARM -m NUCLEO_F446RE Building project mbed-os-example-blinky (NUCLEO_F446RE, GCC_ARM) Scan: . Scan: mbed Scan: env Compile [ 0.2%]: mbed_tz_context.c <中略> Compile [100.0%]: test_env.cpp Link: mbed-os-example-blinky Elf2Bin: mbed-os-example-blinky +------------------+-------+-------+------+ | Module | .text | .data | .bss | +------------------+-------+-------+------+ | [fill] | 119 | 4 | 14 | | [lib]\c.a | 24641 | 2472 | 56 | | [lib]\gcc.a | 3168 | 0 | 0 | | [lib]\misc | 252 | 16 | 28 | | main.o | 68 | 4 | 28 | | mbed-os\drivers | 192 | 4 | 100 | | mbed-os\hal | 1653 | 4 | 68 | | mbed-os\platform | 2764 | 260 | 133 | | mbed-os\rtos | 8498 | 168 | 6073 | | mbed-os\targets | 8583 | 4 | 552 | | Subtotals | 49938 | 2936 | 7052 | +------------------+-------+-------+------+ Total Static RAM memory (data + bss): 9988 bytes Total Flash memory (text + data): 52874 bytes Image: .\BUILD\NUCLEO_F446RE\GCC_ARM\mbed-os-example-blinky.bin
出来上がった「.\BUILD\NUCLEO_F446RE\GCC_ARM\mbed-os-example-blinky.bin」をオンラインコンパイラと同じようにNucleoF446REのフォルダにDrag&Dropすれば実行されます。
<追記:2018.09.20>
コマンドラインに「-f」オプションを付けると、compile後、自動的にパソコンにつないでいるTarget Boardにバイナリが書き込まれます。
> mbed compile -t GCC_ARM -m NUCLEO_F446RE -f
</追記>
プロジェクトの新規作成
Lチカ・プログラムを新規作成します。プログラム名はblink2としてExampleより素早くチカチカするようにしました。空のプロジェクトを作成します。
PS D:\Users\gizmo\Documents\mbed> mbed new blink2 [mbed] Creating new program "blink2" (git) [mbed] Adding library "mbed-os" from "https://github.com/ARMmbed/mbed-os" at branch/tag "latest" [mbed] Updating reference "mbed-os" -> "https://github.com/ARMmbed/mbed-os/#f8b140f8d7cb226e41486c5df66ac4f3ce699219" The following paths are ignored by one of your .gitignore files: mbed-os.lib Use -f if you really want to add them.
環境の確認
作成したプロジェクト・ディレクトリに移動して環境を確認。PS D:\Users\gizmo\Documents\mbed> cd blink2 PS D:\Users\gizmo\Documents\mbed\blink2> mbed config --list [mbed] Global config: GCC_ARM_PATH=D:\GNU Tools ARM Embedded\6.2 2016q4\bin [mbed] Local config (D:\Users\gizmo\Documents\mbed\blink2): No local configuration is set
main.cppを作成
#include "mbed.h" DigitalOut led1(LED1); // main() runs in its own thread in the OS int main() { while (true) { led1 = !led1; wait(0.1); led1 = !led1; wait(0.1); } }
ファイルの確認
PS D:\Users\gizmo\Documents\mbed\blink2> ls ディレクトリ: D:\Users\gizmo\Documents\mbed\blink2 Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2018/08/26 14:58 mbed-os -a---- 2018/08/26 14:59 8 .mbed -a---- 2018/08/26 15:00 215 main.cpp -a---- 2018/08/26 14:59 78 mbed-os.lib -a---- 2018/08/26 14:59 1469 mbed_settings.py
コンパイル
PS D:\Users\gizmo\Documents\mbed\blink2> mbed compile -t GCC_ARM -m NUCLEO_F446RE Building project blink2 (NUCLEO_F446RE, GCC_ARM) Scan: . Scan: mbed Scan: env Compile [ 0.2%]: mbed_tz_context.c <中略> Compile [100.0%]: test_env.cpp Link: blink2 Elf2Bin: blink2 +------------------+-------+-------+------+ | Module | .text | .data | .bss | +------------------+-------+-------+------+ | [fill] | 87 | 4 | 14 | | [lib]\c.a | 24641 | 2472 | 56 | | [lib]\gcc.a | 3168 | 0 | 0 | | [lib]\misc | 252 | 16 | 28 | | main.o | 100 | 4 | 28 | | mbed-os\drivers | 192 | 4 | 100 | | mbed-os\hal | 1653 | 4 | 68 | | mbed-os\platform | 2764 | 260 | 133 | | mbed-os\rtos | 8498 | 168 | 6073 | | mbed-os\targets | 8583 | 4 | 552 | | Subtotals | 49938 | 2936 | 7052 | +------------------+-------+-------+------+ Total Static RAM memory (data + bss): 9988 bytes Total Flash memory (text + data): 52874 bytes Image: .\BUILD\NUCLEO_F446RE\GCC_ARM\blink2.bin
出来上がった「.\BUILD\NUCLEO_F446RE\GCC_ARM\blink2.bin」をDrag&Dropです。
複数のプロジェクトを管理
下記のドキュメントを参考にすれば、mbed-osをダウンロードする時間とディスクスペースを節約できそうです。「Managing multiple Mbed projects」
0 件のコメント:
コメントを投稿