🛠 Boot UF2, BOOTSEL et récupération d'une carte « briquée »

Raspberry Pi Pico · avance · Schéma : IMG-pico-avance-2-pico-boot-uf2-recovery.svg — cycle de boot du RP2040 : broche BOOTSEL, bootrom en ROM, choix flash QSPI externe ou USB, lecteur RPI-RP2 et fichier uf2 déposé

Objetivos

Comprender la cadena de arranque atípica del RP2040 — sin flash interna: tras el reinicio, el bootrom (en ROM, inmutable) carga el firmware ya sea desde la flash QSPI externa de 2 MB (XIP), o por USB si el pin BOOTSEL se mantiene presionado. Aprenderás a entrar en modo BOOTSEL, a comprender el formato UF2 (imagen «sparse» por bloques de 256 bytes) y a recuperar una tarjeta cuyo programa falla desde el arranque — el RP2040 no puede quedar inutilizado por software en este camino.

Material

Código completo

// canary.c — programme volontairement « méchant » à récupérer
// Écrase le vecteur de reset : au prochain boot, plus rien ne démarre
// (sauf BOOTSEL, qui court-circuite la flash !)
#include "pico/stdlib.h"

int main(void) {
    // efface la table des vecteurs en tête de flash (zone 0x10000000)
    flash_range_erase(0, 4096);
    uint32_t junk[64];
    for (int i = 0; i < 64; i++) junk[i] = 0xDEADBEEF;
    flash_range_program(0, (const uint8_t *)junk, 256);
    while (true) { }   // le prochain reset partira dans le vide
}
// Rebuild avec pico_stdlib + hardware/flash, flash, laisse le programme
// tourner une fois, reset : la carte est « morte »… jusqu'au BOOTSEL.

Verificación esperada

Tras ejecutar el canario y reiniciar, la tarjeta deja de responder (sin REPL, sin blink). Mantén presionado BOOTSEL y vuelve a conectar: la unidad RPI-RP2 reaparece siempre — el bootrom está intacto. Coloca un .uf2 válido: la tarjeta revive. Nota: un UF2 mal alineado puede escribirse de forma errática (errata E14 de la hoja de datos del RP2040); si el flash parece aleatorio, reintenta con un UF2 generado por el SDK.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales