Tanuki_Bayashin’s diary

電子工作を趣味としています。最近はラズベリーパイPicoというマイコンを使って楽しんでいます

pico-sdk C/C++ での開発の進め方

※なにか気になる点がありましたらコメント欄にご記入ください。

目次

1.はじめに

 以前、Raspberr Pi Pico(以下Pico と記述)におけるSDK C/C++ の構築に関する記事を書きましたが(下を参照)、そこから1歩進んで、独自のプログラムをビルドするときのノウハウを書きとどめたいと思います。(自分用の備忘録的な要素が強いです)

以前書いた記事:Raspberry Pi Pico SDK C/C++の構築 - Tanuki_Bayashin’s diary

開発環境:Windows10 Raspberry Pi Pico(C/C++により記述) ubuntu Visual Studio 2022 cmake など

 以下のサイトに構築した pico-SDK C/C++ において、ディレクトリpico 内のblink.c というソースコードをビルドするやり方が載っていました。多分に参考になりました。
qiita.com

2.開発の進め方

2.1 ディレクトリ構造とCMakeLists.txtファイル

 開発の進め方と書くとぎょうぎょうしいですが、1章でふれたサイト内のように、ubuntu内のディレクトリpico の下にworks という作業用のディレクトリを作り、必要なファイルやディレクトリを準備します。
 筆者はディレクトリuart2 の中にuart2.c というCで書いたファイルを作り、ビルドしました。(ここではファイルの内容は割愛します)

※ここまでの手順などは1章のサイトを参考にしていただければと思います。

リスト1 筆者のubuntu内のディレクトリ構造

pico---- pico-examples
     |-- pico-sdk
     |-- works   example_auto_set_url.cmale, pico_sdk_import.cmake,CMakeLists.txt
           |      (pico-examples内よりコピー)
           |---cmake  (ディレクトリごとpico-examples内よりコピー)
           |---uart2  CmakeLists.txt, uart2.c (筆者自身のCファイルです)
           |---build
                 |---uart2(uart2.cのuf2ファイルが入っている)

このとき、ディレクトリworks内の CMakeLists.txtとディレクトリworks の下のディレクトリuart2 内のCMakeLists.txt の内容を以下に示します。

スト2 ディレクトリworks内の CMakeLists.txt

cmake_minimum_required(VERSION 3.16)

# 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)

# Hardware-specific examples in subdirectories:
add_subdirectory(cmake)
add_subdirectory(uart2)

リスト3 ディレクトリuart2 内のCMakeLists.txt

add_executable(uart2
        uart2.c
        )

# Pull in our (to be renamed) simple get you started dependencies
target_link_libraries(uart2 pico_stdlib pico_binary_info)

# create map/bin/hex file etc.
pico_add_extra_outputs(uart2)

# add url via pico_set_program_url
example_auto_set_url(uart2)

※リスト2,3共に行番号は必要ありません

2.2 新しくソースコードを起こし、ビルドする手順

 以下に新しくご自身でソースコードを起こし、実行可能なファイルをビルドするときの手順を示します。

A 前準備的な手順

1. 新たにディレクトリworks の下にご自身のディレクトリを作る。
2. ソースコードを書く。
3. CMakeLists.txtを書く。
 3-1 リスト2のCMakeLists.txt
  一番下の行のuart2 の部分をご自身のディレクトリ名に置き替える
 3-2 リスト3のCMakeLists.txt
  ’uart2' という名前を適宜置き替える。また6行目には必要なライブラリー名を記入する。
  ライブラリー名はスラッシュ’/’ の部分をアンダースコア’_’ に置き替えればよいようです。
  (このCMakeLists.txtは、ご自身が作ったディレクトリ内に保存してください)

B 開発していく上で繰り返すであろう手順

4.ディレクトリbuild に移り、’cmake ..’ と打ち込み、Enter(’..’ は1つ上のディレクトリを意味します)
5.cmake が無事に通ったら、ご自身が作ったディレクトリと同じ名前のディレクトリがbuild 内にできているので、そちらに移る
6. 'make -j4' と打ち込み、UF2ファイルを作る。エラーが見つかれば、必要な箇所を訂正する。
7. Pico にファイルを書き込み、テストする。
8. 改善すべき点が見つかれば、再度ソースコードを書き直し、ビルドする。特になければ終了。

以上です。
(変更すべき事項があった場合、書き直します)