mbed CLI実測フロー

6698 ワード

私はずっとmbedオンラインコンパイラを使っています.このツールはmbed 2時代にはよく機能していましたが、mbed 5以降はオンラインコンパイルARMCCとオフラインツールチェーンMDK 5の違い(ライブラリ関数の違いや実行時の違いを含む)がよく見られます.だからmbed CLIツールの表現をテストしたいです.
インストールツール
Windows 7以上のユーザーに対してmbedは専門のパッケージを提供し、約180 MB前後である.手動でインストールしたい学生は自分でインストールすることができます.
  • Python 2.7.X;
  • mbed-cliツール、pipでインストール;
  • gitツール;
  • hgツール.

  • コマンドラインで、システムパスにあるかどうか、バージョンが適切かどうかをそれぞれテストします.
    テスト環境の構築
    ワークパッドにテストフォルダを作成します.
    D:\MBED\MBED-GO-THROUGH
    └─dev_directory
    
    dev_directoryを作業ディレクトリとして移動し、次のように入力します.
    allankliu@DELL-D520 D:\mbed\mbed-go-through\dev_directory
    > 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 #ca661f9d2852
    

    mbed-osは約500 MBで、導入に時間がかかります.本当のボトルネックはネットワーク接続で、時間がかかり、進捗バーがありません.科学的なインターネット接続方法を自分で探して、十分な帯域幅を確保してください.mbedはHTTPS方式の代わりにSSL方式に構成でき,導入速度を速めることができる.
    ソースコードのコンパイル
  • ターゲットボード:NUCLEO_F103RB
  • ツールチェーン:GCC_ARM
  • まず、この作業ディレクトリをrootとします.入力:
    > mbed config root .
    [mbed] . now set as default root in program "dev_directory"
    
    > mbed deploy
    [mbed] WARNING: Program "dev_directory" in "D:\mbed\mbed-go-through\dev_directory" does not use source control management.
    [mbed] WARNING: To fix this you should use "mbed new ." in the root of your program.
    ---
    [mbed] Updating library "mbed-os-example-blinky\mbed-os" to rev #ca661f9d2852
    [mbed] Couldn't find build tools in your program. Downloading the mbed 2.0 SDK tools...
    

    以上、WARNING/ERROR、私はまだ疑問があります.
    入力:
    > mbed compile -m NUCLEO_F103RB -t GCC_ARM
    Building project dev_directory (NUCLEO_F103RB, GCC_ARM)
    Scan: .
    Scan: mbed
    Scan: env
    Compile [  0.4%]: AnalogIn.cpp
    Compile [  0.7%]: main.cpp
    Compile [  1.1%]: BusIn.cpp
    Compile [  1.4%]: BusInOut.cpp
    Compile [  1.8%]: BusOut.cpp
    Compile [  2.2%]: CAN.cpp
    .
    .
    .
    Compile [ 97.8%]: serial_api.c
    Compile [ 98.2%]: rtc_api.c
    Compile [ 98.6%]: sleep.c
    Compile [ 98.9%]: stm_spi_api.c
    Compile [ 99.3%]: trng_api.c
    Compile [ 99.6%]: us_ticker_16b.c
    Compile [100.0%]: us_ticker_32b.c
    Link: dev_directory
    Elf2Bin: dev_directory
    +--------------------+-------+-------+------+
    | Module             | .text | .data | .bss |
    +--------------------+-------+-------+------+
    | Fill               |    60 |     8 |   14 |
    | Misc               | 22065 |  2492 |  112 |
    | drivers            |   118 |     4 |  100 |
    | hal                |   548 |     0 |   24 |
    | platform           |  1125 |     4 |  270 |
    | rtos               |   491 |     4 | 4360 |
    | rtos/rtx5          |  7924 |   176 | 1368 |
    | targets/TARGET_STM |  6377 |     4 |  432 |
    | Subtotals          | 38708 |  2692 | 6680 |
    +--------------------+-------+-------+------+
    Allocated Heap: unknown
    Allocated Stack: unknown
    Total Static RAM memory (data + bss): 9372 bytes
    Total RAM memory (data + bss + heap + stack): 9372 bytes
    Total Flash memory (text + data + misc): 41400 bytes
    
    Image: .\BUILD\NUCLEO_F103RB\GCC_ARM\dev_directory.bin
    

    このbinファイルをmbed MSDでNUCLEOにダウンロードし、正常に動作します.
    プロジェクトのエクスポート
    入力:
    > mbed export -m NUCLEO_F103RB -i UVISION5
    Using targets from D:\mbed\mbed-go-through\dev_directory\mbed-os-example-blinky\mbed-os\targets\targets.json
    Scan: .
    

    ツールチェーンオプションは-iで、-tではありません.
    MDK 5プロジェクトのコンパイル
    プロジェクトがエクスポートされると、正常に開くことができますが、多くの詳細は自分で確認する必要があります.
  • NUCLEO_F 103 RBのDebuggerオプションがSWD方式に切り替わるかどうか.
  • Flashダウンロードアルゴリズムが指定されているかどうか.
  • プロジェクトオプションは、HEXが情報(デバッグ情報)を出力および参照できるようにするかどうか.

  • コンパイル後、ダウンロードとデバッグを行い、正常に動作します.
    ヘルプ情報
    mbedは自己解釈スクリプトであり、-hオプションで取得できます.
    入力:
    > mbed --help
    usage: mbed [-h] [--version]             ...
    
    Command-line code management tool for ARM mbed OS - http://www.mbed.com
    version 0.9.10
    
    Use 'mbed  -h|--help' for detailed help.
    Online manual and guide available at https://github.com/ARMmbed/mbed-cli
    
    optional arguments:
      -h, --help   show this help message and exit
      --version    print version number and exit
    
    Commands:
    
        new        Create new mbed program or library
        import     Import program from URL
        add        Add library from URL
        remove     Remove library
        deploy     Find and add missing libraries
        publish    Publish program or library
        update     Update to branch, tag, revision or latest
        sync       Synchronize library references
        ls         View dependency tree
        status     Show version control status
    
        compile    Compile code using the mbed build tools
        test       Find, build and run tests
        export     Generate an IDE project
        detect     Detect connected mbed targets/boards
    
        config     Tool configuration
        target     Set or get default target
        toolchain  Set or get default toolchain
    
        help       This help screen
    
    

    コマンドの詳細を知りたい場合は、コマンドの後に「-h」を付けて入力します.
    > mbed config -h
    usage: mbed config [-h] [-G] [-U] [-L] [-v] [-vv] [var] [value]
    
    Gets, sets or unsets mbed tool configuration options.
    Options can be global (via the --global switch) or local (per program)
    Global options are always overridden by local/program options.
    Currently supported options: target, toolchain, protocol, depth, cache
    
    positional arguments:
      var                  Variable name. E.g. "target", "toolchain", "protocol"
      value                Value. Will show the currently set default value for a
                           variable if not specified.
    
    optional arguments:
      -h, --help           show this help message and exit
      -G, --global         Use global settings, not local
      -U, --unset          Unset the specified variable.
      -L, --list           List mbed tool configuration. Not to be confused with
                           compile configuration, e.g. "mbed compile --config".
      -v, --verbose        Verbose diagnostic output
      -vv, --very_verbose  Very verbose diagnostic output
    

    各コマンドをよく見ると、いくつかの発見があります.
  • mbed new --mbedlibは、ソースコードをインポートせずにlibのみをインポートすることができる.

  • まとめ
    簡単なチュートリアルはやっと正常に通り過ぎたが、まだ小さな問題が解決されていない.mbed CLIは簡単なルーチンでF 103 RBのCAN定義の欠落とHardFault実行時の問題が発生しなかったのが良い.しかし、欠点はソースコードのダウンロード、タイのコンパイルに時間がかかり、ハードディスク(HDD)のスペースが多すぎることです.MCUエンジニアリング500 MBで、LEDを切り替えるだけでOS全体をmbed TLSを含めて一緒にコンパイルするのは大げさです.MDK 5と比較してGCC_を使用ARMはかなり速く、GCC_ARMはLinuxでパラレルコンパイルもサポートできます.