Tutorial: Erstellen einer allgemeinen Anwendung

Eine allgemeine Anwendung wird auf dem Azure Sphere-Betriebssystem ausgeführt, verwendet die Azure Sphere-Anwendungsbibliotheken und kann mit dem Internet und mit cloudbasierten Diensten kommunizieren. Grundlegende Informationen zu allgemeinen Anwendungen finden Sie unter Übersicht über Azure Sphere-Anwendungen .

In diesem Tutorial erfahren Sie Folgendes:

  • Vorbereiten Ihres Geräts für die Entwicklung und das Debuggen
  • Erstellen, Ausführen und Debuggen einer allgemeinen Anwendung

Voraussetzungen

Vorbereiten Ihres Geräts für die Entwicklung und das Debuggen

Bevor Sie eine Beispielanwendung auf Ihrem Azure Sphere-Gerät erstellen oder neue Anwendungen dafür entwickeln können, müssen Sie die Entwicklung und das Querladen aktivieren. Standardmäßig sind Azure Sphere-Geräte "gesperrt". Das heißt, sie lassen nicht zu, dass Anwendungen, die sich in der Entwicklung befinden, von einem Computer geladen werden, und sie lassen das Debuggen von Anwendungen nicht zu. Durch vorbereiten des Geräts für das Querladen wird diese Einschränkung entfernt.

Der Befehl az sphere device enable-development konfiguriert das Gerät so, dass Es Anwendungen zum Debuggen akzeptiert, lädt den Debugserver auf das Gerät und weist das Gerät einer Gerätegruppe zu, die keine Cloudanwendungsupdates zulässt. Während der Anwendungsentwicklung und beim Debuggen sollten Sie das Gerät in dieser Gruppe belassen, damit Cloudanwendungsupdates die Anwendung in der Entwicklung nicht überschreiben.

  1. Stellen Sie sicher, dass Ihr Azure Sphere-Gerät mit Ihrem Computer verbunden ist und dass Ihr Computer mit dem Internet verbunden ist.

  2. Öffnen Sie eine Befehlszeilenschnittstelle mithilfe von PowerShell, der Windows-Eingabeaufforderung oder der Linux-Befehlsshell.

  3. Geben Sie den folgenden Befehl ein:

    az sphere device enable-development --resource-group <ResourceGroupName> --catalog <CatalogName> --device <DeviceIdValue>
    

    Es sollte eine Ausgabe ähnlich der folgenden angezeigt werden:

    Getting device capability configuration for application development.
    Downloading device capability configuration for device ID '<device ID>'.
    Successfully downloaded device capability configuration.
    Successfully wrote device capability configuration file 'C:\Users\user\AppData\Local\Temp\tmpD732.tmp'.
    Setting device group ID 'a6df7013-c7c2-4764-8424-00cbacb431e5' for device with ID '<device ID>'.
    Successfully disabled over-the-air updates.
    Enabling application development capability on attached device.
    Applying device capability configuration to device.
    Successfully applied device capability configuration to device.
    The device is rebooting.
    Installing debugging server to device.
    Deploying 'C:\Program Files (x86)\Microsoft Azure Sphere SDK\DebugTools\gdbserver.imagepackage' to the attached device.
    Image package 'C:\Program Files (x86)\Microsoft Azure Sphere SDK\DebugTools\gdbserver.imagepackage' has been deployed to the attached device.
    Application development capability enabled.
    Successfully set up device '<device ID>' for application development, and disabled over-the-air updates.
    Command completed successfully in 00:00:38.3299276.
    

Wenn der Befehl az sphere device enable-development fehlschlägt, finden Sie weitere Informationen unter Behandeln von Azure Sphere-Problemen .

Erstellen und Ausführen der allgemeinen Anwendung mit Visual Studio Code

