Menggunakan CMake dengan FreeRTOS

Anda dapat menggunakan CMake untuk menghasilkan file build proyek dari kode sumber aplikasi FreeRTOS, dan untuk membangun dan menjalankan kode sumber.

Anda juga dapat menggunakan IDE untuk mengedit, men-debug, mengkompilasi, mem-flash, dan menjalankan kode pada perangkat yang memenuhi syarat Freertos. Setiap panduan Memulai khusus papan mencakup instruksi untuk menyiapkan IDE untuk platform tertentu. Jika Anda lebih suka bekerja tanpa IDE, Anda dapat menggunakan alat pengeditan dan debugging kode pihak ketiga lainnya untuk mengembangkan dan men-debug kode Anda, dan kemudian menggunakan CMake untuk membangun dan menjalankan aplikasi.

Papan berikut mendukung CMake:

  • Espressif ESP32-DevKit C
  • Espressif ESP-WROVER KIT
  • Kit Konektivitas IoT Infineon XMC4800
  • KitAWS IoT Pemula Marvell MW320
  • KitAWS IoT Pemula Marvell MW322
  • Bundel Microchip Keingintahuan PIC32MZEF
  • Kit Pengembangan Nordic NRF52840 DK
  • Kit Penemuan STMicroelectronicsSTM32L4 IoT Node
  • Texas Instruments CC3220SF-LAUNCHXL
  • Microsoft Windows Simulator Simulator Windows Simulator

Lihat topik di bawah ini untuk informasi selengkapnya tentang cara menggunakan CMake dengan FreeRTOS.

Topik
  • Prasyarat
  • Mengembangkan aplikasi FreeRTOS dengan editor kode pihak ketiga dan alat debugging
  • Membangun FreeRTOS dengan CMake

Prasyarat

Pastikan mesin host Anda memenuhi prasyarat berikut sebelum melanjutkan:

  • Toolchain kompilasi perangkat Anda harus mendukung sistem operasi alat berat. CMake mendukung semua versi Windows, dan LinuxSubsistem Windows untuk Linux (WSL) tidak didukung. Gunakan CMake asli pada mesin Windows.
  • Anda harus menginstal CMake versi 3.13 atau lebih tinggi.Anda dapat mengunduh distribusi biner CMake dari CMake.org.
    catatan

    Jika Anda mengunduh distribusi biner CMake, pastikan Anda menambahkan CMake yang dapat dieksekusi ke variabel lingkungan PATH sebelum Anda menggunakan CMake dari baris perintah.

    Anda juga dapat mengunduh dan menginstal CMake menggunakan pengelola paket, seperti homebrew di macOS, dan scoop atau chocolatey di Windows.

    catatan

    Versi paket CMake yang disediakan dalam manajer paket untuk banyak distribusi Linux adalah out-of-date. Jika manajer paket distribusi Anda tidak menyediakan versi terbaru CMake, Anda dapat mencoba manajer paket alternatif, sepertilinuxbrew ataunix.

  • Anda harus memiliki sistem build native yang kompatibel.CMake dapat menargetkan banyak sistem build asli, termasuk GNU Make atau Ninja. Make dan Ninja dapat diinstal dengan manajer paket di Linux, macOS dan Windows. Jika Anda menggunakan Make on Windows, Anda dapat menginstal versi mandiri dari Equation, atau Anda dapat menginstal MinGW, yang dibuat bundel.
    catatan

    Make executable di MinGW disebutmingw32-make.exe, bukanmake.exe.

    Kami menyarankan Anda menggunakan Ninja, karena lebih cepat daripada Make dan juga menyediakan dukungan asli untuk semua sistem operasi desktop.

Mengembangkan aplikasi FreeRTOS dengan editor kode pihak ketiga dan alat debugging

Anda dapat menggunakan editor kode dan ekstensi debugging atau alat debugging pihak ketiga untuk mengembangkan aplikasi untuk FreeRTOS.

