Raspberry Pi Pico SDK (впредь SDK) предоставляет заголовки, библиотеки и систему сборки, необходимую для написания программ для устройств на основе микроконтроллеров RP-серии, таких как Raspberry Pi Pico или Raspberry Pi Pico 2 в C, C ++ или языке сборки.
SDK предназначен для предоставления API и среды программирования, которая знакома как для разработчиков C, так и разработчиков C встроенных C. Одна программа работает на устройстве за раз и начинается с обычного метода main()
. Стандартные библиотеки C/C ++ поддерживаются вместе с библиотеками/API/API-интерфейсом C/C для доступа к всем аппаратному обеспечению микроконтроллера RP-серии, включая PIO (программируемый IO).
Кроме того, SDK предоставляет библиотеки более высокого уровня для борьбы с таймерами, синхронизацией, Wi-Fi и Bluetooth Networking, USB и многоядерным программированием. Эти библиотеки должны быть достаточно всеобъемлющими, чтобы ваш код приложения редко, если вообще, нуждается в доступе к аппаратным регистрам напрямую. Однако, если вам нужны или предпочитаете получить доступ к регистрам оборудования для необработанных аппаратных средств, вы также найдете полные и полностью компенсированные заголовки определения регистра в SDK. Нет необходимости искать адреса в таблице.
SDK может использоваться для создания чего-либо из простых приложений, полностью отработанных средств выполнения, таких как MicropyThon, до программного обеспечения низкого уровня, такого как самого встроенного бутрома микроконтроллера RP.
Цель дизайна для всего SDK - быть простым, но мощным.
Дополнительные библиотеки/API, которые еще не готовы к включению в SDK, можно найти в Pico-Extras.
См. Начало работы с серию Raspberry Pi Pico для получения информации о том, как настроить аппаратное обеспечение, IDE/Environment, а также о том, как создавать и отлаживать программное обеспечение для устройств Raspberry Pi Pico и других устройств на основе микроконтроллера RP.
Посмотрите подключение к Интернету с Raspberry Pi Pico W, чтобы узнать больше о написании приложений для вашего Raspberry Pi Pico W, которые подключаются к Интернету.
См. SDK Raspberry Pi Pico C/C ++ SDK, чтобы узнать больше о программировании с использованием SDK, для изучения более продвинутых функций и для полной документации по API на основе PDF.
См. Онлайн Raspberry Pi Pico SDK API DOCS для документации по API на основе HTML.
См. Pico-Examples, например, код, который вы можете построить.
Мастерская ветвь pico-sdk
на GitHub содержит последний стабильный выпуск SDK. Если вам нужно или вы хотите проверить предстоящие функции, вы можете попробовать развить филиал.
Вы можете установить расширение кода Raspberry Pi Pico Visual Studio в VS -коде.
Эти инструкции чрезвычайно высказаны, и только на основе Linux. Для получения подробных шагов, инструкции для других платформ и в целом, мы рекомендуем вам увидеть Raspberry Pi Pico-Series C/C ++ SDK
Установите Cmake (по крайней мере версия 3.13) и Cross Compiler 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
This Raspberry Pi Pico SDK Repository
Скопируйте pico_sdk_import.cmake из SDK в свой каталог проекта
Установите PICO_SDK_PATH
в местоположение SDK в вашей среде, или передайте его ( -DPICO_SDK_PATH=
) к Cmake позже.
Настройка CMakeLists.txt
like:
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
like:
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
like:
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
This Raspberry Pi Pico SDK Repository
Настройка CMakeLists.txt
like:
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 ++ Documentation для получения дополнительной информации)
О самых простых, которые вы можете сделать, это один исходный файл (например, 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)
Примечание В этом примере используется UART по умолчанию для stdout ; Если вы хотите использовать USB по умолчанию, см. Пример Hello-USB.
Настройка каталога сборки Cmake. Например, если не использование IDE:
$ mkdir build
$ cd build
$ cmake ..
При строительстве для платы, отличной от Raspberry Pi Pico, вам следует передать -DPICO_BOARD=board_name
к команде cmake
, например, cmake -DPICO_BOARD=pico2 ..
или cmake -DPICO_BOARD=pico_w ..
эта конкретная доска.
Указание PICO_BOARD=<booardname>
устанавливает различные определения компилятора (например, номера выводов по умолчанию для UART и другого аппаратного обеспечения), а в некоторых случаях также позволяет использовать дополнительные библиотеки (например, беспроводная поддержка при создании для PICO_BOARD=pico_w
), которые не могут быть построены без плата, которая предоставляет необходимую функциональность аппаратного обеспечения.
Для списка досок, определенных в самом SDK, посмотрите в этом каталоге, который имеет заголовок для каждой названной доски.
Сделайте свою цель из созданного вами каталога сборки.
$ make hello_world
Теперь у вас есть hello_world.elf
для загрузки через отладчик, или hello_world.uf2
, который может быть установлен и запустить на вашем устройстве Raspberry Pi Pico через перетаскивание.
См. SDK Raspberry Pi Pico C/C ++ SDK для получения информации о настройке среды сборки для RISC-V на RP2350.