In diesem Tutorial wird die Azure Sphere Blink-Vorlage verwendet, die Teil der Azure Sphere-Erweiterung für Visual Studio Code ist. Die Blink-Vorlage blinkt eine LED, damit Sie überprüfen können, ob das Azure Sphere-Gerät und die Tools ordnungsgemäß installiert und eingerichtet wurden.

  1. Starten Sie Visual Studio Code. Wählen Sie Befehlspalette anzeigen> aus, und geben Sie dann "Azure Sphere: Neues Projekt generieren" ein.

  2. Wählen Sie im Menü Vorlagen die Option Blink aus.

  1. Visual Studio Code zeigt dann ein Explorer Fenster an. Navigieren Sie zu dem Ordner, in dem Sie die Blink-Anwendung platzieren möchten. Visual Studio Code erstellt den Ordner Blink am ausgewählten Speicherort und generiert die Builddateien für die Blink-Anwendung. Es sollten Nachrichten von CMake angezeigt werden.

  2. Öffnen Sie die CMakeLists.txt-Datei, und ändern Sie die Einstellung TARGET_DIRECTORY, um den Ordner anzugeben, der Definitionen für die verwendete Hardware enthält. Standardmäßig gibt die TARGET_DIRECTORY HardwareDefinitions/mt3620_rbd an, die dem Seeed Azure Sphere MT3620 Development Kit entspricht:

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "HardwareDefinitions/mt3620_rdb" TARGET_DEFINITION "template_appliance.json")
    

    Die Vorlage enthält mehrere Hardwaredefinitionen. Wenn Sie beispielsweise ein SEEED MT3620 Mini Dev Board verwenden, geben Sie stattdessen HardwareDefinitions/seeed_mt3620_mdb an.

  3. Drücken Sie F5 , um das Projekt zu erstellen und zu debuggen. Wenn das Projekt noch nicht erstellt wurde oder dateien geändert wurden und eine Neuerstellung erforderlich ist, erstellt Visual Studio Code das Projekt, bevor das Debuggen gestartet wird.

  4. Warten Sie einige Sekunden, bis Visual Studio Code die Anwendung erstellt, ein Imagepaket erstellt, auf dem Board bereitgestellt und im Debugmodus gestartet wird. Auf dem Weg werden status Updates im Bereich Ausgabe angezeigt.

    Zunächst bestimmt CMake, ob die Anwendung erstellt werden muss. Wenn ja, wird der Fokus auf den Ausgabebereich verschoben, in dem die Ausgabe von CMake/Build angezeigt wird.

    Als Nächstes wird im Ausgabebereich die Ausgabe angezeigt, während das Imagepaket auf dem Gerät bereitgestellt wird. Schließlich erhält die Debugkonsole den Fokus und zeigt die gdb-Ausgabe an.

    Tipp

    Notieren Sie sich den Speicherort Ihres Imagepakets, da Sie es beim Erstellen einer Bereitstellung benötigen. Im Ausgabefenster sollte eine Meldung wie "In pfad> geschriebene <Builddateien" angezeigt werden. <Dabei ist path> der vollständige Pfad zum Buildordner Ihrer Blink-Anwendung, der in der Regel mit "out\ARM-Debug" oder "out/ARM-Debug" endet.

  5. Nach einer kurzen Verzögerung sollte eine LED blinken.

  6. Legen Sie einen Haltepunkt in Standard.c fest, und durchlaufen Sie die Anwendung, damit Sie die Visual Studio Code-Debugfeatures für Azure Sphere erkunden können.

Erstellen und Ausführen der allgemeinen Anwendung mit Visual Studio

