🛠 Pico SDK 2.x sur une carte RP2350 générique : CMake, board header et PICO_BOARD

RP2350 (genérico / placas basadas en RP2350) · intermediaire · Schéma : IMG-rp2350-generic-intermediaire-2-rp2350-sdk2-board-header.svg — éditeur de code avec CMakeLists.txt et un fichier d'en-tête board custom (maquette de brochage), ligne de commande cmake -DPICO_BOARD=..., carte RP2350 générique connectée en USB avec outil picotool

Objetivos

El Pico C/C++ SDK (rama 2.x) es la herramienta oficial para explotar el RP2350 en C: GPIO, PIO, HSTX, doble arquitectura. Trampa conocida de las tarjetas genéricas: el SDK master proporciona los encabezados pico2/pico2_w pero ningún encabezado «generic RP2350» — o bien tu tarjeta está admitida por un repositorio de terceros que proporciona su header, o bien escribes el tuyo (pico-sdk README). Este tutorial: montar un proyecto CMake limpio, apuntar a PICO_BOARD=pico2 para una tarjeta compatible con Pico-2, y crear un board header mínimo para un módulo exótico.

Material

Comandos completos

# 1) Toolchain + SDK (Linux ; sous Windows : WSL ou l'installateur officiel)
git clone https://github.com/raspberrypi/pico-sdk.git --branch master
export PICO_SDK_PATH=$PWD/pico-sdk

# 2) Projet minimal
mkdir clignot && cd clignot
cat > CMakeLists.txt <<'EOF'
cmake_minimum_required(VERSION 3.13)
include($ENV{PICO_SDK_PATH}/pico_sdk_init.cmake)
project(clignot C CXX ASM)
pico_sdk_init
add_executable(clignot main.c)
target_link_libraries(clignot pico_stdlib)
pico_add_extra_executables(clignot)   # génère .uf2
EOF

cat > main.c <<'EOF'
#include "pico/stdlib.h"
#define LED 25
int main(void) {
    stdio_init_all;
    gpio_init(LED); gpio_set_dir(LED, GPIO_OUT);
    for (;;) { gpio_put(LED, !gpio_get(LED)); sleep_ms(250); }
}
EOF

# 3) Configurer pour une carte compatible Pico 2, puis compiler
mkdir build && cd build
cmake -DPICO_BOARD=pico2 ..
make -j
picotool info clignot.uf2      # affiche le nom de board embarqué

Board header propio (módulo genérico)

Copia pico-sdk/src/boards/include/boards/pico2.h a mes_boards/generic_rp2350.h, luego ajusta según el pinout de TU tarjeta: #define NUM_BANK0_GPIOS 30 (RP2350A) o 48 (RP2350B), el pin del LED, el oscilador de 12 MHz, y pasa la carpeta de encabezados a CMake con -DPICO_BOARD=generic_rp2350 y la variable de búsqueda de encabezados de board.

Verificación esperada

make produce clignot.uf2; picotool info muestra «Program information» con el board pico2. Deposita el UF2 en modo BOOTSEL: el LED parpadea. El mismo binario funciona en cualquier tarjeta con pinout Pico-2 (PicoPlus2, Tiny2350, etc.) ya que la compatibilidad es a nivel de board/SDK, no de silicio — el encapsulado QFN-60/80 del RP2350 no es, de hecho, pin-compatible con el QFN-56 del RP2040.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales