皆さん こんにちは。
プロジェクトジェネレーターによってつくられたプロジェクトの中に CMakeLists.txt が見つかりました。
今回は CMakeLists.txt について簡単にお話します。
「CMakeLists.txt って何?」と思われた方、本記事をご一読ください。
CMakeLists.txt は CMake というビルド自動化ツールで使われるファイルになります。
このファイルにどんなことが書かれているのか概要説明します。
少しずつ見ていきましょう。
# Generated Cmake Pico project file
# で始まる行はコメントです。
cmake_minimum_required(VERSION 3.13)
CMakeのバージョンを明示する
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
set(PICO_SDK_PATH "C:/Users/m3925/Documents/Pico/pico-sdk")
set()でコンパイルオプションを指定する
CMAKE_C_STANDARD 11 はCコンパイラーの11を使う
CMAKE_CXX_STANDARD 17 はC++コンパイラーの17を使う
PICO_SDK_PATH はSDKのパスを指定する
include(pico_sdk_import.cmake)
ビルドするためのファイルのインクルード指定
project(picoTimer C CXX ASM)
プロジェクト名と使用する言語の指定
C : C言語、 CXX : C++、ASM : アセンブラー
add_executable(picoTimer picoTimer.c )
ビルドする実行ファイルを指定する
使うソースファイルをadd_executable()で指定する
pico_set_program_name(picoTimer "picoTimer")
pico_set_program_version(picoTimer "0.1")
プログラム名とバージョン
pico_enable_stdio_uart(picoTimer 0)
pico_enable_stdio_usb(picoTimer 0)
標準入出力の指定
上がUART、下がUSBに対する指定
最後の 0 を 1 にすることで標準入出力が有効になる
私がさっと試したところ、USBの方はマイコン側の受信がうまく動作しませんでした。
とりあえず標準入出力を使う場合には UART の方を使うことにします。
target_link_libraries(picoTimer pico_stdlib)
リンクするライブラリを指定します。
例えばDMAを使う場合にはライブラリを追加する必要があります。
その場合は次のようにすれば良さそうです。
target_link_libraries(picoTimer pico_stdlib hardware_dma)
#include "hardware/dma.h"
pico_add_extra_outputs(picoTimer)
hexファイルや uf2ファイルを生成します。
uf2はラズピコをUSBマスストレージとしてドラッグ&ドロップで書き込む時に使うファイルです。
とりあえず CMakeLists.txt の内容を簡単に説明しました。
お疲れさまでした。