やりたいこと
RaspberryPiPicoSDKを使って小さいサンプルプログラムを組んでビルドする。
手順
PICO_SDK_PATH環境変数を定義
export PICO_SDK_PATH=/data/app/root/pico-sdk
ディレクトリを作成
mkdir /data/app/root/sample-blink
mkdir /data/app/root/sample-blink/src
mkdir /data/app/root/sample-blink/build
LEDをチカチカさせるソースを作成する
src/main.c
#include "pico/stdlib.h"
int main() {
// GPIOの初期化
gpio_init(PICO_DEFAULT_LED_PIN);
// 入出力の設定
gpio_set_dir(PICO_DEFAULT_LED_PIN, GPIO_OUT);
while (true) {
// HIGHを出力
gpio_put(PICO_DEFAULT_LED_PIN, 1);
sleep_ms(250);
// LOWを出力
gpio_put(PICO_DEFAULT_LED_PIN, 0);
sleep_ms(250);
}
}
CMake用のビルドファイルを作成する
src/CMakeLists.txt
# CMakeのバージョン
cmake_minimum_required(VERSION 3.12)
# SDKパス/pico_sdk_init()の定義のパス
set(PICO_SDK_PATH $ENV{PICO_SDK_PATH})
set(PICO_SDK_INIT_CMAKE_FILE ${PICO_SDK_PATH}/pico_sdk_init.cmake)
# PICO SDKのCMakeを読み込み
include(${PICO_SDK_INIT_CMAKE_FILE})
# プロジェクト名
project(sample_blink CXX C ASM)
# C Compilerのバージョン
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
# PICO SDK CMakeの初期化
pico_sdk_init()
# コンパイルターゲット
add_executable(main
main.c
)
# リンクターゲット
target_link_libraries(main pico_stdlib)
# 出力ファイル
pico_add_extra_outputs(main)
ポイントは、pico_sdk_initの呼び出しとpico_add_extra_outputsの呼び出し。
ビルド
cd build
cmake ../src
make -j4
出来上がったmain.uf2が最終ビルド結果のファイル。これをPicoにデプロイすれば動く。