/      English

プロジェクトのビルド

プロジェクトのビルド
プロジェクトのビルドについて解説します。

プロジェクトのビルド

プロジェクトのビルドはいくつかの方法で行えます。

  • MCUXpresso IDE 上でのビルド: MCU-Linkによるデバッグを行う場合など。半導体メーカがメンテナンスしているため、特有の機能が利用できます。ただし TWELITE での実装は、半導体メーカの標準的な想定と違う場合もありますので、すべての機能が利用できるわけではありません。
  • make によるビルド: 従来と同様のビルド方法です。いくつかのツールから make を呼び出せるようにしています。MCU-Linkデバッガは利用できません。
    • TWELITE STAGE アプリ : ビルドから書き込み、実行までを行うユーティリティです。対象プロジェクトをVSCodeにて開く機能もあります。
    • VSCode : コード解釈のための定義とビルド(make)のためのTaskが定義されています。提供されるアプリ・サンプルには VSCode用の定義がないものもあります。事前に環境変数の設定が必要で、Windows向けに環境変数の設定を行いつつVSCodeを起動するためのバッチファイルやスクリプトを用意しています。
    • Windows 上のコマンドウインドウ (bash): 必要な環境変数の設定が行われた bash や cmd.exe を起動するためのバッチファイルを用意しています。
    • Windows上のWSL上から、上記の Windows 上の make ユーティリティを呼び出すためのバッチファイルやスクリプトを準備しています。

MCUXpressoの場合