In diesem Tutorial wird die Azure Sphere Blink-Vorlage verwendet, die Teil der Azure Sphere-Erweiterung für Visual Studio ist. Die Blink-Vorlage blinkt eine LED, damit Sie überprüfen können, ob das Azure Sphere-Gerät und die Tools ordnungsgemäß installiert und eingerichtet wurden.

  1. Wenn Sie noch nicht mit Visual Studio sind, sollten Sie sich die Schnellstartanleitung oder die Geführte Tour ansehen, um mehr über die Navigation und Verwendung von Visual Studio zu erfahren.

  2. Öffnen Sie Visual Studio, und wählen Sie Neues Projekt erstellen aus. Geben Sie im Feld Search "azure sphere" ein, um eine Liste der Azure Sphere-Vorlagen zu erhalten. Wählen Sie Azure Sphere Blink aus der Liste aus.

  3. Geben Sie einen Namen und einen Speicherort für das Projekt ein, und wählen Sie dann Erstellen aus.

  4. Öffnen Sie die CMakeLists.txt-Datei, und ändern Sie die Einstellung TARGET_DIRECTORY, um den Ordner anzugeben, der Definitionen für die verwendete Hardware enthält. Standardmäßig gibt die TARGET_DIRECTORY HardwareDefinitions/mt3620_rbd an, die dem Seeed Azure Sphere MT3620 Development Kit entspricht:

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "HardwareDefinitions/mt3620_rdb" TARGET_DEFINITION "template_appliance.json")
    

    Die Vorlage enthält mehrere Hardwaredefinitionen. Wenn Sie beispielsweise ein SEEED MT3620 Mini Dev Board verwenden, geben Sie stattdessen HardwareDefinitions/seeed_mt3620_mdb an.

  5. Wählen Sie in Visual Studio Ausgabe anzeigen> aus, um den Bereich Ausgabe anzuzeigen.

  6. Stellen Sie sicher, dass Ihr Gerät über USB mit Ihrem PC verbunden ist. Drücken Sie im Menü Startelement festlegenF5 , oder wählen Sie Azure Sphere-App (HLCore)* aus, wobei Azure Sphere-App der Name Ihrer aktuellen allgemeinen Anwendung ist.

  7. Wenn Sie aufgefordert werden, das Projekt zu erstellen, wählen Sie Ja aus. Visual Studio kompiliert die Anwendung, erstellt ein Imagepaket, überlädt es quer auf das Board und startet es im Debugmodus. Querladen bedeutet, dass die Anwendung direkt vom PC über eine kabelgebundene Verbindung und nicht über die Cloud übermittelt wird.

    Tipp

    Notieren Sie sich den Speicherort Ihres Imagepakets, da Sie ihn beim Erstellen einer Bereitstellung benötigen. Es sollte eine Meldung wie "Ausgabedatei ist unter: <Pfad>" in der Ausgabe unter Ansicht>Ausgabe>anzeigen Ausgabe anzeigen von: Build angezeigt werden. Dabei ist path> der vollständige Pfad zum Buildordner Ihrer Blink-Anwendung, der <in der Regel mit "out/ARM-Debug" endet.

  8. Standardmäßig wird im Bereich Ausgabe die Ausgabe der Geräteausgabe angezeigt. Wählen Sie zum Anzeigen von Meldungen aus dem Debugger im Dropdownmenü Ausgabe anzeigen von: die Option Debuggen aus. Sie können auch die Programmdemontage, Die Registrierungen oder den Arbeitsspeicher über das Menü Debuggen> vonFenstern überprüfen.

  9. Wenn Sie das Programm ausführen, sollte eine LED blinken.

Herunterladen der Beispielanwendung

Sie können die HelloWorld-Anwendung wie folgt herunterladen:

  1. Verweisen Sie in Ihrem Browser auf Microsoft Samples Browser.
  2. Geben Sie "Azure Sphere" in das Feld Search ein.
  3. Wählen Sie azure Sphere – Hallo Welt aus den Suchergebnissen aus.
  4. Wählen Sie ZIP herunterladen aus.
  5. Öffnen Sie die heruntergeladene Datei, und extrahieren Sie sie in ein lokales Verzeichnis.

Erstellen des Beispiels

