Erste Schritte mit dem Infineon.XMC4800 IoT Connectivity Kit - FreeRTOS

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erste Schritte mit dem Infineon.XMC4800 IoT Connectivity Kit

Wichtig

Diese Referenzintegration wird im Amazon-FreeRTOS-Repository gehostet, das veraltet ist. Wir empfehlen Ihnen, hier zu beginnen, wenn Sie ein neues Projekt erstellen. Wenn Sie bereits über ein vorhandenes FreeRTOS-Projekt verfügen, das auf dem jetzt veralteten Amazon-FreeRTOS-Repository basiert, finden Sie weitere Informationen unter Leitfaden zur Migration des Amazon-FreerTOS Github-Repositorys.

In diesem Tutorial erhalten Sie Anweisungen für die ersten Schritte mit dem Infineon XMC4800 IoT Connectivity Kit. Wenn Sie nicht über das Infineon XMC4800 IoT Connectivity Kit verfügen, besuchen Sie den AWS Partner Device Catalog, um einen von unserem Partner zu erwerben.

Wenn Sie eine serielle Verbindung mit dem Board öffnen möchten, um Protokollierungs- und Debugging-Informationen anzuzeigen, benötigen Sie einen 3,3 V USB auf Seriell-Konverter, zusätzlich zum XMC4800 IoT Connectivity Kit. Der CP2104 ist ein gängiger USB auf Seriell-Konverter, der weitgehend in Boards verfügbar ist, wie z. B. CP2104-Friend von Adafruit.

Bevor Sie beginnen, müssen Sie AWS IoT und Ihren FreeRTOS-Download konfigurieren, um Ihr Gerät mit der AWS Cloud zu verbinden. Detaillierte Anweisungen finden Sie unter Erste Schritte. In diesem Tutorial wird der Pfad zum FreeRTOS-Download-Verzeichnis als bezeichnetfreertos.

Übersicht

Dieses Tutorial enthält Anweisungen für die folgenden ersten Schritte:

  1. Installieren von Software auf dem Host-Computer zum Entwickeln und Debuggen eingebetteter Anwendungen für Ihr Mikrocontroller-Board.

  2. Kompilieren einer FreeRTOS-Demoanwendung in ein Binärbild.

  3. Laden des binären Anwendungs-Image auf Ihr Board und Ausführen der Anwendung.

  4. Interaktion mit der Anwendung, die auf Ihrem Board über eine serielle Verbindung ausgeführt wird, zu Überwachungs- und Debuggingzwecken.

Einrichten Ihrer Entwicklungsumgebung

FreeRTOS verwendet die DAVE-Entwicklungsumgebung von Infineon, um XMC4800 zu programmieren. Bevor Sie beginnen, müssen Sie DAVE und einige J-Link-Treiber herunterladen und installieren, um mit dem On-Board-Debugger zu kommunizieren.

Installieren von DAVE

  1. Rufen Sie die Seite von Infineon zum Herunterladen der DAVE-Software auf.

  2. Wählen Sie das DAVE-Paket für Ihr Betriebssystem aus und senden Sie Ihre Registrierungsinformationen. Nach der Registrierung mit Infineon sollten Sie eine Bestätigungs-E-Mail mit einem Link zum Herunterladen einer ZIP-Datei erhalten.

  3. Laden Sie die ZIP-Datei des DAVE-Pakets (DAVE_version_os_date.zip) herunter und entpacken Sie es im Speicherort, in dem Sie DAVE installieren möchten (z. B. C:\DAVE4).

    Anmerkung

    Einige Windows-Benutzer, die den Windows Explorer nutzen, haben Probleme beim Entpacken der Datei gemeldet. Wir empfehlen die Verwendung eines Drittanbieter-Programms, z. B. 7-Zip.

  4. Wenn Sie DAVE starten möchten, müssen Sie die ausführbare Datei ausführen, die Sie aus dem DAVE_version_os_date.zip-Ordner extrahiert haben.

Weitere Informationen finden Sie im DAVE-Schnellstartleitfaden.

Um mit der On-Board-Debugging-Probe des XMC4800-Relax-EtherCAT zu kommunizieren, benötigen Sie die Treiber, die im J-Link-Software- und Dokumentationspaket enthalten sind. Sie können das J-Link-Software- und Dokumentationspaket von Seggers auf der Seite mit demJ-Link-Software-Download herunterladen.

