Freigeben über


Lernprogramm: Erstellen einer allgemeinen Anwendung

Wichtig

Dies ist die Dokumentation zu Azure Sphere (Legacy). Azure Sphere (Legacy) wird am 27. September 2027 eingestellt, und Benutzer müssen bis zu diesem Zeitpunkt zu Azure Sphere (integriert) migrieren. Verwenden Sie die Versionsauswahl oberhalb des Inhaltsverzeichniss, um die Dokumentation zu Azure Sphere (Integriert) anzuzeigen.

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. Siehe Übersicht über Azure Sphere-Anwendungen für grundlegende Informationen zu allgemeinen Anwendungen.

In diesem Tutorial lernen Sie Folgendes:

  • Bereiten Ihres Geräts für Entwicklung und Debugging
  • Erstellen, Ausführen und Debuggen einer allgemeinen Anwendung

Voraussetzungen

Bereiten Ihres Geräts für Entwicklung und Debugging

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“. Sie erlauben also nicht, dass Anwendungen, die sich in der Entwicklung befinden, von einem Computer geladen werden, und auch das Debuggen von Anwendungen ist unzulässig. Durch die Vorbereitung des Geräts zum Querladen wird diese Einschränkung aufgehoben.

Der Azsphere Device Enable-Development-Befehl konfiguriert das Gerät so, dass Anwendungen zum Debuggen akzeptiert werden, der Debugserver auf das Gerät geladen wird, und weist das Gerät einer Gerätegruppe zu, die keine Cloudanwendungsupdates zulässt. Während der Anwendungsentwicklung und des Debuggens sollten Sie das Gerät in dieser Gruppe belassen, damit Cloudanwendungsupdates die Anwendung in der Entwicklungsphase nicht überschreiben.

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

  2. Öffnen Sie eine Befehlszeilenschnittstelle mit PowerShell, Windows-Eingabeaufforderung oder Linux-Befehlsshell.

  3. Geben Sie den folgenden Befehl ein:

    azsphere device enable-development
    

    Die Ausgabe sollte etwa folgendermaßen aussehen:

    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 Azsphere-Gerätebefehl zur Aktivierung der Entwicklung fehlschlägt, lesen Sie die Problembehandlung von Azure Sphere-Problemen, um Hilfe zu erhalten.

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

In diesem Lernprogramm 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 installiert und ordnungsgemäß eingerichtet sind.

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

    Befehlsleiste in Visual Studio-Code

  2. Wählen Sie "Blinken" im Menü "Vorlagen" aus.

    Popupmenü mit Vorlagennamen

  3. 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 Blink-Ordner an Ihrem ausgewählten Speicherort und generiert die Builddateien für die Blink-Anwendung. Es sollten Meldungen von CMake angezeigt werden.

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

    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. Drücken Sie F5, um das Projekt zu erstellen und zu debuggen. Wenn das Projekt noch nicht erstellt wurde oder Dateien geändert und neu erstellt werden müssen, erstellt Visual Studio Code das Projekt vor dem Start des Debuggings.

  6. Warten Sie mehrere Sekunden, bis Visual Studio Code die Anwendung erstellt, ein Imagepaket erstellt, auf dem Board bereitgestellt und im Debugmodus gestartet wird. Statusaktualisierungen werden im Ausgabebereich auf dem Weg 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 zeigt der Ausgabebereich die Ausgabe von Azure Sphere an, während es das Imagepaket auf dem Gerät bereitstellt. Abschließend erhält die Debugging-Konsole den Fokus, und die gdb-Ausgabe wird angezeigt.

    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, wobei <der Pfad der vollständige Pfad> zum Buildordner Ihrer Blink-Anwendung ist und in der Regel auf "out\ARM-Debug" oder "out/ARM-Debug" endet.

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

  8. Legen Sie einen Haltepunkt an einer beliebigen Stelle in main.c fest, und durchlaufen Sie die Anwendung, damit Sie die Visual Studio Code-Debuggingfunktionen für Azure Sphere untersuchen können.

Erstellen und Ausführen der allgemeinen Anwendung mit Visual Studio

In diesem Lernprogramm 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 installiert und ordnungsgemäß eingerichtet sind.

  1. Wenn Visual Studio neu für Sie ist, sollten Sie sich den Schnellstart oder die Produkttour ansehen, um mehr über die Navigation und Verwendung zu erfahren.

  2. Öffnen Sie Visual Studio, und wählen Sie Neues Projekt erstellen aus. Geben Sie im Suchfeld "Azure-Kugel" ein, um eine Liste der Azure Sphere-Vorlagen abzurufen. 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 TARGET_DIRECTORY Einstellung, um den Ordner anzugeben, der Definitionen für die verwendete Hardware enthält. Standardmäßig gibt die TARGET_DIRECTORY HardwareDefinitions/mt3620_rbd an, die mit dem Seeed Azure Sphere MT3620 Development Kit übereinstimmt:

    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 die Option "Ausgabe anzeigen">aus, um den Ausgabebereich anzuzeigen.

  6. Stellen Sie sicher, dass das Gerät über USB mit Ihrem PC verbunden ist. Wählen Sie im Menü "Startelement festlegen" azure Sphere App (HLCore) aus, wobei Azure Sphere App der Name Ihrer aktuellen allgemeinen Anwendung ist, oder drücken Sie F5.

    Remote GDB Debugger-Schaltfläche

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

    Tipp

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

  8. Standardmäßig zeigt der Ausgabebereich die Ausgabe von "Geräteausgabe" an. Um Meldungen vom Debugger anzuzeigen, wählen Sie Debug aus dem Dropdownmenü Ausgabe anzeigen von:. Sie können auch die Programmdisassemblierung, die Register oder den Arbeitsspeicher über das Menü Debug >Windows untersuchen.

  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 Ihren Browser auf den Microsoft Samples-Browser.
  2. Geben Sie "Azure Sphere" in das Suchfeld 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

