FreeRTOS による CMake の使用 - FreeRTOS

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

FreeRTOS による CMake の使用

CMake を使用して FreeRTOS アプリケーションのソースコードからプロジェクトビルドファイルを生成し、ソースコードにビルドして実行するための CMake を開発できます。

IDE を使用して FreerTOS 認定デバイスでコードの編集、デバッグ、コンパイル、フラッシュ、および実行することもできます。各ボード固有の入門ガイドには、特定のプラットフォームで IDE をセットアップするための手順が記載されています。IDE なしで作業する場合は、コードの開発とデバッグ用に他のサードパーティーのコード編集およびデバッグツールを使用してから、CMake を使用してアプリケーションをビルドして実行できます。

CMake をサポートしているボードは次のとおりです。

  • Espressif ESP32-DevKitC

  • Espressif ESP-WROVER-KIT

  • Infineon XMC4800 IoT 接続キット

  • Marvell MW320 AWS IoT Starter Kit

  • Marvell MW322 AWS IoT Starter Kit

  • Microchip Curiosity PIC32MZEF バンドル

  • Nordic nRF52840 DK Development kit

  • STMicroelectronicsSTM32L4 Discovery Kit IoT Node

  • Texas Instruments CC3220SF-LAUNCHXL

  • Microsoft Windows Simulator

FreeRTOS による CMake を使用する方法の詳細については、以下のトピックを参照してください。

Prerequisites

続行する前に、ホストマシンが次の前提条件を満たしていることを確認してください。

  • デバイスのコンパイルツールチェーンは、マシンのオペレーティングシステムをサポートしている必要があります。CMake はWindows、macOS、Linux の全バージョンをサポートしています。

    Windows Subsystem for Linux (WSL) はサポートされていません。Windows マシンでネイティブ CMake を使用します。

  • CMake バージョン 3.13 以降がインストールされている必要があります。

    CMake のバイナリディストリビューションは CMake.org からダウンロードできます。

    注記

    CMake のバイナリディストリビューションをダウンロードする場合は、コマンドラインから CMake を使用する前に、必ず CMake 実行可能ファイルを PATH 環境変数に追加してください。

    macOS では Homebrew、Windows では scoopchocolatey などのパッケージマネージャーを使って CMake をダウンロードしてインストールすることもできます。

    注記

    多くの Linux ディストリビューションのパッケージマネージャーで提供されている CMake パッケージのバージョンは古くなっています。ディストリビューションのパッケージマネージャーで CMake の最新バージョンが提供されていない場合は、 linuxbrew または nix などの代替パッケージマネージャーを試すことができます。

  • 互換性のあるネイティブビルドシステムが必要です。

    CMake は GNU MakeNinja を含む多くのネイティブビルドシステムをターゲットにすることができます。Make と Ninja の両方とも、Linux、macOS、および Windows 上のパッケージマネージャーでインストールできます。Windows で Make を使用している場合は、Equation からスタンドアロンバージョンをインストールすることも、Make をバンドルした MinGW をインストールすることもできます。

    注記

    MinGW の Make 実行可能ファイルは make.exe ではなく mingw32-make.exe と呼ばれます。

    Make よりも高速で、すべてのデスクトップオペレーティングシステムにネイティブサポートを提供するため、Ninja を使用することをお勧めします。

サードパーティーのコードエディタおよびデバッグツールによる FreeRTOS アプリケーションの開発

コードエディタおよびデバッグ拡張機能またはサードパーティーのデバッグツールを使用して、FreeRTOS 用のアプリケーションを開発できます。

たとえば、コードエディタとして Visual Studio を使用すると、コードエディタを使用すると、デバッガーとして Cortex-Debug VS Code 拡張機能をインストールできます。アプリケーションの開発が完了したら、CMake コマンドラインツールを呼び出して VS Code 内からプロジェクトをビルドできます。CMake を使用して FreeRTOS アプリケーションを構築する方法の詳細については、CMake によるFreeRTOS の構築

デバッグの場合、以下のようなデバッグ設定で VS Code を指定できます。

"configurations": [ { "name": "Cortex Debug", "cwd": "${workspaceRoot}", "executable": "./build/st/stm32l475_discovery/aws_demos.elf", "request": "launch", "type": "cortex-debug", "servertype": "stutil" } ]

CMake によるFreeRTOS の構築

CMake はデフォルトであなたのホストオペレーティングシステムをターゲットシステムとしてターゲットにします。クロスコンパイルにこれを使用するためには、CMake には使用するコンパイラを指定するツールチェーンファイルが必要です。FreeRTOS では、にデフォルトのツールチェーンファイルが用意されています。freertos/tools/cmake/toolchains。CMake にこのファイルを提供する方法は、CMake コマンドラインインターフェイスあるいは GUI のどちらを使用しているかに応じて異なります。詳細については、次の「ビルドファイルの生成 (CMake コマンドラインツール)」の手順に従います。CMake のクロスコンパイルの詳細については、公式 CMake Wiki の「クロスコンパイル」を参照してください。

CMake ベースのプロジェクトを構築するには

  1. CMake を実行して、Make や Ninja などのネイティブビルドシステムのビルドファイルを生成します。

    ネイティブビルドシステム用のビルドファイルを生成するには、CMakeコマンドラインツールまたは CMake GUI を使用できます。

    FreeRTOS ビルドファイルの生成については、ビルドファイルの生成 (CMake コマンドラインツール)およびビルドファイルの生成 (CMake GUI)

  2. プロジェクトを実行可能ファイルにするには、ネイティブビルドシステムを起動します。

    FreeRTOS ビルドファイルの作成については、生成されたビルドファイルから FreeRTOS を構築する

ビルドファイルの生成 (CMake コマンドラインツール)

CMake コマンドラインツールを使用して、FreeRTOS 用のビルドファイルを生成できます。ビルドファイルを生成するには、ターゲットボード、コンパイラ、およびソースコードの場所を指定してディレクトリを構築する必要があります。

cmakeには次のオプションを使用できます。

  • -DVENDOR— ターゲットボードを指定します。

  • -DCOMPILER— コンパイラを指定します。

  • -S— ソースコードの場所を指定します。

  • -B— 生成されたビルドファイルの場所を指定します。

注記

コンパイラはシステムの PATH 変数内にあるか、コンパイラの場所を指定する必要があります。

たとえば、ベンダーが Texas Instruments、ボードが CC3220 Launchpad、コンパイラが GCC for ARM の場合、次のコマンドを発行して、現在のディレクトリから build-directory という名前のディレクトリにソースファイルを構築できます。

cmake -DVENDOR=ti -DBOARD=cc3220_launchpad -DCOMPILER=arm-ti -S . -B build-directory
注記

Windows を使用している場合、CMake はデフォルトで Visual Studio を使用するため、ネイティブビルドシステムを指定する必要があります。以下に例を示します。

cmake -DVENDOR=ti -DBOARD=cc3220_launchpad -DCOMPILER=arm-ti -S . -B build-directory -G Ninja

または:

cmake -DVENDOR=ti -DBOARD=cc3220_launchpad -DCOMPILER=arm-ti -S . -B build-directory -G "MinGW Makefiles"

正規表現 ${VENDOR}.*${BOARD}.* は、一致するボードを検索するために使用されるので、VENDORBOARD のオプションにベンダーとボードのフルネームを使用する必要はありません。部分一致は、単一の一致がある場合に限り機能します。たとえば、次のコマンドは同じソースから同じビルドファイルを生成します。

cmake -DVENDOR=ti -DCOMPILER=arm-ti -S . -B build-directory
cmake -DBOARD=cc3220 -DCOMPILER=arm-ti -S . -B build-directory
cmake -DVENDOR=t -DBOARD=cc -DCOMPILER=arm-ti -S . -B build-directory

デフォルトのディレクトリ cmake/toolchains にないツールチェーンファイルを使用する場合は、CMAKE_TOOLCHAIN_FILE オプションを使用できます。以下に例を示します。

cmake -DBOARD=cc3220 -DCMAKE_TOOLCHAIN_FILE='/path/to/toolchain_file.cmake' -S . -B build-directory

ツールチェーンファイルでコンパイラの絶対パスが使用されておらず、コンパイラを PATH 環境変数に追加しなかった場合、CMake はそれを見つけられない可能性があります。CMake がツールチェーンファイルを見つけられるように、AFR_TOOLCHAIN_PATH オプションを使用できます。このオプションは、指定されたツールチェーンディレクトリのパスと bin の下のツールチェーンのサブフォルダを検索します。以下に例を示します。

cmake -DBOARD=cc3220 -DCMAKE_TOOLCHAIN_FILE='/path/to/toolchain_file.cmake' -DAFR_TOOLCHAIN_PATH='/path/to/toolchain/' -S . -B build-directory

デバッグを有効にするには、CMAKE_BUILD_TYPEdebug に設定します。このオプションを有効にすると、CMake はコンパイルオプションにデバッグフラグを追加し、デバッグシンボルを使って FreeRTOS を構築します。

# Build with debug symbols cmake -DBOARD=cc3220 -DCOMPILER=arm-ti -DCMAKE_BUILD_TYPE=debug -S . -B build-directory

また、CMAKE_BUILD_TYPErelease に設定して、コンパイルオプションに最適化フラグを追加することもできます。

ビルドファイルの生成 (CMake GUI)

CMake GUI を使用して FreeRTOS ビルドファイルを生成できます。

CMake GUI でビルドファイルを生成するには

  1. コマンドラインから cmake-gui を発行して GUI を起動します。

  2. [Browse Source (ソースの参照)] を選択してソース入力を指定してから、[Browse Build (ビルドの参照)] を選択してビルド出力を指定します。

  3. [Configure (設定)] を選択し、[Specify the build generator for this project (このプロジェクトのビルドジェネレーターを指定)] で、生成したビルドファイルを構築するために使用するビルドシステムを見つけて選択します。ポップアップウィンドウが表示されない場合は、既存のビルドディレクトリを再利用している可能性があります。この場合、CMake キャッシュを削除するには、キャッシュの削除からのファイルメニュー。

  4. [Specify toolchain file for cross-compiling (クロスコンパイル用にツールチェーンファイルを指定)] を選択してから、[次へ] を選択します。

  5. ツールチェーンファイル (freertos/tools/cmake/toolchains/arm-ti.cmake など) を選択し、[Finish (完了)] を選択します。

    FreeRTOS のデフォルト設定はテンプレートボードです。これはポータブルレイヤーターゲットを提供しません。その結果、ウィンドウに というメッセージが表示されます。

    注記

    次のエラーが表示される場合。

    CMake Error at tools/cmake/toolchains/find_compiler.cmake:23 (message): Compiler not found, you can specify search path with AFR_TOOLCHAIN_PATH.

    コンパイラが PATH 環境変数にないことを示しています。GUI で AFR_TOOLCHAIN_PATH 変数を設定して、コンパイラをインストールした場所を CMake に伝えることができます。AFR_TOOLCHAIN_PATH 変数が見つからない場合、[Add Entry (エントリの追加)] を選択します。ポップアップウィンドウで、[Name (名前)] に AFR_TOOLCHAIN_PATH と入力します。[Compiler (コンパイラ)] にコンパイラへのパスを入力します (C:/toolchains/arm-none-eabi-gcc など)。

  6. GUI は次のようになります。

    [AFR_BOARD] を選択し、ボードを選択してから、もう一度 [設定] を選択します。

  7. [生成] を選択します。CMake はビルドシステムファイル (makefiles や ninja ファイルなど) を生成し、これらのファイルは最初のステップで指定したビルドディレクトリに表示されます。次のセクションの手順に従って、バイナリイメージを生成します。

生成されたビルドファイルから FreeRTOS を構築する

ネイティブビルドシステムによるビルド

出力バイナリディレクトリからビルドシステムコマンドを呼び出すことで、ネイティブビルドシステムで FreeRTOS を構築できます。

たとえば、ビルドファイルの出力ディレクトリが <build_dir> で、ネイティブビルドシステムとして Make を使用している場合は、次のコマンドを実行します。

cd <build_dir> make -j4

CMake による の構築

また、CMake コマンドラインツールを使用して FreeRTOS を構築することもできます。CMake にはネイティブビルドシステムを呼び出すための抽象化レイヤーが用意されています。以下に例を示します。

cmake --build build_dir

CMake コマンドラインツールのビルドモードのその他の一般的な用途は次のとおりです。

# Take advantage of CPU cores. cmake --build build_dir --parallel 8
# Build specific targets. cmake --build build_dir --target afr_kernel
# Clean first, then build. cmake --build build_dir --clean-first

CMake ビルドモードの詳細については、「CMake ドキュメント」を参照してください。