Herstellen einer seriellen Verbindung

Das Einrichten einer seriellen Verbindung ist zwar optional, wird aber empfohlen. Eine serielle Verbindung ermöglicht Ihrem Board das Senden von Protokollierungs- und Debugging-Informationen in einer Form, die Sie auf Ihrem Entwicklungscomputer ansehen können.

Die Demoanwendung XMC4800 verwendet eine serielle UART-Verbindung auf den Pins P0.0 und P0.1, die auf dem XMC4800-Relax-EtherCAT-Boards-Silkscreen gekennzeichnet sind. So richten Sie eine serielle Verbindung ein:

  1. Verbinden Sie den Pin mit der Bezeichnung "RX<P0.0" mit Ihrem USB zu Seriell-Konverter-Pin "TX".

  2. Verbinden Sie den Pin mit der Bezeichnung "TX>P0.1" mit Ihrem USB zu Seriell-Konverter-Pin "RX".

  3. Verbinden Sie Ihren Ground-Pin des seriellen Konverters mit einem der Pins mit der Bezeichnung "GND". Die Geräte müssen einen gemeinsamen Ground teilen.

Die Energieversorgung erfolgt über den USB-Debugging-Port. Verbinden Sie also nicht den positiven Spannungspin Ihres seriellen Adapters mit dem Board.

Anmerkung

Einige serielle Kabel verwenden ein 5 V Signalisierungslevel. Das XMC4800-Board und das Wi-Fi-Click-Modul benötigen eine Spannung von 3.3 V. Verwenden Sie nicht den IOREF-Jumper des Boards, um die Board-Signale in 5 V zu ändern.

Mit dem verbundenen Kabel können Sie eine serielle Verbindung auf einem Terminal-Emulator, wie z. B. dem GNU-Monitor, herstellen. Die Baudrate ist standardmäßig auf 115 200 mit 8 Datenbits, keiner Parität und 1 Stoppbit festgelegt.

Überwachung von MQTT-Nachrichten in der Cloud

Bevor Sie die FreeRTOS-Demo ausführen, können Sie den MQTT-Client in der AWS IoT Konsole einrichten, um die Nachrichten zu überwachen, die Ihr Gerät an die AWS Cloud sendet.

Abonnieren des MQTT-Themas mit dem AWS IoT-MQTT-Client:
  1. Melden Sie sich an der AWS IoT-Konsole an.

  2. Wählen Sie im Navigationsbereich Test und dann MQTT-Testclient aus, um den MQTT-Client zu öffnen.

  3. Geben Sie im Feld Subscription topic (Abonnementthema) die Option your-thing-name/example/topic ein und wählen Sie dann Subscribe to topic (Thema abonnieren).

Wenn das Demo-Projekt erfolgreich auf Ihrem Gerät ausgeführt wird, sehen Sie „Hello World!“ wurde mehrmals an das abonnierte Thema gesendet.

Erstellen und Ausführen des FreeRTOS-Demoprojekts

Importieren der FreeRTOS-Demo in DAVE

  1. Starten Sie DAVE.

  2. Wählen Sie in DAVE die Optionen File (Datei) und Import (Importieren). Erweitern Sie im Fenster Import (Importieren) den Infineon-Ordner, wählen Sie das DAVE-Projekt aus und klicken Sie dann auf Weiter.

  3. Wählen Sie im Fenster Import DAVE Projects (DAVE-Projekte importieren) erst die Option Select Root Directory (Stammverzeichnis auswählen), dann die Option Browse (Durchsuchen) und anschließend das XMC4800-Demoprojekt aus.

    In dem Verzeichnis, in dem Sie Ihren FreeRTOS-Download entpackt haben, befindet sich das Demo-Projekt in projects/infineon/xmc4800_iotkit/dave4/aws_demos.

    Stellen Sie sicher, dass Copy Projects Into Workspace deaktiviert ist.

  4. Wählen Sie Finish (Abschließen).

    Das aws_demos-Projekt sollte in Ihren WorkSpace importiert und aktiviert werden.

  5. Wählen Sie im Menü Project (Projekt) die Option Build Active Project (Aktive Projekte erstellen) aus.

    Stellen Sie sicher, dass das Projekt ohne Fehler erstellt wird.

Ausführen des FreeRTOS-Demoprojekts

  1. Verwenden Sie ein USB-Kabel, um Ihr XMC4800 IoT Connectivity Kit mit Ihrem Computer zu verbinden. Das Board verfügt über zwei microUSB-Konnektoren. Verwenden Sie den Konnektor mit der Kennzeichnung "X101", wobei Debug daneben auf dem Silkscreen des Boards erscheint.

  2. Wählen Sie im Menü Project (Projekt) die Option Rebuild Active Project (Aktive Projekte neu erstellen) aus, um aws_demos neu zu erstellen, und stellen Sie sicher, dass Ihre Konfigurationsänderungen ausgewählt wurden.

  3. Klicken Sie im Projekt-Explorer mit der rechten Maustaste auf aws_demos und wählen Sie die Option Debug As (Debuggen als) und dann DAVE C/C++ Application (DAVE C/C++-Anwendung) aus.

  4. Doppelklicken Sie auf GDB SEGGER J-Link Debugging (GDB-SEGGER-J-Link-Debugging) zum Erstellen einer Debug-Bestätigung. Wählen Sie Debug (Debuggen) aus.

  5. Wenn der Debugger am Haltepunkt in main() anhält, wählen Sie im Menü Run (Ausführen) die Funktion Fortsetzen aus.

In der AWS IoT-Konsole sollte der MQTT-Client aus den Schritten 4-5 die MQTT-Nachrichten, die von Ihrem Gerät gesendet wurden, anzeigen. Wenn Sie die serielle Verbindung nutzen, werden in der UART-Ausgabe Einträge wie dieser angezeigt:

0 0 [Tmr Svc] Starting key provisioning... 1 1 [Tmr Svc] Write root certificate... 2 4 [Tmr Svc] Write device private key... 3 82 [Tmr Svc] Write device certificate... 4 86 [Tmr Svc] Key provisioning done... 5 291 [Tmr Svc] Wi-Fi module initialized. Connecting to AP... .6 8046 [Tmr Svc] Wi-Fi Connected to AP. Creating tasks which use network... 7 8058 [Tmr Svc] IP Address acquired [IP Address] 8 8058 [Tmr Svc] Creating MQTT Echo Task... 9 8059 [MQTTEcho] MQTT echo attempting to connect to [MQTT Broker]. ...10 23010 [MQTTEcho] MQTT echo connected. 11 23010 [MQTTEcho] MQTT echo test echoing task created. .12 26011 [MQTTEcho] MQTT Echo demo subscribed to iotdemo/# 13 29012 [MQTTEcho] Echo successfully published 'Hello World 0' .14 32096 [Echoing] Message returned with ACK: 'Hello World 0 ACK' .15 37013 [MQTTEcho] Echo successfully published 'Hello World 1' 16 40080 [Echoing] Message returned with ACK: 'Hello World 1 ACK' .17 45014 [MQTTEcho] Echo successfully published 'Hello World 2' .18 48091 [Echoing] Message returned with ACK: 'Hello World 2 ACK' .19 53015 [MQTTEcho] Echo successfully published 'Hello World 3' .20 56087 [Echoing] Message returned with ACK: 'Hello World 3 ACK' .21 61016 [MQTTEcho] Echo successfully published 'Hello World 4' 22 64083 [Echoing] Message returned with ACK: 'Hello World 4 ACK' .23 69017 [MQTTEcho] Echo successfully published 'Hello World 5' .24 72091 [Echoing] Message returned with ACK: 'Hello World 5 ACK' .25 77018 [MQTTEcho] Echo successfully published 'Hello World 6' 26 80085 [Echoing] Message returned with ACK: 'Hello World 6 ACK' .27 85019 [MQTTEcho] Echo successfully published 'Hello World 7' .28 88086 [Echoing] Message returned with ACK: 'Hello World 7 ACK' .29 93020 [MQTTEcho] Echo successfully published 'Hello World 8' .30 96088 [Echoing] Message returned with ACK: 'Hello World 8 ACK' .31 101021 [MQTTEcho] Echo successfully published 'Hello World 9' 32 104102 [Echoing] Message returned with ACK: 'Hello World 9 ACK' .33 109022 [MQTTEcho] Echo successfully published 'Hello World 10' .34 112047 [Echoing] Message returned with ACK: 'Hello World 10 ACK' .35 117023 [MQTTEcho] Echo successfully published 'Hello World 11' 36 120089 [Echoing] Message returned with ACK: 'Hello World 11 ACK' .37 122068 [MQTTEcho] MQTT echo demo finished. 38 122068 [MQTTEcho] ----Demo finished----

