Ieri, in concomitanza con l’annuncio di Raspberry Pi del loro nuovo Debug Probe, ne ho ricevuto uno per posta (nella foto sopra).
Il Debug Probe è alimentato da un RP2040 e ti consente di connetterti da USB a UART (seriale) o SWD (Serial Wire Debug), perfetto per il debug della maggior parte dei dispositivi embedded.
UART è utile per connettersi alla console di un dispositivo quando non si dispone di un display o altri mezzi per controllarlo e puoi trovare porte UART/seriale/console su quasi tutti i dispositivi con processore o microcontrollore.
SWD è utile durante il debug dei SoC ARM, come l’RP2040 utilizzato sul Raspberry Pi Pico. L’ho usato anche in passato durante l’aggiornamento del firmware sul mio Turing Pi 2, che utilizzava un altro chip ARM per eseguire il suo BMC, o Board Management Controller.
Tradizionalmente, potresti trovare adattatori da USB a UART con diversi livelli di supporto per un paio di dollari fino a decine di dollari, ma guardando nel mio cestino UART, penso di coprire alcuni degli adattatori non di marca più popolari che molti nerd dell’elettronica potrebbero avere in giro:
Il Debug Probe aggiunge SWD e ha una porta separata per questo, quindi compete anche con dispositivi SWD come questo knock-off del SEGGER J-Link BASE Debugger, che costa $ 500!
Il SEGGER EDU può essere acquistato per uso didattico e non commerciale per $ 70, ma è ancora un prezzo piuttosto alto da pagare per entrare nel gioco di debug SWD.
Quindi, per un totale complessivo di $ 12 per Pi’s Debug Probe, cosa fai ottenere?
Cosa ottieni dentro e sopra la confezione
Molte persone chiedono”perché dovresti comprare Raspberry Pi quando ci sono un migliaio di schede knockoff all’estero che costano la metà prezzo?”
Bene, apriamo Debug Probe e ti mostrerò una buona ragione: sotto il coperchio, sei accolto da una semplice illustrazione, che spiega lo scopo degli accessori inclusi e il pinout per i cavi di breakout inclusi.
È questa aggiunta stravagante e semplice che rende il lavoro con i prodotti Pi molto più piacevole. Molti altri dispositivi vengono forniti in un sacchetto antistatico o vengono semplicemente gettati in un sacchetto di plastica sigillato. E spesso ti affidi ai post del blog o alle note in fondo alla pagina di un prodotto Adafruit per iniziare a usarlo.
Se vado al Pagina del prodotto Debug Probe ci sono immagini dettagliate e una documentazione proprietaria completa e facile da digerire!
Ma dopo aver aperto quei lembi della documentazione, c’è la sonda di debug, nella sua graziosa custodia traslucida a incastro:
E a parte questo, i cavi sono ordinatamente imballati sotto:
È un po’fastidioso che Pi si sia bloccato con micro USB su questa scheda:
USB-C ora è abbastanza standard su una varietà di dispositivi integrati, quindi avere un altro dispositivo che richiede di essere appeso a un cavo micro USB è un po’fastidioso. Forse realizzeranno una v2 con USB-C una volta superata l’enorme quantità di porte e cavi micro USB che hanno in giro. Almeno sono coerenti nell’usarlo nei prodotti”incorporati”e a basso consumo (Pico, Zero, Debug Probe e Keyboard).
Debug UART seriale
Da quando ho non sono impostato per eseguire il debug di qualcosa in particolare su un Pico al momento, e alcune delle mie altre schede basate su ARM sono impacchettate in questo momento, volevo testare rapidamente la sonda su un Raspberry Pi, controllando solo se riesco a vedere la sua console output su UART (vedi il mio vecchio articolo che approfondisce il debug UART/seriale sul Raspberry Pi).
Ho collegato la scatola ai pin appropriati sul Pi 4—Black to GND, Da arancione a GPIO 14/pin 8 (UART TX e da giallo a GPIO 15/pin 10 (UART RX):
Poi ho collegato il Probe alla porta USB del mio Mac e ho eseguito lsusb, e ho visto:
Bus 002 Dispositivo 001: ID 2e8a:000c 2e8a Debug Probe (CMSIS-DAP) Seriale: E6616407E330212C
Un buon primo segno. Debug Probe ha un LED rosso brillante che si accende quando è alimentato, il che è un bel tocco:
Ho cercato anche all’interno di/dev e ho trovato il dispositivo/dev/tty.usbmodem2102. Ho aperto CoolTerm e ho impostato la porta su usbmodem2102 e il baud rate su 115200. Quindi, dopo essermi assicurato che il Pi avesse enable_uart=1 configurato nel suo file/boot/config.txt, ho riavviato il Pi e ho guardato CoolTerm:
Funziona!
Per semplificare un po’il lavoro tramite la connessione seriale, Ho anche impostato”Raw mode”per la modalità terminale di CoolTerm, disabilitato”Local Echo”e impostato l’impostazione Enter Key Emulation su”CR”in modo da non ottenere righe duplicate quando si preme Invio.
Debug di un Pico
Come accennato in precedenza, non ho alcun progetto Pico attivo a cui attingere con SWD e non ho avuto il tempo di organizzare una dimostrazione: confido che la documentazione di Raspberry Pi sia solido.
Ma volevo sottolineare una differenza hardware tra Pico e Pico W:
I Pico le intestazioni si trovano sul bordo della scheda, mentre le intestazioni del Pico W si trovano verso il centro, molto vicino al chip RP2040.
Raspberry Pi vende la versione che ho raffigurato, o le varietà”H”con preseldate Intestazioni JST: guarda la seconda e la quarta immagine di questa serie dal sito web di Pi:
Se si dispone della versione senza le intestazioni, potrebbe essere più semplice saldare alcune intestazioni maschio e quindi utilizzare l’adattatore pin femmina. Sebbene tu possa trovare un’intestazione JST a foro passante che potresti saldare nei pin sulle schede non H.
Conclusione
Oltre al SEGGER J-Link, ci sono altri dispositivi compatibili di SWD, almeno, che non romperà la banca:
Black Magic Probe ($ 75): questo è probabilmente la cosa più vicina al Debug Probe, nello spirito. È un po’costoso ma ti offre JTAG oltre a SWD e ha un supporto molto testato per vari SoC: Debug Probe supporta ufficialmente dispositivi Pi come il Pico, non tutto sotto il sole. SAMD11C SWD Programmer Stick (OSHW): questo è un dispositivo hardware open source che puoi costruire da solo, se quindi scegli. SWD Programmer & Debugger ($ 15): solo SWD, ma comunque una piccola alternativa ordinata.
Alla fine, sono felice di gettare questa sonda di debug nel mio cestino con le altre mie sonde: il fatto che funzioni su un RP2040 stesso significa che il firmware verrà mantenuto e aggiornato nel tempo. Ed è probabile che molti bug di compatibilità verranno risolti, quindi Debug Probe otterrà un sacco di chilometri per un dispositivo da $ 12!
Dal momento che ho sorvolato sul supporto SWD, non ho nemmeno menzionato il software attuale side utilizzando OpenOCD.
Per ulteriori informazioni su SWD e OpenOCD, consulta questi articoli: