ラズピコ CMakeLists.txtとライブラリ

  • 2022.12.31
  • IDE
ラズピコ CMakeLists.txtとライブラリ

皆さん こんにちは。

プロジェクトジェネレーターによってつくられたプロジェクトの中に 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 の内容を簡単に説明しました。
お疲れさまでした。

IDEカテゴリの最新記事