Was ist es und wie benutzt man es?
Segger Embedded Studio (SES) ist eine integrierte Entwicklungsumgebung (IDE) für Nordic Semiconductor Produkte, wie den nRF52832, der das Herzstück des RuuviTag bildet. Die IDE vereint fast alle Schritte, die für die Entwicklung von C-Code für RuuviTags erforderlich sind, wie das Schreiben des Codes, das Kompilieren des Codes, das Flashen des Codes auf den RuuviTag und das Debuggen des Codes während der Ausführung auf dem RuuviTag. Dies ist ein ganz anderer Ansatz als bei GNU-Tools, die im Allgemeinen dem Prinzip folgen, nur eine Sache zu tun, wie Kompilieren, Linken oder Debuggen.
Es ist möglich, SES ohne Ruuvi Development Shield zu verwenden, aber die Verwendung einer kabelgebundenen JLINK-Verbindung des nRF52-DK wird dringend empfohlen.
Du kannst auch den Videoanweisungen von Nordic Semiconductor folgen, um loszulegen.
Wie bekomme ich es?
Gehe zur Segger-Website und wähle die Version für dein Betriebssystem aus. Stelle sicher, dass du mindestens Version 3.40 hast.
Das Projekt einrichten
In diesem Tutorial verwenden wir ruuvi.firmware.c als Basis. Die Firmware implementiert die Funktionalität der offiziellen Ruuvi Firmware vom Juli 2019 und basiert auf dem Nordic SDK15, das offiziellen Support für SES bietet. Beginne mit der Ausführung von
git clone https://github.com/ruuvi/ruuvi.firmware.c.gitcd ruuvi.firmware.c
git checkout 3.30.2git submodule update --init --recursive
Dann solltest du das Nordic Semiconductor SDK herunterladen und auf derselben Ebene wie das ruuvi.firmware.c-Projekt entpacken. Version 3.30.2 der Ruuvi-Firmware verwendet Noridc SDK 15.3
Nachdem du das SES installiert hast, öffne einfach die Projektdatei von ruuvi.firmware.c/src. Du kannst das Projekt öffnen, indem du in der oberen Leiste „Datei“ und dann „Lösung öffnen“ auswählst.
Das Projekt kompilieren
Um zu überprüfen, ob alles wie benötigt eingerichtet ist, wähle in der oberen Leiste „Build“ und klicke auf „Build ruuvi.firmware.c“. Bei der ersten Kompilierung wirst du aufgefordert, SES zu registrieren. Gib deine Daten ein und du erhältst einen Aktivierungsschlüssel per E-Mail.

Nach kurzer Zeit solltest du „Build Complete“ und einen Flash- + RAM-Nutzungsbericht sehen.
Das Projekt flashen
Verbinde deinen RuuviTag mit deinem JLINK und den JLINK über USB mit deinem Computer. Der Autor bevorzugt es, einen RuuviTag zu verwenden, der mit einem Kabelbinder am Ruuvi Development Kit befestigt ist.
Wähle in der oberen Leiste „Target“ und „Connect to JLINK“. Um das Projekt zu flashen, wähle „Target“->„Download ruuvi.firmware.c“. Dadurch wird der Tag gelöscht und die Softdevice + Anwendung auf den RuuviTag geflasht. Es ist wichtig zu beachten, dass der Download den Bootloader nicht enthält.
Das Projekt debuggen
Wähle „Target“ und „Connect JLINK“. Wähle dann „Target“ und „Attach debugger“. Jetzt solltest du sehen, wie das Programm läuft und Log-Texte von PLATFORM_LOG_INFO im Debug-Terminal ausgibt.
SES unterstützt die Verwendung von Hardware-Breakpoints, falls du dein Programm schrittweise durchgehen musst. Klicke auf die Zeilennummer links und du solltest eine rote Kugel in deinem Programm sehen. Wähle „Debug“ und „Restart“. Das Programm hält in der ersten Zeile von main an. Du kannst dann Funktionsaufrufe überspringen oder in sie hineingehen oder das Programm laufen lassen, bis es den Breakpoint erreicht.

Neue Dateien zum Projekt hinzufügen
Du kannst neue Dateien hinzufügen, indem du im Projekt-Explorer mit der rechten Maustaste klickst und „Add new file“, „Add existing file“ oder „New folder“ auswählst. Allerdings sind enthaltene .h-Dateien außerhalb ihres Ordners für Dateien nicht sichtbar. Um .h-Dateien in dein Projekt aufzunehmen, klicke mit der rechten Maustaste auf „Project ruuvi.firmware.c“, stelle sicher, dass die Projektkonfiguration „Common“ ausgewählt ist, und klicke unter „Code“ auf „Preprocessor“. Wähle „User include directories“ und füge das Verzeichnis mit deinen Header-Dateien hinzu.

Bootloader in das Binary aufnehmen
Wenn du den Bootloader in das Binary aufnehmen möchtest, musst du denselben Prozess wie beim ARMGCC verwenden. Verwende nrfutil, um Bootloader-Einstellungen zu erstellen und die Softdevice 6.0.0, den Bootloader, die Anwendung und die Einstellungen zu einem Hex zusammenzuführen. Dieses Hex kann dann auf dein Ziel geflasht werden. Das offizielle Packaging-Skript für ARMGCC ist auf GitHub verfügbar. Bitte beachte, dass die Skripte board-spezifisch sind.