標準画面レイアウト(C/C++ Perspective) を前提に解説します。(参考:画面レイアウトについて


ここでは、プロジェクトをビルドし、マイコン上で動作する実行バイナリ (.bin) を生成します。

まず最初にビルドしたいプロジェクトを [Proejct Explorer] で開いておきます。

プロジェクトを開く

プロジェクトを開く

TWENET ライブラリを開く場合と閉じておく場合で振る舞いが違います。

  • TWENETライブラリを開いておくと、必要であればライブラリの再ビルドを行います。デバッグを行うような場合は、ライブラリコードを開くことも多いため、開いておくことを推奨します。
  • TWENETライブラリを閉じておくと、ライブラリの再ビルドは行わないためビルド工程は短く済みます。

ビルドを行うには対象のプロジェクトが開かれた状態で金槌のアイコンからビルド構成を選択します。

金槌アイコン

金槌アイコン

ビルド関連の操作方法は複数あります。以下に例を挙げますが、詳しくは Eclipse のマニュアルを参照下さい。

  • 選択中のビルド定義でのビルド
    • MCUXpresso QuickStart Panel 中の[Build]アイコンをクリックする
    • メニューより [Project]>[Build Project] を選択する
    • [Project Explorer]でプロジェクトの最上位フォルダを右クリックメニューより [Build Project] を選択する
  • 選択中のビルド定義でのクリーン(中間ファイルを削除)
    • MCUXpresso QuickStart Panel 中の[Clean]アイコンをクリックする
    • メニューより [Project]>[Clean…] を選択する
    • [Project Explorer]でプロジェクトの最上位フォルダを右クリックメニューより [Clean Project] を選択する

ビルドを実行すると [Console] にビルド経過が表示されます。

ビルド時のコンソール画面

ビルド時のコンソール画面

ビルドが成功したかどうかは、エラーメッセージの有無と .bin ファイルの生成で確認して下さい。

arm-none-eabi-g++ -nostartfiles -nostdlib -s ...               <=== リンカ
Memory region         Used Size  Region Size  %age Used
   FLASH_PROGRAM:       72184 B       640 KB     11.01%
            SRAM:       40516 B      89056 B     45.49%
       SRAM_USER:          0 GB        32 KB      0.00%
        SRAM_AUX:          0 GB        16 KB      0.00%
 SRAM_HEAP_FIXED:          0 GB         8 KB      0.00%
      SRAM_STACK:          8 KB         8 KB    100.00%
        SRAM_MAC:          0 GB         1 KB      0.00%
Finished building target: App_Twelite.axf
 
Performing post-build steps
sh ../scripts/dk6_image.sh "App_Twelite.axf"  "App_Twelite" ...
--- Image information ---                                      <=== elf形式のオブジェクト
   text	   data	    bss	    dec	    hex	filename
  71944	    240	  48196	 120380	  1d63c	App_Twelite.axf
--- Check Python command ---                                   <=== イメージ署名で使う Python のチェック
Python 3.9.9
--- dk6_imag_tool.py ---                                       <=== イメージ署名
AXF image signature: py.exe -3 ../scripts/dk6_image_tool.py -s 294912  "App_Twelite.axf"
No compatibility list
boot block offset = 119f8
Writing checksum 04030a54 to file App_Twelite.axf
Writing CRC32 of header 3ab5fee4 to file App_Twelite.axf
Binary size is 00011a18 (72216)
--- Generate bin ---                                           <=== .bin を生成
copy from `App_Twelite.axf' [elf32-littlearm] to `App_Twelite.bin' [binary]

VSCodeの場合

MWSDKに附属するアプリやサンプルコードのプロジェクトディレクトリには .vscode ディレクトリが含まれますが、いくつかの環境変数の設定が必要です。(.vscodeディレクトリが準備されていないプロジェクトもあります)

環境変数を設定してVSCodeを起動する方法は以下です。

  • TWELITE STAGE の設定で VS Code で開くオプションを指定し、TWELITE STAGE から該当のプロジェクトを開く。
  • Windows: MWSDK/scripts/WIN_CODE.cmd から起動する。(事前に code コマンドで VSCode が立ち上がるようにインストール作業を済ませておく必要があります。実行後、コマンドプロンプトの画面が表示されたままになります)
  • Windows: MWSDK/scripts/WIN_CODE.cmd からコマンドプロンプトを表示し、code コマンドを実行する。(事前に code コマンドで VSCode が立ち上がるようにインストール作業を済ませておく必要があります)
  • Windows: MWSDK/scripts/WIN_WSL.cmd から WSL プロンプトを表示し、mwcode.shコマンドを実行する。(WSL の事前インストールが必要です。サポート問い合わせ外の方法です。内容は mwcode.sh を直接参照してください)
環境変数内容
MWSDK_ROOTMWSDKのルートディレクトリC:/Work/MWSTAGE/MWSDK/
MWSDK_ROOT_WINNAME上記、Windows名C:\Work\MWSTAGE\MWSDK\
MWSDK_TWENET_LIBSRCライブラリへのディレクトリC:/Work/MWSTAGE/MWSDK/TWENET/current/
MWSDK_MAKE_JOBS並列ジョブ数-j8
MWSDK_MAKE_DISABLE_LTOLTOの有無DISABLE_LTO=1またはDISABLE_LTO=0

VSCode上で推奨されるプラグイン

  • C/C++
  • C/C++ Extension Pack

VSCode 上の操作

  • C/C++ Configuration (下部ステータスバー右下に TWELITE ??? のように表示されている) ⇒ コード解釈の対象を選択します。(TWELITE BLUE/RED/GOLD)
    • エディタ上のコード解釈はあくまでも編集の作業性の目的です。コンパイル時に発生するエラーとは通常一致せず、エディタ上のコード解釈のエラーは参考までにとどめてください。
    • GOLDでのコード解釈においては解釈エラーが多く出る場合があります。作業性が悪い場合はBLUE/REDの設定にするのも選択肢です。
  • Terminal メニューから Run Task… ⇒ ビルドやクリーンを行う。

コマンドラインの場合

または このバッチファイルは実行に必要な環境変数を設定します。

bashの場合

MWSDK/scripts/WIN_BASH.cmd (msys bash)を実行します。

以下のような画面が表示されます。MyName@MyPC から始まる行はインストール状況によって変わります。

MyName@MyPC /c/Work/MWSTAGE/MWSDK
MWSDK$ 

Act_samples/BRD_APPTWELITEをビルドする場合は、以下のような操作を行います。

MyName@MyPC /c/Work/MWSTAGE/MWSDK
MWSDK$ cd Act_samples/BRD_APPTWELITE/build

MyName@MyPC /c/Work/MWSTAGE/MWSDK/Act_samples/BRD_APPTWELITE/build
MWSDK$ make TWELITE=GOLD
...
!!!TARGET=BRD_APPTWELITE_GOLD_L1305_V0-2-1.bin

MyName@MyPC /c/Work/MWSTAGE/MWSDK/Act_samples/BRD_APPTWELITE/build
MWSDK$

cmd.exeの場合

MWSDK/scripts/WIN_CMD.cmd (Windows の cmd.exe) を実行します。

Microsoft Windows [Version 10.0.22621.1848]
(c) Microsoft Corporation. All rights reserved.

C:\Work\MWSTAGE\MWSDK>

Act_samples/BRD_APPTWELITEをビルドする場合は、以下のような操作を行います。

C:\Work\MWSTAGE\MWSDK>cd Act_samples\BRD_APPTWELITE\build

C:\Work\MWSTAGE\MWSDK\Act_samples\BRD_APPTWELITE\build>make TWELITE=GOLD
...
!!!TARGET=BRD_APPTWELITE_GOLD_L1305_V0-2-1.bin

C:\Work\MWSTAGE\MWSDK\Act_samples\BRD_APPTWELITE\build>

WSL からのビルド

本機能は、サポート問い合わせ対象外です

Linux上でのビルドではなくWindows上のビルド環境をWSLから呼び出すためのスクリプトを用意しています。

事前に WSL が動作するようにインストールを済ませておきます。

MWSDK/scripts/WIN_WSL.cmd を実行します。WSLのコマンドウインドウが表示されます。

MyName@MyPC /mnt/c/Work/MWSTAGE/MWSDK
$

Act_samples/BRD_APPTWELITEをビルドする場合は、以下のような操作を行います。

MyName@MyPC /mnt/c/Work/MWSTAGE/MWSDK
$ cd Act_samples/BRD_APPTWELITE/build/
MyName@MyPC /mnt/c/Work/MWSTAGE/MWSDK/Act_samples/BRD_APPTWELITE/build
$ mwbash.sh make TWELITE=GOLD
...
!!!TARGET=BRD_APPTWELITE_GOLD_L1305_V0-2-1.bin
MyName@MyPC /mnt/c/Work/MWSTAGE/MWSDK/Act_samples/BRD_APPTWELITE/build
$ 

mwbash.shは上述のbash環境からmakeを実行するためのスクリプトです。

参考: Windows 用の VSCode を起動するための mwcode.sh も用意しています。第一引数に.vscodeが格納されているプロジェクトフォルダを指定します。

MyName@MyPC /mnt/c/Work/MWSTAGE/MWSDK/Act_samples/BRD_APPTWELITE
$ mwcode.sh .