picoの新しいプロジェクト作成
Page content
目的
cloneしたサンプルをビルドすることはできたので
作成したコードをビルドするためのプロジェクトを作成する
参考: Getting started with Raspberry Pi Pico
フォルダ構成
サンプルを確認すると直下のフォルダに共通の「CMakeLists.txt」があり
1階層下に個別コード毎の「CMakeLists.txt」がある。
また直下フォルダの「pico_sdk_import.cmake」と「example_auto_set_url.cmake」が必要らしい。
以上を踏まえて以下のようなフォルダ構成とする
~/works/
┣ build/ ・・・ makeとかを実行するためのフォルダ
┣ ex_01/ ・・・ 自前コード
┃ ┣ ex_01.cpp
┃ ┗ CMakeLists.txt
┣ CMakeLists.txt
┣ example_auto_set_url.cmake ・・・ サンプルからコピーしたもの
┗ pico_sdk_import.cmake ・・・ サンプルからコピーしたもの
コード類
works直下の「CMakeLists.txt」
コードを増やす場合はサブディレクトリを追加する
cmake_minimum_required(VERSION 3.12)
# Pull in SDK (must be before project)
include(pico_sdk_import.cmake)
project(pico_examples C CXX ASM)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
set(PICO_EXAMPLES_PATH ${PROJECT_SOURCE_DIR})
# Initialize the SDK
pico_sdk_init()
include(example_auto_set_url.cmake)
# sub_directory
add_subdirectory(ex01)
ex_01の「CMakeLists.txt」
ここでは簡単のためにサンプルの「blink」を修正したものをする
add_executable(ex_01
ex_01.cpp
)
# Pull in our pico_stdlib which pulls in commonly used features
target_link_libraries(ex_01 pico_stdlib)
# create map/bin/hex file etc.
pico_add_extra_outputs(ex_01)
# add url via pico_set_program_url
example_auto_set_url(ex_01)
ex_01の「コード」
ここでは簡単のためにサンプルの「blink」を引用する
/**
* Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include "pico/stdlib.h"
int main() {
#ifndef PICO_DEFAULT_LED_PIN
#warning blink example requires a board with a regular LED
#else
const uint LED_PIN = PICO_DEFAULT_LED_PIN;
gpio_init(LED_PIN);
gpio_set_dir(LED_PIN, GPIO_OUT);
while (true) {
gpio_put(LED_PIN, 1);
sleep_ms(250);
gpio_put(LED_PIN, 0);
sleep_ms(250);
}
#endif
}
build
以下の手順でビルドする
$ cd ~/works/build
$ cmake ..
$ make
~~
[100%] Linking CXX executable ex_01.elf
[100%] Built target ex_01
無事ビルドが成功すると
~/works/build/ex_01/
┗ ex_01.elf
が生成されている