Jika, misalnya, Anda menggunakan Visual Studio Code sebagai editor kode Anda, Anda dapat menginstal ekstensi Cortex-Debug VS Code sebagai debugger. Ketika Anda selesai mengembangkan aplikasi Anda, Anda dapat memanggil alat baris perintah CMake untuk membangun proyek Anda dari dalam VS Code. Untuk informasi selengkapnya tentang cara menggunakan CMake untuk membangun aplikasi FreeRTOS, lihatMembangun FreeRTOS dengan CMake.

Untuk debugging, Anda dapat memberikan Kode VS dengan konfigurasi debug yang mirip dengan berikut ini:

 

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

Membangun FreeRTOS dengan CMake

CMake menargetkan sistem operasi host Anda sebagai sistem target secara default. Untuk menggunakannya untuk kompilasi silang, CMake memerlukan file toolchain, yang menentukan compiler yang ingin Anda gunakan. Di FreeRTOS, kami menyediakan file toolchain default difreertos/tools/cmake/toolchains. Cara untuk menyediakan file ini ke CMake tergantung pada apakah Anda menggunakan antarmuka baris perintah CMake atau GUI. Untuk lebih jelasnya, ikutiMenghasilkan file build (alat baris perintah CMake) petunjuk di bawah ini. Untuk informasi lebih lanjut tentang cross-compiling di CMake, lihat CrossCompilingdi wiki CMake resmi.

Untuk membangun proyek berbasis CMake
  1. Jalankan CMake untuk menghasilkan file build untuk sistem build asli, seperti Make atau Ninja.Anda dapat menggunakan alat baris perintah CMake atau CMake GUI untuk menghasilkan file build untuk sistem build asli Anda.

    Untuk informasi tentang membuat file build FreeRTOS, lihatMenghasilkan file build (alat baris perintah CMake) danMenghasilkan file build (CMake GUI).

  2. Memanggil sistem build asli untuk membuat proyek menjadi executable.Untuk informasi tentang membuat file build FreeRTOS, lihatMembangun FreeRTOS dari file build yang dihasilkan.

Menghasilkan file build (alat baris perintah CMake)

Anda dapat menggunakan alat baris perintah CMake (cmake) untuk menghasilkan file build untuk FreeRTOS. Untuk menghasilkan file build, Anda perlu menentukan papan target, kompiler, dan lokasi kode sumber dan direktori build.

Anda dapat menggunakan opsi berikut untuk cmake:

  • -DVENDOR- Menentukan papan target.
  • -DCOMPILER- Menentukan compiler.
  • -S- Menentukan lokasi kode sumber.
  • -B- Menentukan lokasi file build yang dihasilkan.

 

catatan

Compiler harus dalamPATH variabel sistem, atau Anda harus menentukan lokasi kompilator.

Misalnya, jika vendornya adalah Texas Instruments, dan papannya adalah Launchpad CC3220, dan kompilernya adalah GCC untuk ARM, Anda dapat mengeluarkan perintah berikut untuk membuat file sumber dari direktori saat ini ke direktori bernamabuild-directory:

 

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

Jika Anda menggunakan Windows, Anda harus menentukan sistem build asli karena CMake menggunakan Visual Studio secara default. Misalnya:

 

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

Atau:

 

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

Ekspresi reguler${VENDOR}.* dan${BOARD}.* digunakan untuk mencari papan yang cocok, sehingga Anda tidak perlu menggunakan nama lengkap vendor dan papan untukVENDOR danBOARD pilihan. Nama sebagian bekerja, asalkan ada satu pertandingan. Misalnya, perintah berikut menghasilkan file build yang sama dari sumber yang sama:

 

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

Anda dapat menggunakanCMAKE_TOOLCHAIN_FILE opsi jika Anda ingin menggunakan file toolchain yang tidak terletak di direktori defaultcmake/toolchains. Misalnya:

 

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

