Přeskočit na hlavní obsah

Ladění

Většinu kódu odladíte pomocí logovacích funkcí systému Zephyr, například LOG_INF, LOG_HEXDUMP_INF a dalších.

Někdy je ale potřeba skutečné nízkoúrovňové ladění hardwaru s krokováním a náhledem do paměti.

Snadno ho zvládnete s rozšířením nRF Connect for VS Code pro VS Code.

Relace ladění ve VS Code zastavená na breakpointu v main.c s proměnnými, zásobníkem volání a registry periferií

Instalace​

Ve VSCode stiskněte Ctrl + P, napište ext install nordic-semiconductor.nrf-connect a stiskněte Enter.

Postup ladění​

  1. Otevřete rozšíření nRF Connect for VS Code, klikněte na Open Existing Application a vyberte složku aplikace, ve které obvykle spouštíte west build.

Panel nRF Connect ve VS Code se zvýrazněným tlačítkem Open Existing Application

  1. V souboru projektu prj.conf řádek zakomentujte znakem # nebo odstraňte CONFIG_CTR_BLE=y. BLE je citlivé na časování, a když je zapnuté, ladění nefunguje správně.

prj.conf v editoru se zakomentovaným řádkem CONFIG_CTR_BLE=y

  1. V levém panelu v sekci Applications klikněte na + Add build configuration

  2. V možnosti Board vyberte chester_nrf52840. Nastavte Optimization level na Optimize for debugging (-Og). Poté klikněte dole na tlačítko Build Configuration. Projekt se sestaví.

  3. V levém panelu v sekci Actions klikněte na Debug a začněte kód ladit.

varování

Nepoužívejte Erase board ani jinou podobnou možnost. Zařízení CHESTER ukládá do oblasti UICR sériové číslo a komunikační klíče. Pokud ji vymažete, budete muset obnovit data PIB.

Chcete-li vymazat desku, použijte příkaz erase v HARDWARIO CLI, který oblasti UICR zachová.

Shell přes RTT​

V levém panelu Connected devices můžete se zařízením otevřít komunikaci přes RTT. Používá kanál 0 se shellem Zephyr, takže do terminálu můžete zadávat příkazy. Druhý kanál RTT s logy se tu nezobrazuje.

Panel Connected devices se zvýrazněnou položkou RTT a seznamem příkazů shellu Zephyr v terminálu

Vlákna​

Na záložce NRF DEBUG můžete zkoumat vlákna a paměť.

Záložka NRF DEBUG s přehledem vláken, využitím zásobníku a prohlížečem paměti flash