Führen Sie die folgenden Schritte aus, um die Build- und IMAGEPACKAGE-Dateien für die HelloWorld_HighLevelApp Beispielanwendung zu erstellen.

  1. Aktualisieren Sie das Beispiel bei Bedarf auf Ihre Hardware. Standardmäßig zielen die Beispiele auf Hardware ab, die dem MT3620 Reference Board Design (RDB) folgt, z. B. das MT3620 Development Kit von Seeed Studios. Zusätzliche Zielhardwaredefinitionen für die Beispielanwendungen sind im Verzeichnis HardwareDefinitions des Azure Sphere-Beispielrepositorys verfügbar. Beispielsweise befinden sich die Hardwaredefinitionsdateien für das Avnet MT3620 Starter Kit im Unterverzeichnis HardwareDefinitions/avnet_mt3620_sk.

    • Öffnen Sie CMakeLists.txt, und aktualisieren Sie den Parameter TARGET_DIRECTORY in der funktion azure_target_hardware_definition so, dass er auf das Unterverzeichnis für Ihre Hardware verweist. Zum Beispiel:

      azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "../../../HardwareDefinitions/avnet_mt3620_sk" TARGET_DEFINITION "sample_appliance.json")
      
  2. Öffnen Sie eine Befehlszeilenschnittstelle mithilfe von PowerShell, der Windows-Eingabeaufforderung oder der Linux-Befehlsshell. Navigieren Sie zu Ihrem Projektbuildverzeichnis.

  3. Führen Sie in Ihrem Projektbuildverzeichnis an der Eingabeaufforderung CMake mit den folgenden Parametern aus:

    cmake --preset <preset-name> <source-path>
    
    • --preset <preset-name>

      Der voreingestellte Name der Buildkonfiguration, wie in CMakePresets.json definiert.

    • --build <cmake-path>

      Das Binärverzeichnis, das den CMake-Cache enthält. Wenn Sie z. B. CMake in einem Azure Sphere-Beispiel ausführen, lautet cmake --build out/ARM-Debugder Buildbefehl .

    • <source-path>

      Der Pfad des Verzeichnisses, das die Quelldateien für die Beispielanwendung enthält. Im Beispiel wurde das Azure Sphere-Beispielrepository in ein Verzeichnis namens AzSphere heruntergeladen.

      CMake-Parameter werden durch Leerzeichen getrennt. Das Zeilenfortsetzungszeichen (^ für Windows-Befehlszeile, \ für Linux-Befehlszeile oder ' für PowerShell) kann zur Lesbarkeit verwendet werden, ist jedoch nicht erforderlich.

    Die folgenden Beispiele zeigen die CMake-Befehle für die Hallo Welt allgemeine App:

    Windows-Eingabeaufforderung

     cmake ^
     --preset "ARM-Debug" ^
     "C:\AzSphere\azure-sphere-samples\Samples\HelloWorld\HelloWorld_HighLevelApp"
    

    Windows PowerShell

     cmake `
     --preset "ARM-Debug" `
     "C:\AzSphere\azure-sphere-samples\Samples\HelloWorld\HelloWorld_HighLevelApp"
    
  4. Führen Sie Ninja aus, um die Anwendung zu erstellen und die Imagepaketdatei zu erstellen:

    ninja -C out/ARM-Debug
    

    Ninja platziert die resultierenden Anwendungs- und IMAGEPACKAGE-Dateien im angegebenen Verzeichnis.

    Sie können Ninja auch über CMake mit dem folgenden Befehl aufrufen:

    cmake --build out/<binary-dir>
    

    Legen Sie <binary-dir> auf das Binärverzeichnis fest, das den CMake-Cache enthält. Wenn Sie z. B. CMake in einem Azure Sphere-Beispiel ausführen, lautet cmake --build out/ARM-Debugder Buildbefehl .

    Löschen Sie bei der Problembehandlung ihren gesamten Build, insbesondere nachdem Sie Änderungen an Ihren CMake-Befehlen vorgenommen haben, und versuchen Sie es erneut.

Ausführen des Beispiels

  1. Wenn auf Ihrem Gerät bereits eine Anwendung ausgeführt wird, löschen Sie die Anwendung:

    az sphere device sideload delete
    
  2. Wechseln Sie zu dem Verzeichnis, das die zuvor erstellten Build- und IMAGEPACKAGE-Dateien enthält.

  3. Laden Sie das Imagepaket auf Ihr Gerät, indem Sie den Befehl az sphere device sideload deploy ausführen und das Imagepaket angeben. Zum Beispiel:

    az sphere device sideload deploy --image-package HelloWorld_HighLevelApp.imagepackage
    

    Dieser Befehl lädt das Imagepaket und startet die Anwendung. Es sollte eine LED blinken.

    Tipp

    Notieren Sie sich den Pfad des Imagepakets. Sie verwenden das Imagepaket später im Schnellstart zur Bereitstellung.

Debuggen des Beispiels

  1. Wechseln Sie zu dem Verzeichnis, das die zuvor erstellten Build- und IMAGEPACKAGE-Dateien enthält.

  2. Rufen Sie die Komponenten-ID ab, falls sie noch nicht vorhanden ist:

    az sphere image-package show --image-package HelloWorld_HighLevelApp.imagepackage
    
  3. Wenn die Anwendung ausgeführt wird, beenden Sie sie, und starten Sie sie dann mit der --debug-mode folgenden Option neu:

    az sphere device app stop --component-id <ComponentId>
    
    az sphere device app start --debug-mode --component-id <ComponentId>
    

    Folgendes sollte angezeigt werden:

     ...
       "Identity": {
         "ComponentId": "<component-id>",
         "ImageId": "<image-id>",
         "ImageType": "Application"
       },
     ...
    
  4. Verwenden Sie einen Terminalclient , um eine Telnet- oder unformatierte TCP-Verbindung herzustellen, um den Ausgabestream aus dem Prozess zu lesen. Geben Sie 192.168.35.2 als IP-Adresse und 2342 als Port an.

  5. Öffnen Sie eine Befehlszeilenschnittstelle mithilfe von PowerShell oder einer Standardeingabeaufforderung unter Windows oder einer Befehlsshell unter Linux, und übergeben Sie die Binärdatei der .out-App aus Ihrem Build als Parameter. Dadurch wird das vollständige Debuggen des Quellcodes aktiviert.

    Windows-Eingabeaufforderung

    "C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\gcc\arm-poky-linux-musleabi-gdb" HelloWorld_HighLevelApp.out
    

    Windows PowerShell

    & "C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\gcc\arm-poky-linux-musleabi-gdb" HelloWorld_HighLevelApp.out
    

Hinweis

Das Azure Sphere SDK wird mit mehreren Sysroots ausgeliefert, sodass Anwendungen verschiedene API-Sätze als Ziel verwenden können, wie unter Anwendungslaufzeitversion, Sysroots und Beta-APIs beschrieben. Die Sysroots werden im Installationsordner des Azure Sphere SDK unter Sysroots installiert.

  1. Legen Sie das Remotedebuggingziel auf Port 2345 auf die IP-Adresse 192.168.35.2 fest:

    target remote 192.168.35.2:2345

  2. Führen Sie alle anderen gdb-Befehle aus, die Sie auswählen. Die folgenden Befehle legen beispielsweise beim Eintrag auf Standard() einen Haltepunkt fest und setzen dann die Ausführung nach dem Haltepunkt fort.

    break main
    
    c
    

    Weitere Informationen zum Debuggen mit gdb finden Sie unter GDB: Der GNU-Projektdebugger oder eine der anderen zahlreichen Quellen zu diesem Thema.

Nächste Schritte

Sie haben eine allgemeine Anwendung für die Ausführung auf Ihrem Azure Sphere-Gerät erstellt. Sie können es jetzt ändern. Hardwaredefinitionen beschreiben, wie sie eine JSON-Datei mit Hardwaredefinition bearbeiten und die zugeordnete Headerdatei neu generieren.

Als Nächstes erfahren Sie, wie Sie Ihre allgemeine Anwendung aus der Cloud bereitstellen.

Siehe auch

Besuchen Sie den Azure Sphere-Katalog, eine Sammlung inspirierender, nicht erhaltener und wiederverwendbarer Azure Sphere-Skripts, Hilfsprogramme und Funktionen.