FreeRTOS에서 CMake 사용 - FreeRTOS

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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 시작 키트

  • Marvell MW322 AWS IoT 시작 키트

  • Microchip Curiosity PIC32MZEF 번들

  • Nordic nRF52840 DK 개발 키트

  • STMicroelectronicsSTM32L4 Discovery Kit IoT 노드

  • Texas Instruments CC3220SF-LAUNCHXL

  • Microsoft Windows Simulator

FreeRTOS에서 CMake를 사용하는 방법에 대한 자세한 내용은 아래 주제를 참조하세요.

필수 조건

계속하기 전에 호스트 시스템이 다음 사전 조건을 충족하는지 확인하십시오.

  • 디바이스의 컴파일 도구 체인이 컴퓨터의 운영 체제를 지원해야 합니다. CMake는 모든 버전의 Windows, macOS 및 Linux를 지원합니다.

    Linux용 Windows 하위 시스템(WSL)은 지원되지 않습니다. Windows 시스템에서 네이티브 CMake를 사용합니다.

  • CMake 버전 3.13 이상이 설치되어 있어야 합니다.

    CMake.org에서 CMake의 바이너리 배포를 다운로드할 수 있습니다.

    참고

    CMake 바이너리 배포를 다운로드하는 경우 명령줄에서 CMake를 사용하기 전에 CMake 실행 파일을 PATH 환경 변수에 추가해야 합니다.

    또한 macOS에서 homebrew, Windows에서 scoop이나 chocolatey와 같은 패키지 관리자를 사용하여 CMake를 다운로드하고 설치할 수 있습니다.

    참고

    많은 Linux 배포판에 대한 패키지 관리자에 제공되는 CMake 패키지 버전은 최신 버전이 아닙니다. 배포의 패키지 관리자에 최신 버전의 CMake가 포함되어 있지 않으면 linuxbrew 또는 nix와 같은 다른 패키지 관리자를 사용해 볼 수 있습니다.

  • 호환 가능한 네이티브 빌드 시스템이 있어야 합니다.

    CMake는 GNU Make 또는 Ninja 등의 많은 네이티브 빌드 시스템을 대상으로 할 수 있습니다. Make와 Ninja는 모두 Linux, macOS 및 Windows의 패키지 관리자를 사용하여 설치할 수 있습니다. Windows에서 Make를 사용하는 경우 수식에서 독립 실행형 버전을 설치하거나 Make를 번들로 제공하는 MinGW를 설치할 수 있습니다.

    참고

    MinGW의 Make 실행 파일은 make.exe가 아니라 mingw32-make.exe입니다.

    Ninja는 Make보다 빠르며 모든 데스크톱 운영 체제에 네이티브 지원을 제공하므로 Ninja를 사용하는 것이 좋습니다.

타사 코드 편집기 및 디버깅 도구를 사용하여 FreeRTOS 애플리케이션 개발

코드 편집기, 디버깅 확장 또는 타사 디버깅 도구를 사용하여 FreeRTOS용 애플리케이션을 개발할 수 있습니다.

예를 들어 Visual Studio Code를 코드 편집기로 사용하는 경우 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의 CrossCompiling을 참조하십시오.

CMake 기반의 프로젝트를 빌드하려면
  1. CMake를 실행하여 Make 또는 Ninja와 같은 네이티브 빌드 시스템용 빌드 파일을 생성합니다.

    CMake 명령줄 도구 또는 CMake GUI를 사용하여 네이티브 빌드 시스템용 빌드 파일을 생성할 수 있습니다.

    FreeRTOS 빌드 파일 생성에 대한 자세한 내용은 빌드 파일 생성(CMake 명령줄 도구)빌드 파일 생성(CMake GUI) 섹션을 참조하세요.

  2. 네이티브 빌드 시스템을 호출하여 프로젝트를 실행 파일로 만듭니다.

    FreeRTOS 빌드 파일 생성에 대한 자세한 내용은 생성된 빌드 파일에서 FreeRTOS 빌드 섹션을 참조하세요.

빌드 파일 생성(CMake 명령줄 도구)

CMake 명령줄 도구(cmake)를 사용하여 FreeRTOS 빌드 파일을 생성할 수 있습니다. 빌드 파일을 생성하려면 대상 보드, 컴파일러, 소스 코드와 빌드 디렉터리의 위치를 지정해야 합니다.

cmake에는 다음 옵션을 사용할 수 있습니다.

  • -DVENDOR - 대상 보드를 지정합니다.

  • -DCOMPILER - 컴파일러를 지정합니다.

  • -S - 소스 코드의 위치를 지정합니다.

  • -B - 생성된 빌드 파일의 위치를 지정합니다.

참고

컴파일러는 시스템의 PATH 변수에 있어야 하며 그렇지 않은 경우 컴파일러의 위치를 지정해야 합니다.

예를 들어, 공급업체가 Texas Instruments이고 보드가 CC3220 Launchpad이며 컴파일러가 ARM용 GCC인 경우, 다음 명령을 실행하여 현재 디렉터리에서 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

Or:

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. 구성을 선택하고 Specify the build generator for this project(이 프로젝트에 대한 빌드 생성기 지정)에서 생성된 빌드 파일을 빌드하는 데 사용할 빌드 시스템을 찾아서 선택합니다. 팝업 창이 보이지 않으면 기존 빌드 디렉터리를 재사용하는 것일 수 있습니다. 이 경우 파일 메뉴에서 캐시 삭제를 선택하여 CMake 캐시를 삭제합니다.

  4. Specify toolchain file for cross-compiling(교차 컴파일을 위한 도구 체인 파일 지정)을 선택하고 다음을 선택합니다.

  5. 도구 체인 파일(예: freertos/tools/cmake/toolchains/arm-ti.cmake)을 선택하고 완료를 선택합니다.

    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 Path(컴파일러 경로)에 컴파일의 경로를 입력합니다(예: 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 설명서를 참조하십시오.