Jika file toolchain tidak menggunakan path absolut untuk compiler Anda, dan Anda tidak menambahkan compiler Anda ke variabelPATH lingkungan, CMake mungkin tidak dapat menemukannya. Untuk memastikan bahwa CMake menemukan file toolchain Anda, Anda dapat menggunakanAFR_TOOLCHAIN_PATH opsi tersebut. Opsi ini mencari jalur direktori toolchain yang ditentukan dan subfolder toolchain di bawahbin. Misalnya:

 

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

Untuk mengaktifkan debugging, aturCMAKE_BUILD_TYPE kedebug. Dengan opsi ini diaktifkan, CMake menambahkan tanda debug ke opsi kompilasi, dan membangun FreeRTOS dengan simbol debug.

 

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

Anda juga dapat mengaturCMAKE_BUILD_TYPE torelease untuk menambahkan bendera optimasi ke opsi kompilasi.

Menghasilkan file build (CMake GUI)

Anda dapat menggunakan CMake GUI untuk menghasilkan file build FreeRTOS.

Untuk menghasilkan file build dengan CMake GUI
  1. Dari baris perintah, masalahcmake-gui untuk memulai GUI.
  2. Pilih Jelajahi Sumber dan tentukan input sumber, lalu pilih Jelajahi Bangun dan tentukan keluaran build.
  3. Pilih Konfigurasi, dan di bawah Tentukan generator build untuk proyek ini, temukan dan pilih sistem build yang ingin Anda gunakan untuk membuat file build yang dihasilkan. jika Anda tidak melihat jendela pop up, Anda mungkin menggunakan kembali direktori build yang ada. Dalam hal ini, hapus cache CMake dengan memilih Hapus Cache dari menu File.
  4. Pilih Tentukan file toolchain untuk kompilasi silang, lalu pilih Berikutnya.
  5. Pilih file toolchain (misalnya,freertos/tools/cmake/toolchains/arm-ti.cmake), lalu pilih Selesai.Konfigurasi default untuk FreeRTOS adalah papan template, yang tidak menyediakan target lapisan portabel apa pun. Akibatnya, sebuah jendela muncul dengan pesan .
    catatan

    Jika Anda melihat kesalahan berikut:

     

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

    Ini berarti compiler tidak dalam variabelPATH lingkungan Anda. Anda dapat mengaturAFR_TOOLCHAIN_PATH variabel dalam GUI untuk memberitahu CMake di mana Anda menginstal compiler Anda. Jika Anda tidak melihatAFR_TOOLCHAIN_PATH variabelnya, pilih Add Entry. Di jendela pop up, di bawah Nama, ketikAFR_TOOLCHAIN_PATH. Di bawah Compiler Path ketik path ke kompiler Anda. misalnya,C:/toolchains/arm-none-eabi-gcc.

  6. GUI seharusnya terlihat seperti ini:

    Pilih AFR_BOARD, pilih papan Anda, lalu pilih Konfigurasikan lagi.

  7. Pilih Hasilkan. CMake menghasilkan file sistem build (misalnya, makefiles atau file ninja), dan file-file ini muncul di direktori build yang Anda tentukan pada langkah pertama. Ikuti petunjuk di bagian berikutnya untuk menghasilkan gambar biner.

Membangun FreeRTOS dari file build yang dihasilkan

Membangun dengan sistem build asli

Anda dapat membangun FreeRTOS dengan sistem build asli dengan memanggil perintah sistem build dari direktori binari keluaran.

Misalnya, jika direktori keluaran file build Anda<build_dir>, dan Anda menggunakan Make as your native build system, jalankan perintah berikut:

 

cd <build_dir>
make -j4

Membangun dengan CMake

Anda juga dapat menggunakan alat baris perintah CMake untuk membangun FreeRTOS. CMake menyediakan lapisan abstraksi untuk memanggil sistem build asli. Misalnya:

 

cmake --build build_dir

Berikut adalah beberapa kegunaan umum lainnya dari mode build alat baris perintah 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

Untuk informasi selengkapnya tentang mode build CMake, lihat dokumentasi CMake.