Raspberry Pi Pico SDK(以降、SDK)は、C、C ++、またはアセンブリ言語のRaspberry Pi PicoやRaspberry Pi Pico 2などのRPシリーズマイクロコントローラーベースのデバイスのプログラムを作成するために必要なヘッダー、ライブラリ、およびビルドシステムを提供します。
SDKは、包み込まれていないC開発者と組み込みC開発者の両方に馴染みのあるAPIおよびプログラミング環境を提供するように設計されています。単一のプログラムは、一度にデバイスで実行され、従来のmain()
メソッドから始まります。標準のC/C ++ライブラリは、PIO(プログラマブルIO)を含むすべてのRPシリーズマイクロコントローラーのハードウェアにアクセスするためのCレベルライブラリ/APIとともにサポートされています。
さらに、SDKは、タイマー、同期、Wi-FiおよびBluetoothネットワーキング、USBおよびマルチコアプログラミングを扱うためのより高いレベルライブラリを提供します。これらのライブラリは、アプリケーションコードがハードウェアレジスタに直接アクセスする必要がある場合、アプリケーションコードがめったにないほど包括的である必要があります。ただし、生のハードウェアレジスタにアクセスする必要がある、またはアクセスする必要がある場合は、SDKに完全かつ完全にコメントされたレジスタ定義ヘッダーも見つかります。データシートでアドレスを調べる必要はありません。
SDKは、単純なアプリケーション、Micropythonなどの本格的なランタイム環境から、RPシリーズMicrocontrollerのオンチップBootrom自体などの低レベルソフトウェアまで、あらゆるものを構築するために使用できます。
SDK全体の設計目標は、シンプルだが強力なことです。
まだSDKに含める準備ができていない追加のライブラリ/APIは、Pico-Extrasにあります。
ハードウェア、IDE/環境のセットアップ方法、Raspberry PI PICOおよびその他のRPシリーズマイクロコントローラーベースのデバイス用のソフトウェアを構築およびデバッグする方法については、Raspberry Pi Picoシリーズの開始を参照してください。
インターネットに接続するRaspberry Pi Pico Wのアプリケーションの作成の詳細については、Raspberry Pi Pico Wでインターネットへの接続を参照してください。
Raspberry Pi Pico-Series C/C ++ SDKを参照して、SDKを使用したプログラミングの詳細、より高度な機能を調査し、PDFベースの完全なAPIドキュメントをご覧ください。
HTMLベースのAPIドキュメントについては、オンラインRaspberry PI PICO SDK APIドキュメントを参照してください。
たとえばビルドできるコードについては、Pico-Examplesを参照してください。
Githubのpico-sdk
のマスターブランチには、SDKの最新の安定したリリースが含まれています。今後の機能が必要な場合、またはテストする場合は、代わりにDevelop Branchを試すことができます。
Raspberry Pi Pico Visual Studio Code ExtensionをVSコードにインストールできます。
これらの指示は非常に簡潔であり、Linuxベースのみです。詳細な手順、他のプラットフォームの手順、および一般的に、Raspberry Pi Pico-Series C/C ++ SDKをご覧ください。
cmake(少なくともバージョン3.13)とGCCクロスコンパイラをインストールする
sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib
Raspberry Pi Pico SDKを使用することを指すようにプロジェクトを設定する
SDKをローカルにクローニングすることにより(最も一般的):
git clone
このRaspberry Pi Pico SDKリポジトリ
PICO_SDK_IMPORT.cmakeをSDKからプロジェクトディレクトリにコピーします
PICO_SDK_PATH
環境のSDKの場所に設定するか、後でcmakeに渡します( -DPICO_SDK_PATH=
)。
CMakeLists.txt
のようなセットアップ:
cmake_minimum_required ( VERSION 3.13...3.27)
# initialize the SDK based on PICO_SDK_PATH
# note: this must happen before project()
include (pico_sdk_import.cmake)
project (my_project)
# initialize the Raspberry Pi Pico SDK
pico_sdk_init()
# rest of your project
または、raspberry pi pico sdkをサブモジュールとして:
SDKをpico-sdk
と呼ばれるサブモジュールとしてクローンします
CMakeLists.txt
のようなセットアップ:
cmake_minimum_required ( VERSION 3.13...3.27)
# initialize pico-sdk from submodule
# note: this must happen before project()
include (pico-sdk/pico_sdk_init.cmake)
project (my_project)
# initialize the Raspberry Pi Pico SDK
pico_sdk_init()
# rest of your project
またはGithubからの自動ダウンロードで:
PICO_SDK_IMPORT.cmakeをSDKからプロジェクトディレクトリにコピーします
CMakeLists.txt
のようなセットアップ:
cmake_minimum_required ( VERSION 3.13)
# initialize pico-sdk from GIT
# (note this can come from environment, CMake cache etc)
set (PICO_SDK_FETCH_FROM_GIT on)
# pico_sdk_import.cmake is a single file copied from this SDK
# note: this must happen before project()
include (pico_sdk_import.cmake)
project (my_project)
# initialize the Raspberry Pi Pico SDK
pico_sdk_init()
# rest of your project
または、SDKをローカルにクローニングすることにより、しかしpico_sdk_import.cmake
をコピーすることなく:
git clone
このRaspberry Pi Pico SDKリポジトリ
CMakeLists.txt
のようなセットアップ:
cmake_minimum_required ( VERSION 3.13)
# initialize the SDK directly
include (/path/to/pico-sdk/pico_sdk_init.cmake)
project (my_project)
# initialize the Raspberry Pi Pico SDK
pico_sdk_init()
# rest of your project
コードを書く(詳細については、Pico-ExamplesまたはRaspberry Pi Pico-Series C/C ++ SDKドキュメントを参照してください)
あなたができる最も簡単なことは、単一のソースファイル(例:hello_world.c)です
#include <stdio.h>
#include "pico/stdlib.h"
int main () {
stdio_init_all ();
printf ( "Hello, world!n" );
return 0 ;
}
そして、 CMakeLists.txt
に以下を追加します。
add_executable (hello_world
hello_world.c
)
# Add pico_stdlib library which aggregates commonly used features
target_link_libraries (hello_world pico_stdlib)
# create map/bin/hex/uf2 file in addition to ELF.
pico_add_extra_outputs(hello_world)
注この例では、 stdoutにデフォルトのuartを使用します。デフォルトのUSBを使用する場合は、Hello-USBの例を参照してください。
cmakeビルドディレクトリをセットアップします。たとえば、IDEを使用していない場合:
$ mkdir build
$ cd build
$ cmake ..
Raspberry Pi Pico以外のボード用に構築する場合cmake -DPICO_BOARD=pico_w ..
、上記のcmake
コマンドに-DPICO_BOARD=board_name
を渡す必要がありますcmake -DPICO_BOARD=pico2 ..
その特定のボード。
PICO_BOARD=<booardname>
の指定は、さまざまなコンパイラが定義するさまざまなコンパイラ(UARTおよびその他のハードウェアのデフォルトピン番号)をセットアップし、特定の場合、追加のライブラリを使用することもできます( PICO_BOARD=pico_w
の構築時にワイヤレスサポートを使用することもできます。必要なハードウェア機能を提供するボード。
SDK自体で定義されているボードのリストについては、各名前のボードのヘッダーがあるこのディレクトリを見てください。
作成したビルドディレクトリからターゲットを作成します。
$ make hello_world
これで、 hello_world.elf
デバッガーを介してロードするか、ドラッグアンドドロップを介してRaspberry Pi Pico-Seriesデバイスでインストールして実行できるhello_world.uf2
介して読み込みます。
RP2350でRISC-Vのビルド環境をセットアップする詳細については、Raspberry Pi Pico-Series C/C ++ SDKを参照してください。