Weltweiter kostenloser Versand ab 120 € Bestellwert – Zahlung mit PayPal und Stripe – Hergestellt in Finnland

RuuviTag debuggen

Es heißt, dass sich jedes nicht-triviale Stück Software um mindestens eine Codezeile kürzen lässt und dass die Software mindestens einen Bug enthält. Während die Basisversion der Ruuvi-Firmware, bekannt als „Weather Station“, mit über 2500 Nutzern und über 10.000 Geräten im Einsatz (zum Zeitpunkt des Schreibens) umfassend getestet ist, bringen neue Features auch neue Bugs mit sich.
Im Allgemeinen lassen sich die meisten dieser Bugs analysieren, indem du die relevanten Variablen mit NRF_LOG-Makros ausgibst, die im Code verteilt sind. Um diese Logs zu aktivieren, musst du in der SDK-Config-Datei deines Projekts NRF_LOG_ENABLE auf 1 setzen.


Um die Logs tatsächlich zu lesen, brauchst du das Ruuvi Developer Shield. Sobald du den RuuviTag mit dem Dev Shield verbunden hast, kannst du den RTT Viewer aus dem Segger-J-Link-Softwarepaket starten, um die Log-Ausgaben anzusehen.


Segger RTT Viewer ist jedoch nicht für Linux verfügbar. Wenn du unter Linux entwickelst, musst du ein paar zusätzliche Schritte ausführen, um die Log-Ausgabe zu sehen. Starte JLinkExe und verbinde dich mit deinem RuuviTag (Device NRF52832_XXAA, Interface SWD) und öffne dann JLinkRTTClient.

RuuviTag-Debugging
JLink-Verbindung zum RuuviTag

Es gibt Fälle, in denen das Ausgeben von Debug-Meldungen einfach nicht ausreicht. Wenn du den Code Schritt für Schritt durchgehen und jeden Schritt analysieren musst, um herauszufinden, was den Bug verursacht, ist der GNU Project Debugger GDB ein unschätzbares Tool.

Um GDB zu verbinden, musst du zuerst JLinkDGBServer mit JLinkGDBServer -If SWD -Speed 4000 -Device Cortex-M4 mit dem Board verbinden. Danach startest du GDB und lädst die Debug-Symbole aus deiner Datei mit arm-none-eabi-gdb _build/test_drivers.out . Ersetze die .out-Datei so, dass sie zu deiner Anwendung passt. Zum Schluss verbindest du den GDB-Client mit dem GDB-Server, indem du im GDB-Client target extended localhost:2331 ausführst.

RuuviTag debuggen
GDB verbunden