Freigeben über


Erstellen und Bereitstellen von Partneranwendungen

In diesem Abschnitt wird beschrieben, wie Sie Azure Sphere-Partneranwendungen erstellen, packen und bereitstellen.

In diesen Anweisungen werden die IntercoreComms-Beispielanwendungen als Beispiel verwendet.

Voraussetzungen

Aktivieren der Entwicklung und des Debuggens

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 Debuggen 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 PC geladen werden, und sie lassen das Debuggen von Anwendungen nicht zu. Durch das Vorbereiten des Geräts für das Debuggen wird diese Einschränkung entfernt, und es wird software geladen, die für das Debuggen erforderlich ist, und die Gerätefunktionen werden entsperrt.

Verwenden Sie zum Debuggen auf den Echtzeitkernen den Befehl az sphere device enable-development . Dieser Befehl konfiguriert das Gerät so, dass es Anwendungen von einem PC zum Debuggen akzeptiert, und weist das Gerät der Gerätegruppe Entwicklung 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.

Unter Windows müssen Sie den --enable-rt-core-debugging Parameter hinzufügen, der die Debugserver und die erforderlichen Treiber für jeden Kerntyp auf das Gerät lädt.

  1. Melden Sie sich bei Azure Sphere an, wenn Sie dies noch nicht getan haben:

    az login
    
  2. Öffnen Sie eine Befehlszeilenschnittstelle mithilfe von PowerShell oder der Windows-Eingabeaufforderung mit Administratorrechten. Der --enable-rt-core-debugging Parameter erfordert Administratorrechte, da er USB-Treiber für den Debugger installiert.

  3. Geben Sie den folgenden Befehl ein:

    az sphere device enable-development --enable-rt-core-debugging  --catalog <CatalogName>  --resource-group <ResourceGroupName>
    
  4. Schließen Sie das Fenster, nachdem der Befehl abgeschlossen wurde, da keine Administratorrechte mehr erforderlich sind. Als bewährte Methode sollten Sie immer die niedrigste Berechtigung verwenden, mit der eine Aufgabe ausgeführt werden kann.

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

Aktivieren der Entwicklung und des Debuggens

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 Debuggen 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 PC geladen werden, und sie lassen das Debuggen von Anwendungen nicht zu. Durch die Vorbereitung des Geräts für das Debuggen wird diese Einschränkung entfernt, und es wird software geladen, die für das Debuggen erforderlich ist, und die Gerätefunktionen werden entsperrt, wie unter Gerätefunktionen und Kommunikation beschrieben.

Verwenden Sie zum Debuggen auf den Echtzeitkernen den Befehl az sphere device enable-development . Dieser Befehl konfiguriert das Gerät so, dass es Anwendungen von einem PC zum Debuggen akzeptiert, und weist das Gerät der Gerätegruppe Entwicklung 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.

Unter Windows müssen Sie den --enable-rt-core-debugging Parameter hinzufügen, der die Debugserver und die erforderlichen Treiber für jeden Kerntyp auf das Gerät lädt.

  1. Melden Sie sich bei Azure an, wenn Sie dies noch nicht getan haben:

    az login
    
  2. Öffnen Sie eine Befehlszeilenschnittstelle mithilfe von PowerShell, der Windows-Eingabeaufforderung oder der Linux-Befehlsshell mit Administratorrechten. Der --enable-rt-core-debugging Parameter erfordert Administratorrechte, da er USB-Treiber für den Debugger installiert.

  3. Geben Sie den folgenden Befehl ein:

    az sphere device enable-development --enable-rt-core-debugging
    
  4. Schließen Sie das Fenster, nachdem der Befehl abgeschlossen wurde, da keine Administratorrechte mehr erforderlich sind. Als bewährte Methode sollten Sie immer die niedrigste Berechtigung verwenden, mit der eine Aufgabe ausgeführt werden kann.

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

error: The device did not accept the device capability configuration. Please check the Azure Sphere OS on your device is up-to-date using 'az sphere device show-deployment-status'.

Erstellen von Partner-Apps mit Visual Studio

  1. Stellen Sie sicher, dass Ihr Gerät über USB mit Ihrem PC verbunden ist. Wählen Sie im Menü Startelement festlegen die Option Azure Sphere-App (Alle Kerne) aus, wobei Azure Sphere-App der Name Ihres Projekts der obersten Ebene ist, oder drücken Sie F5.

    Schaltfläche

  2. Wenn Sie aufgefordert werden, das Projekt zu erstellen, wählen Sie Ja aus. Visual Studio kompiliert die Partneranwendungen, erstellt Imagepakete, überlädt sie quer auf das Board und startet sie im Debugmodus. Querladen bedeutet, dass die Anwendungen direkt vom PC über eine kabelgebundene Verbindung und nicht über die Cloud bereitgestellt werden.

    Notieren Sie sich die Pfade in der Ausgabe Anzeigen>ausgabe>von: Buildausgabe , die den Speicherort der Ausgabeimagepakete auf Ihrem PC angibt. Wenn Sie bereit sind, eine Bereitstellung zu erstellen, müssen Sie die Pfade zu den Imagepaketen kennen.

  3. Standardmäßig wird im Ausgabefenster 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.