Erstellen der FreeRTOS-Demo mit CMake

Wenn Sie es vorziehen, keine IDE für die FreeRTOS-Entwicklung zu verwenden, können Sie alternativ CMake verwenden, um die Demo-Anwendungen oder Anwendungen zu erstellen und auszuführen, die Sie mit Code-Editoren und Debugging-Tools von Drittanbietern entwickelt haben.

Anmerkung

Dieser Abschnitt behandelt die Verwendung von CMake unter Windows mit MingW als natives Build-System. Weitere Informationen zur Verwendung von CMake mit anderen Betriebssystemen und Optionen finden Sie unter CMake mit FreeRTOS verwenden. (MinGW ist eine minimalistische Entwicklungsumgebung für native Microsoft Windows-Anwendungen.)

So erstellen Sie die FreeRTOS-Demo mit CMake
  1. Richten Sie die GNU Arm Embedded-Toolchain ein.

    1. Laden Sie eine Windows-Version der Toolchain von der Arm Embedded Toolchain Downloadseite herunter.

      Anmerkung

      Wir empfehlen Ihnen, eine andere Version als "8-2018-q4-major" herunterzuladen, da für das Dienstprogramm "objcopy" in dieser Version ein Fehler gemeldet ist.

    2. Öffnen Sie das heruntergeladene Toolchain-Installationsprogramm und folgen Sie den Anweisungen des Installationsassistenten, um die Toolchain zu installieren.

      Wichtig

      Wählen Sie auf der letzten Seite des Installationsassistenten Add path to environment variable, um den Toolchain-Pfad zur Umgebungsvariablen des Systempfads hinzuzufügen.

  2. Installieren Sie CMake und MingW.

    Anweisungen finden Sie unter CMake-Voraussetzungen.

  3. Erstellen Sie einen Ordner für die generierten Build-Dateien (build-folder).

  4. Ändern Sie Verzeichnisse in Ihr FreeRTOS-Download-Verzeichnis (freertos) und verwenden Sie den folgenden Befehl, um die Build-Dateien zu generieren:

    cmake -DVENDOR=infineon -DBOARD=xmc4800_iotkit -DCOMPILER=arm-gcc -S . -B build-folder -G "MinGW Makefiles" -DAFR_ENABLE_TESTS=0
  5. Ändern Sie die Verzeichnisse in das Build-Verzeichnis (build-folder) und verwenden Sie den folgenden Befehl, um die Binärdatei zu erstellen:

    cmake --build . --parallel 8

    Dieser Befehl erstellt die aws_demos.hex-Ausgabebinärdatei in das Build-Verzeichnis.

  6. Flashen und Sie das Image mit JLINK und führen Sie es aus.

    1. Verwenden Sie die folgenden Befehle aus dem Build-Verzeichnis (build-folder), um ein Flash-Skript zu erstellen:

      echo loadfile aws_demos.hex > flash.jlink
      echo r >> flash.jlink
      echo g >> flash.jlink
      echo q >> flash.jlink
    2. Flashen Sie das Image mit der ausführbaren Datei JLNIK.

      JLINK_PATH\JLink.exe -device XMC4800-2048 -if SWD -speed auto -CommanderScript flash.jlink

      Die Anwendungsprotokolle sollten über die serielle Verbindung sichtbar sein, die Sie mit dem Board hergestellt haben.

Fehlerbehebung

Falls noch nicht geschehen, stellen Sie sicher, dass Sie AWS IoT und Ihren FreeRTOS-Download konfigurieren, um Ihr Gerät mit der AWS Cloud zu verbinden. Detaillierte Anweisungen finden Sie unter Erste Schritte.

Allgemeine Informationen zur Fehlerbehebung bei den ersten Schritten mit FreeRTOS finden Sie unter Fehlerbehebung – Erste Schritte.