IAR Embedded Workbench でのCMake 使用

テクニカル・ノート 190701

アーキテクチャ:

8051, Arm, AVR, MSP430, RH850, RISC-V, RL78, RX, V850

コンポーネント:

general

更新日:

2020/06/03 9:40

免責事項

IARシステムズはCMakeプラットフォーム自体をサポートしていません。 CMakeの使用または設定の問題に関しては、プロバイダにお問い合わせください。

CMakeコンセプトの基本的な理解と、コマンドラインからIARビルドツールを使用する方法を理解していることを前提としています。

 

はじめに

CMake は、ソフトウェアをビルド、テスト、およびパッケージ化するために設計されたオープンソースのクロスプラットフォームファミリのツールです。 プラットフォームおよびコンパイラに依存しない構成ファイルを使用して、ソフトウェアのコンパイルプロセスを制御します。 このテクニカルノートでは、CMakeをIAR Embedded Workbenchと併用する方法を示しますが、LinuxでIAR Build Toolsを使用する場合にも適用されます。

解説

インストールが必要なツール

  • IAR Embedded Workbench for 8051, Arm, AVR, MSP430, RH850, RISC-V, RL78, RX, V850 (Windows) あるいは IAR Build Tools for Arm, RH850 (Linux).
  • CMake v3.15.7 以降
  • Microsoft NMake (CMakeはさまざまなmakefile およびワークスペース形式を生成できます。この例では、NMakeを使用しています)

便利なように、CMakeおよびNMake実行可能ファイルへのパスがWindows PATH環境変数に追加されていることを確認してください。 完全なパスを指定せずにこれらの実行可能ファイルを実行できます。

.

toolchain file (toolchain-ewarm.cmake)の準備

クロスコンパイルのシナリオでは、コンパイラ、アセンブラ、リンカ、およびそれぞれのオプション設定に関する情報とともに「ツールチェーンファイル」(.cmake)を指定する必要があります。 次のファイルは、IAR Embedded Workbench for Arm version 8.xに使用できます。:

### BEGIN CMAKE_TOOLCHAIN_FILE
# "Generic" is used when cross compiling
set(CMAKE_SYSTEM_NAME Generic)

# Set the EW installation root directory
#(Avoid spaces in the path or you need to escape them)
set(EW_ROOT_DIR "c:/ew/arm-8323/arm")

# Compiler flags needed to compile for this CPU
set(CPU_FLAGS "--cpu ARM9E")

# Set up the CMake variables for compiler and assembler
# (The reason for both C and CXX variables is that CMake
# treats C and C++ tools individually)
set(CMAKE_C_COMPILER "${EW_ROOT_DIR}/bin/iccarm.exe" "${CPU_FLAGS} --dlib_config normal")
set(CMAKE_CXX_COMPILER "${EW_ROOT_DIR}/bin/iccarm.exe" "${CPU_FLAGS} --dlib_config normal")
set(CMAKE_ASM_COMPILER "${EW_ROOT_DIR}/bin/iasmarm.exe" "${CPU_FLAGS}")

# Set up the CMake variables for the linker
set(LINKER_SCRIPT "${EW_ROOT_DIR}/config/linker/ST/str91xFx44.icf")
set(CMAKE_C_LINK_FLAGS "--semihosting --config ${LINKER_SCRIPT}")
set(CMAKE_CXX_LINK_FLAGS "--semihosting --config ${LINKER_SCRIPT}")
### END CMAKE_TOOLCHAIN_FILE

次の2つの例では、IAR Embedded Workbench for Arm、CMake、およびNMakeを使用して実行可能ファイルをビルドします。 ファイル構成は、CMakeLists.txtファイルの内容とともに説明されています。

例 1 – Mixing C and assembler

このでは、アセンブラとCソースファイルの両方で構成されるアプリケーションをビルドする方法を示します。 また、ソースファイルで使用されるプリプロセッサシンボルをCMake環境で設定する方法も示します。

機能

アセンブラ関数から返された整数値は、C main()関数でコンソールに出力されます。

例 2 – Creating and using libraries

この例 では、ライブラリが作成され、続いてデモプロジェクトでこのライブラリが使用されます。

機能

整数(入力値に1を加えた値)を返す関数を含むライブラリが構築されます。 次のステップでは、このライブラリを使用して、C main()関数で値をコンソールに出力するアプリケーションがビルドされます。

例のビルド

上記の各例を次のようにビルドします:

1.    CMake 実行

例のフォルダで、次のCMakeコマンドラインを使用して、ビルドフォルダーにメイクファイルを作成します:

cmake -H. -Bbuild -G "NMake Makefiles" -DCMAKE_TOOLCHAIN_FILE=toolchain-ewarm.cmake

2.    NMake 実行

ビルドフォルダで、次のコマンドラインを使用して実行可能ファイルmy_program.elfを作成します:

Nmake Makefile
 

デバッグ

上記の例をダウンロードすると、アプリケーションをビルドし、それらをコマンドラインユーティリティcspybat.exeを介してC-SPYバッチモードで実行するバッチファイルが含まれています。

 

IAR Embedded Workbench IDEを使用して、CMakeでビルドされたアプリケーションなど、IDEの外部でビルドされたアプリケーションをC-SPYをロードすることもできます。 このような「デバッグのみ」のプロジェクトは、実行可能ファイルを再構築するたびに再利用でき、設定する必要があるプロジェクトオプションはデバッガ関連のもののみです。 詳細な手順については、このTechnical Noteを参照してください。

まとめ

このテクニカルノートは、IAR Embedded Workbench用にCMakeを使用してビルドするための基本的な知識を提供し、CMakeでビルドされたイメージをデバッグする方法に関する提案します。

 

CMakeは現在、ARM、RL78、RH850、RX、AVR、RISC-V、またはMSP430用のIAR Embedded Workbenchをサポートするように適応しています。 将来、CMakeチームは他のIAR Embedded Workbench製品のサポートを追加する可能性があります。

 

全ての製品名は、それぞれの所有者の商標または登録商標です

申し訳ございませんが、弊社サイトではInternet Explorerをサポートしていません。サイトをより快適にご利用いただくために、Chrome、Edge、Firefoxなどの最新ブラウザをお使いいただきますようお願いいたします。