Erstellen von Partner-Apps mit Visual Studio Code

  1. Öffnen Sie den Ordner mit Ihren Partneranwendungen. Visual Studio Code erkennt die Arbeitsbereichsdatei und fragt Sie, ob Sie den Arbeitsbereich öffnen möchten. Wählen Sie Arbeitsbereich öffnen aus, um die Echtzeitanwendung und die allgemeine Anwendung gleichzeitig zu öffnen.

  2. Klicken Sie mit der rechten Maustaste auf eine der beiden CMakeLists.txt Dateien, und wählen Sie Alle Projekte erstellen aus.

  3. Klicken Sie auf der Visual Studio Code-Aktivitätsleiste auf das Symbol Ausführen.

  4. Wählen Sie im Pulldownmenü, das oben im Fenster auf der linken Seite des Bildschirms angezeigt wird, Die Option Azure Sphere-Apps (gdb)(Arbeitsbereich) starten aus.

  5. 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.

  6. Warten Sie einige Sekunden, bis Visual Studio Code die Anwendungen erstellt, die Imagepakete 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 Anwendungen erstellt werden müssen. Wenn ja, verschiebt sich der Fokus auf das Ausgabefenster, 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.

Kompilieren und Erstellen der Anwendung

Um Ihre Anwendungen mit der CLI zu erstellen, müssen Sie die richtigen Kompilierungstools, Header und Bibliotheken – zusammen als Sysroot bezeichnet – auf Ihrem Computer finden. 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.

Erstellen Sie beim Erstellen mit der CLI zuerst die Echtzeitanwendung, und stellen Sie sie bereit, und erstellen Sie dann die allgemeine Anwendung und stellen sie bereit.

Erstellen und Bereitstellen der Echtzeitanwendung

  1. Navigieren Sie zu dem Ordner, der Ihre Echtzeitanwendung enthält.

  2. Öffnen Sie die app_manifest.json-Datei, und überprüfen Sie, ob die Komponenten-ID der allgemeinen App in der AllowedApplicationConnections-Funktion angezeigt wird.

  3. Öffnen Sie eine Befehlszeilenschnittstelle mithilfe von PowerShell, der Windows-Eingabeaufforderung oder der Linux-Befehlsshell. Navigieren Sie zu Ihrem Projektbuildverzeichnis.

  4. 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 IntercoreComms RTApp:

    Windows-Eingabeaufforderung

    cmake ^
    --preset "ARM-Debug" ^
    "C:\AzSphere\azure-sphere-samples\Samples\IntercoreComms\IntercoreComms_RTApp_MT3620_BareMetal"
    

    Windows PowerShell

    cmake `
    --preset "ARM-Debug" `
    "C:\AzSphere\azure-sphere-samples\Samples\IntercoreComms\IntercoreComms_RTApp_MT3620_BareMetal"
    
  5. Führen Sie in Ihrem Projektbuildverzeichnis an der Eingabeaufforderung 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.

  6. Löschen Sie alle Anwendungen, die bereits auf dem Gerät bereitgestellt wurden:

    az sphere device sideload delete
    
  7. Laden Sie aus Ihrem Projektbuildverzeichnis an der Eingabeaufforderung das Von Ninja erstellte Imagepaket:

    az sphere device sideload deploy --image-package <path-to-imagepackage>
    

    Die Ausführung der Anwendung beginnt kurz nach dem Laden.

  8. Rufen Sie die Komponenten-ID für das Image ab:

    az sphere image-package show --image-package <path-to-imagepackage>
    

    Der Befehl gibt alle Metadaten für das Imagepaket zurück. Die Komponenten-ID für die Anwendung wird im Abschnitt Identität für den Anwendungsbildtyp angezeigt. Zum Beispiel:

    ...
      "Identity": {
        "ComponentId": "<component-id>",
        "ImageId": "<image-id>",
        "ImageType": "Application"
      },
    ...
    

Erstellen und Bereitstellen der allgemeinen Anwendung

  1. Navigieren Sie zu dem Ordner, der Ihre allgemeine Anwendung enthält.

  2. Öffnen Sie die app_manifest.json-Datei, und überprüfen Sie, ob die Komponenten-ID der RTApp in der AllowedApplicationConnections-Funktion angezeigt wird.

  3. Öffnen Sie eine Befehlszeilenschnittstelle mithilfe von PowerShell, der Windows-Eingabeaufforderung oder der Linux-Befehlsshell. Navigieren Sie zu Ihrem Projektbuildverzeichnis.

  4. 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 allgemeine IntercoreComms-Anwendung.

    Windows-Eingabeaufforderung

    cmake ^
    --preset "ARM-Debug" ^
    "C:\AzSphere\azure-sphere-samples\Samples\IntercoreComms\IntercoreComms_HighLevelApp"
    

    Windows PowerShell

    cmake `
    --preset "ARM-Debug" `
    "C:\AzSphere\azure-sphere-samples\Samples\IntercoreComms\IntercoreComms_HighLevelApp"
    
  5. Führen Sie in Ihrem Projektbuildverzeichnis an der Eingabeaufforderung 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.

  6. Laden Sie aus Ihrem Projektbuildverzeichnis an der Eingabeaufforderung das Von Ninja erstellte Imagepaket:

    az sphere device sideload deploy --image-package <package-name>
    

    Die Ausführung der Anwendung beginnt kurz nach dem Laden.

  7. Rufen Sie die Komponenten-ID für das Image ab:

    az sphere image-package show --image-package <path-to-imagepackage>
    

    Der Befehl gibt alle Metadaten für das Imagepaket zurück. Die Komponenten-ID für die Anwendung wird im Abschnitt Identität für den Anwendungsbildtyp angezeigt. Zum Beispiel:

      "ComponentId": "<component-ID>",
    ...
      "Identity": {
        "ComponentId": "<component-id>",
        "ImageId": "<image-id>",
        "ImageType": "Application"
      },
    ...