Raspberry Pi Debug Probe: sada pro ladění přes USB
Zdroj: raspberrypi.com
Raspberry Pi Debug Probe představuje cenově dostupné, kompletní řešení pro ladění přes USB, které poskytuje veškerý potřebný hardware a kabely pro snadné plug-and-play ladění bez pájení.
Co všechno obsahuje Raspberry Pi Debug Probe?
- Můstek USB na SWD (Serial Wire Debug)
- Generický sériový USB adaptér
- Kabely pro propojení hostitelského počítače a cíle ladění
Přestože je Debug Probe určen pro použití s produkty Raspberry Pi, poskytuje standardní UART a CMSIS-DAP přes USB, takže ho lze použít i s jinými procesory, nebo dokonce jen jako kabel USB-UART. Pracuje s OpenOCD a dalšími nástroji, které podporují CMSIS-DAP.
Hledání chyb
Se zábavným psaním počítačových programů se bohužel pojí jedno nutné zlo, a tím je hledání chyb. Většina dostupných debuggerů sice nabízí totožnou sadu základních funkcí (krokování, body přerušení, kontrola proměnných a paměti), ale tyto funkce jsou poskytovány různými způsoby v závislosti na zvoleném programovacím jazyce a použitém operačním systému.
V Pythonu, což je vysokoúrovňový programovací jazyk, jsou ladicí funkce zabudované přímo v operačním prostředí. V nízkoúrovňovém jazyce C běží program pod operačním systémem, jako je například Linux. V tomto případě může debugger (např. gdb), často běžící na stejném počítači, komunikovat s vaším programem a poskytovat stejné možnosti.
Pokud váš program v jazyce C běží přímo na procesoru bez operačního systému (tzv. bare metal operation), je třeba najít způsob, jak získat přístup k debug funkcím zabudovaným přímo v samotném procesoru. A to je přesně ten moment, kdy se skvěle hodí Raspberry Pi Debug Probe.
Co to je Debug Probe?
Všechny moderní mikrokontroléry založené na architektuře Arm, tedy i RP2040, implementují ladící architekturu Arm CoreSight. Každé jádro procesoru, jako je Cortex-M0+ použitý v RP2040, poskytuje přístupový port (Access Port, AP), který lze prostřednictvím sběrnice procesoru použít ke krokování, k nastavení bodů přerušení, sledování hodnot registrů procesoru a přístupu k paměti a periferiím.
Samotný mikrokontrolér poskytuje ladicí port (DP, Debug Port), který je externě připojen k pinům na obalu a interně ke každému AP v systému. RP2040 poskytuje DP prostřednictvím SWD portu (Serial Wire Debug) s nízkým počtem pinů: aby mohl ladit program spuštěný v jádru, může hostitelský počítač pomocí SWD protokolu ovládat každý AP jádra.
Debug Probe představuje můstek mezi USB a SWD protokolem. Ačkoli to není nezbytně nutné, pokud je hostitelským počítačem Raspberry Pi (SWD port cíle je možné přímo připojit k GPIO headeru na Raspberry Pi), je mnohem pohodlnější se připojit přes USB. Pokud používáte PC nebo Mac, USB představuje jedinou možnost připojení.
Raspberry Pi Debug Probe poskytuje SWD signály na třípinovém JST konektoru, který odpovídá specifikaci Raspberry Pi debug konektoru. Součástí balení jsou adaptérové kabely pro pohodlné připojení k breadboardu a k debug konektoru na Raspberry Pi Pico H a WH, bez nutnosti pájení.
Společnost Arm standardizovala USB komunikační protokol mezi hostitelským počítačem a Debug Probe. Ladicí sada splňuje standard CMSIS-DAP, a proto bude fungovat s mnoha stávajícími ladicími softwarovými platformami, včetně oblíbené OpenOCD.
Sériová komunikace
Sériové konzolové spojení mezi mikrokontrolérem a hostitelským počítačem poskytuje jednoduchý způsob, jak komunikovat se softwarem běžícím na jiném cílovém počítači a získávat protokolovací a jiná diagnostická data. Pokud jako hostitelský počítač používáte Raspberry Pi, prostřednictvím GPIO headeru je možné použít jednu z UART periferií. Pokud je však hostitelským počítačem PC nebo Mac, nejspíše přístup k vestavěnému sériovému portu nemáte.
Raspberry Pi Debug Probe pracuje jako sériový USB adaptér a přes stejné USB připojení jako SWD můstek. Vysílá signály UART na druhém třípinovém konektoru JST, opět v souladu se specifikací Raspberry Pi debug konektoru. Pokud nevyžadujete ladění, cenově dostupný Debug Probe představuje alternativu k sériovým USB adaptérům.
Pár slov o autorech
Za projektem Raspberry Pi Debug Probe stojí James Adams, který je autorem celého konceptu a návrhářem hardwaru. Software sestavil Jonathan Bell, který se inspiroval projektem DapperMime. John Cowan-Hughes navrhl kvalitní plastové pouzdro a elegantní mechaniku balení. Obalovou grafiku vytvořil Jack Willis, Rose Nottová vedla dodavatelský řetězec. Přehlednou dokumentaci sestavili Alasdair Allan a Andrew Scheller.