Ontem, em conjunto com o anúncio do Raspberry Pi de seu novo $ 12 Debug Probe, recebi um pelo correio (foto acima).

O Debug Probe é alimentado por um RP2040 e permite conectar de USB a UART (serial) ou SWD (Serial Wire Debug), perfeito para depurar a maioria dos dispositivos incorporados.

UART é útil para se conectar ao console de um dispositivo quando você não tem uma tela ou outros meios de controlá-lo, e você pode encontrar portas UART/serial/console em quase qualquer dispositivo com um processador ou microcontrolador.

SWD é útil ao depurar SoCs ARM, como o RP2040 usado no Raspberry Pi Pico. Eu também o usei no passado ao atualizar o firmware no meu Turing Pi 2, que estava usando outro chip ARM para executar seu BMC, ou Board Management Controller.

Tradicionalmente, você pode encontrar adaptadores USB para UART com vários níveis de suporte para alguns dólares até dezenas de dólares, mas olhando na minha caixa UART, acho que abordo alguns dos adaptadores sem marca mais populares que muitos nerds eletrônicos podem ter:

O O Debug Probe adiciona no SWD e tem uma porta separada para isso, então ele também compete com dispositivos SWD como este imitador do SEGGER J-Link BASE Debugger, que custa $ 500!

O SEGGER EDU pode ser comprado para uso educacional e não comercial por $ 70, mas ainda é um preço muito alto a pagar para entrar no jogo de depuração SWD.

Então, para um total de $ 12 para o Pi’s Debug Probe, o que você obter?

O que você ganha dentro—e na—caixa

Muitas pessoas perguntam”por que você compraria o Raspberry Pi quando existem mil placas de imitação no exterior que são metade do preço?”

Bem, vamos abrir o Debug Probe e mostrarei a você um bom motivo-sob a tampa, você é recebido com uma ilustração simples, explicando a finalidade dos acessórios incluídos e a pinagem para os cabos breakout incluídos.

É essa adição caprichosa e simples que torna o trabalho com produtos Pi muito mais agradável. Muitos outros dispositivos vêm em um saco antiestático ou são apenas jogados em um saco plástico lacrado. E muitas vezes você confia em postagens de blog ou notas na parte inferior de uma página de produto Adafruit para começar a usá-lo.

Se eu for até o site Página do produto Debug Probe há imagens detalhadas e documentação completa e fácil de digerir!

Mas depois de abrir essas abas de documentação, há a sonda de depuração, em sua pequena caixa translúcida de encaixe:

Deixando isso de lado, os cabos estão bem organizados embaixo:

É um pouco irritante que Pi tenha ficado com micro USB nesta placa:

O USB-C agora é bastante padrão em uma variedade de dispositivos incorporados, portanto, ter outro dispositivo que precise ser conectado a um cabo micro USB é um pouco irritante. Talvez eles façam um v2 com USB-C assim que passarem por qualquer suprimento massivo de portas e cabos micro USB que tenham por aí. Pelo menos eles são consistentes em usá-lo em produtos’embutidos’e de baixo consumo de energia (Pico, Zero, Debug Probe e Keyboard).

Depuração serial UART

Desde que eu não estou configurado para depurar nada em particular em um Pico atualmente, e algumas das minhas outras placas baseadas em ARM estão empacotadas agora, eu queria testar rapidamente o Probe em um Raspberry Pi, apenas verificando se consigo ver seu console saída sobre UART (consulte meu artigo mais antigo que se aprofunda na depuração UART/Serial no Raspberry Pi).

Conectei a caixa aos pinos apropriados no Pi 4—Preto para GND, Laranja para GPIO 14/pino 8 (UART TX e amarelo para GPIO 15/pino 10 (UART RX):

Em seguida, conectei o Probe à porta USB do meu Mac e executei lsusb, e viu:

Bus 002 Device 001: ID 2e8a:000c 2e8a Debug Probe (CMSIS-DAP) Serial: E6616407E330212C

Um bom primeiro sinal. O Debug Probe tem um LED vermelho brilhante que acende quando é ligado, o que é um toque legal:

Também procurei dentro de/dev e encontrei o dispositivo/dev/tty.usbmodem2102. Abri CoolTerm e configurei a porta para usbmodem2102 e a taxa de transmissão para 115200. Então, depois de verificar se o Pi tinha enable_uart=1 configurado em seu arquivo/boot/config.txt, reiniciei o Pi e assisti CoolTerm:

Funciona!

Para facilitar um pouco o trabalho na conexão serial, Também defino’Raw mode’para o modo Terminal do CoolTerm, desativei’Local Echo’e defina a configuração Enter Key Emulation como’CR’para não obter linhas duplicadas ao pressionar enter.

Depurando um Pico

Como mencionei anteriormente, não tenho nenhum projeto Pico ativo que eu possa acessar com o SWD e não tive tempo de configurar uma demonstração-estou confiante de que a documentação do Raspberry Pi é sólido.

Mas eu queria apontar uma diferença de hardware entre o Pico e o Pico W:

O Pico os cabeçalhos estão localizados na borda da placa, enquanto os cabeçalhos do Pico W estão localizados no meio, muito perto do chip RP2040.

O Raspberry Pi vende a versão que eu imaginei, ou variedades’H’com pré-soldados Cabeçalhos JST-veja a 2ª e 4ª imagens desta série do site da Pi:

Se você tiver a versão sem os conectores, pode ser mais fácil soldar alguns conectores machos e depois usar o adaptador de pino fêmea. Embora você possa encontrar um cabeçote de passagem JST que você pode soldar nos pinos nas placas não-H.

Conclusão

Além do SEGGER J-Link, existem outros dispositivos capazes de SWD, pelo menos, que não vai quebrar o banco:

Black Magic Probe ($ 75): Este é provavelmente a coisa mais próxima do Debug Probe, em espírito. É um pouco caro, mas oferece JTAG além do SWD e tem muito suporte testado para vários SoCs-o Debug Probe suporta oficialmente dispositivos Pi como o Pico, nem tudo sob o sol. SAMD11C SWD Programmer Stick (OSHW): Este é um dispositivo de hardware de código aberto que você pode construir por conta própria, se você então escolha. SWD Programmer & Debugger ($ 15): Apenas SWD, mas uma pequena alternativa organizada.

No final, estou feliz em jogar este Debug Probe na minha lixeira com meus outros probes-o fato de ele rodar em um RP2040 significa que o firmware será mantido e atualizado ao longo do tempo. E é provável que muitos bugs de compatibilidade sejam resolvidos, de modo que o Debug Probe obtenha muita quilometragem para um dispositivo de $ 12!

Desde que falei sobre o suporte SWD, nem mencionei o software atual lado usando OpenOCD.

Para ler mais sobre SWD e OpenOCD, confira estes artigos:

By Henry Taylor

Eu trabalho como desenvolvedor back-end. Alguns de vocês devem ter me visto na conferência de desenvolvedores. Ultimamente tenho trabalhado em um projeto de código aberto.