翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
FreeRTOS で CMake を使用する
重要
このページで言及している Amazon-FreeRTOS リポジトリは非推奨です。新しいプロジェクトを作成するときは、ここから始めることをお勧めします。現在非推奨の Amazon-FreeRTOS リポジトリをベースにした既存の FreeRTOS プロジェクトが既にある場合は、「Amazon-FreeRTOS Github リポジトリ移行ガイド」を参照してください。
CMake を使用して、FreeRTOS アプリケーションのソースコードからプロジェクトビルドファイルを生成し、ソースコードを構築および実行できます。
また、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 を使用する方法の詳細については、以下のトピックを参照してください 。
前提条件
続行する前に、ホストマシンが次の前提条件を満たしていることを確認してください。
-
デバイスのコンパイルツールチェーンは、マシンのオペレーティングシステムをサポートしている必要があります。CMake はWindows、macOS、Linux の全バージョンをサポートしています。
Windows Subsystem for Linux (WSL) はサポートされていません。Windows マシンでネイティブ CMake を使用します。
-
CMake バージョン 3.13 以降がインストールされている必要があります。
CMake のバイナリディストリビューションは CMake.org
からダウンロードできます。 注記
CMake のバイナリディストリビューションをダウンロードする場合は、コマンドラインから CMake を使用する前に、必ず CMake 実行可能ファイルを PATH 環境変数に追加してください。
macOS では Homebrew
、Windows では scoop や chocolatey などのパッケージマネージャーを使って CMake をダウンロードしてインストールすることもできます。 注記
多くの Linux ディストリビューションのパッケージマネージャーで提供されている CMake パッケージバージョンは です out-of-date。ディストリビューションのパッケージマネージャーで CMake の最新バージョンが提供されていない場合は、
linuxbrew
またはnix
などの代替パッケージマネージャーを試すことができます。 -
互換性のあるネイティブビルドシステムが必要です。
CMake は GNU Make
や Ninja を含む多くのネイティブビルドシステムをターゲットにすることができます。Make と Ninja の両方とも、Linux、macOS、および Windows 上のパッケージマネージャーでインストールできます。Windows で Make を使用している場合は、Equation からスタンドアロンバージョンをインストールすることも、Make をバンドルした MinGW をインストールすることもできます。 注記
MinGW の Make 実行可能ファイルは
make.exe
ではなくmingw32-make.exe
と呼ばれます。Make よりも高速で、すべてのデスクトップオペレーティングシステムにネイティブサポートを提供するため、Ninja を使用することをお勧めします。
サードパーティーのコードエディタおよびデバッグツールによる FreeRTOS アプリケーションの開発
コードエディタとデバッグ拡張機能またはサードパーティーのデバッグツールを使用して、FreeRTOS 用にアプリケーションを開発できます。
たとえば、コードエディタとして Visual Studio
デバッグの場合、以下のようなデバッグ設定で 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 では、
にデフォルトのツールチェーンファイルが用意されています。CMake にこのファイルを提供する方法は、CMake コマンドラインインターフェイスあるいは GUI のどちらを使用しているかに応じて異なります。詳細については、次の「ビルドファイルの生成 (CMake コマンドラインツール)」の手順に従います。CMake でのクロスコンパイルの詳細については、公式の CMake Wiki CrossCompilingfreertos
/tools/cmake/toolchains
CMake ベースのプロジェクトを構築するには
-
CMake を実行して、Make や Ninja などのネイティブビルドシステムのビルドファイルを生成します。
ネイティブビルドシステム用のビルドファイルを生成するには、CMakeコマンドラインツール
または CMake GUI を使用できます。 FreeRTOS ビルドファイルの生成については、「ビルドファイルの生成 (CMake コマンドラインツール)」および「ビルドファイルの生成 (CMake GUI)」を参照してください。
-
プロジェクトを実行可能ファイルにするには、ネイティブビルドシステムを起動します。
FreeRTOS ビルドファイルの作成については、「生成されたビルドファイルから FreeRTOS を構築する」を参照してください。
ビルドファイルの生成 (CMake コマンドラインツール)
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}.*
は、一致するボードを検索するために使用されるので、VENDOR
と BOARD
のオプションにベンダーとボードのフルネームを使用する必要はありません。部分一致は、単一の一致がある場合に限り機能します。たとえば、次のコマンドは同じソースから同じビルドファイルを生成します。
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_TYPE
を debug
に設定します。このオプションを有効にすると、CMake はコンパイルオプションにデバッグフラグを追加し、デバッグシンボルを使って FreeRTOS を構築します。
# Build with debug symbols cmake -DBOARD=cc3220 -DCOMPILER=arm-ti -DCMAKE_BUILD_TYPE=debug -S . -B
build-directory
また、CMAKE_BUILD_TYPE
を release
に設定して、コンパイルオプションに最適化フラグを追加することもできます。
ビルドファイルの生成 (CMake GUI)
CMake GUI を使用して FreeRTOS ビルドファイルを生成できます。
CMake GUI でビルドファイルを生成するには
-
コマンドラインから
cmake-gui
を発行して GUI を起動します。 -
[Browse Source] (ソースの参照) を選択してソース入力を指定してから、[Browse Build] (ビルドの参照) を選択してビルド出力を指定します。
-
[Configure] (設定) を選択し、[Specify the build generator for this project] (このプロジェクトのビルドジェネレーターを指定) で、生成したビルドファイルを構築するために使用するビルドシステムを見つけて選択します。ポップアップウィンドウが表示されない場合は、既存のビルドディレクトリを再利用している可能性があります。この場合、[File] (ファイル) メニューの [Delete Cache] (キャッシュの削除) を選択して CMake キャッシュを削除します。
-
[Specify toolchain file for cross-compiling] (クロスコンパイル用にツールチェーンファイルを指定) を選択してから、[Next] (次へ) を選択します。
-
ツールチェーンファイル (
など) を選択し、[Finish] (完了) を選択します。freertos
/tools/cmake/toolchains/arm-ti.cmakeFreeRTOS のデフォルト設定は、ポータブルレイヤーターゲットが提供されないテンプレートボードです。その結果、ウィンドウに というメッセージが表示されます。
注記
次のエラーが表示される場合。
CMake Error at
tools/cmake/toolchains/find_compiler.cmake:23
(message): Compiler not found, you can specify search path withAFR_TOOLCHAIN_PATH
.コンパイラが
PATH
環境変数にないことを示しています。GUI でAFR_TOOLCHAIN_PATH
変数を設定して、コンパイラをインストールした場所を CMake に伝えることができます。AFR_TOOLCHAIN_PATH
変数が見つからない場合、[Add Entry] (エントリの追加) を選択します。ポップアップウィンドウで、[Name] (名前) にAFR_TOOLCHAIN_PATH
と入力します。[Compiler Path] (コンパイラパス) にコンパイラへのパスを入力します (C:/toolchains/arm-none-eabi-gcc
など)。 -
GUI は次のようになります。
[AFR_BOARD] を選択し、ボードを選択してから、もう一度 [Configure] (設定) を選択します。
-
[Generate] (生成) を選択します。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 ドキュメント