Befolgen Sie zum Erstellen der Build- und IMAGEPACKAGE-Dateien für die Beispielanwendung HelloWorld_HighLevelApp die folgenden Schritte.

  1. Passen Sie das Beispiel ggf. an Ihre Hardware an. Standardmäßig zielen die Beispiele auf Hardware ab, die auf das MT3620-Referenzboarddesign (RDB) folgt, z. B. das MT3620 Development Kit von Seeed Studios. Zusätzliche Zielhardwaredefinitionen für die Beispielanwendungen sind im HardwareDefinitions-Verzeichnis des Azure Sphere Samples-Repositorys 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 TARGET_DIRECTORY Parameter in der azure_target_hardware_definition-Funktion , um auf das Unterverzeichnis für Ihre Hardware zu zeigen. Zum Beispiel:

      azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "../../../HardwareDefinitions/avnet_mt3620_sk" TARGET_DEFINITION "sample_appliance.json")
      
  2. Öffnen Sie eine Befehlszeilenschnittstelle mit PowerShell, Windows-Eingabeaufforderung oder 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 Buildkonfigurationsname gemäß der Definition in CMakePresets.json.

    • --build <cmake-path>

      Das Binärverzeichnis, das den CMake-Cache enthält. Wenn Sie beispielsweise 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 mit Leerzeichen voneinander 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 allgemeinen 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 Bildpaketdatei 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 diesen Wert <binary-dir> auf das Binärverzeichnis fest, das den CMake-Cache enthält. Wenn Sie beispielsweise CMake in einem Azure Sphere-Beispiel ausführen, lautet cmake --build out/ARM-Debugder Buildbefehl .

    Löschen Sie bei der Problembehandlung Ihren gesamten Build, und wiederholen Sie den Vorgang – vor allem nach dem Vornehmen von Änderungen an Ihren CMake-Befehlen.

Ausführen des Beispiels

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

    azsphere device sideload delete
    
  2. Wechseln Sie in das Verzeichnis, das die zuvor erstellten Build- und „.imagepackage“-Dateien enthält.

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

    azsphere device sideload deploy --image-package HelloWorld_HighLevelApp.imagepackage
    

    Mit diesem Befehl wird das Imagepaket geladen und die Anwendung gestartet. Eine blinkende LED sollte angezeigt werden.

    Tipp

    Notieren Sie sich den Pfad des Bildpakets. Sie verwenden das Imagepaket später im Schnellstart für die Bereitstellung.

Debuggen des Beispiels

  1. Wechseln Sie in das Verzeichnis, das die zuvor erstellten Build- und „.imagepackage“-Dateien enthält.

  2. Rufen Sie die Komponenten-ID ab, wenn Sie sie noch nicht haben:

    azsphere image-package show --image-package HelloWorld_HighLevelApp.imagepackage
    

  1. Wenn die Anwendung ausgeführt wird, beenden Sie sie, und starten Sie sie dann mit der --debug-mode Option neu:

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

Folgendes sollte angezeigt werden:

 <ComponentId>
 App state   : debugging
 GDB port    : 2345
 Output port : 2342
 Core        : High-level
  1. Verwenden Sie einen Terminalclient , um eine Telnet- oder unformatierte TCP-Verbindung einzurichten, um den Ausgabedatenstrom aus dem Prozess zu lesen. Geben Sie 192.168.35.2 als IP-Adresse und 2342 als Port an.

  2. Öffnen Sie eine Befehlszeilenschnittstelle mithilfe von PowerShell oder einer Standard-Eingabeaufforderung unter Windows oder befehlsshell unter Linux, und übergeben Sie die .out-App-Binärdatei aus Ihrem Build als Parameter. Auf diese Weise wird das vollständige Debuggen des Quellcodes ermöglicht.

    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 auf unterschiedliche API-Sätze abzielen können, wie in der Anwendungslaufzeitversion, sysroots und Beta-APIs beschrieben. Die sysroot-Verzeichnisse werden im Azure Sphere SDK-Installationsordner unter Sysroots installiert.

  3. Legen Sie das Remotedebuggingziel auf IP-Adresse 192.168.35.2 für Port 2345 fest:

    target remote 192.168.35.2:2345

  4. Führen Sie alle anderen von Ihnen ausgewählten gdb-Befehle aus. Die folgenden Befehle legen z. B. beim Eintrag auf "main()" 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 Project Debugger oder eine der anderen quellen zum Thema.

Nächste Schritte

Sie haben eine allgemeine Anwendung für die Ausführung auf Ihrem Azure Sphere-Gerät erstellt. Möglicherweise möchten Sie sie jetzt ändern. Hardwaredefinitionen beschreiben, wie Eine JSON-Datei mit Hardwaredefinitionsdefinition bearbeitet und die zugeordnete Headerdatei erneut generiert wird.

Erfahren Sie als Nächstes, wie Sie Ihre allgemeine Anwendung aus der Cloud bereitstellen.

Siehe auch

Besuchen Sie die Azure Sphere Gallery, eine Sammlung von inspirierenden, nicht nachhaltigen und wiederverwendbaren Azure Sphere-Skripts, Dienstprogrammen und Funktionen.