Querladen eines Anwendungsimagepakets zu Testzwecken

Während der Entwicklung müssen Sie möglicherweise ein Imagepaket zu Testzwecken auf das Azure Sphere-Gerät querladen. Wenn Sie eine Anwendung mit der integrierten Entwicklungsumgebung (IDE) von Visual Studio oder Visual Studio Code erstellen, packt das SDK das Anwendungsimage für Sie. Wenn Sie direkten Zugriff auf ein Azure Sphere-Gerät haben, kann das SDK auch vorhandene Anwendungen löschen, die nicht als Partner gekennzeichnet sind, das neue Imagepaket auf das Gerät laden, es starten und das Debuggen aktivieren. Sie können ein Imagepaket auch direkt über die Befehlszeile querladen.

Sie müssen zuerst die AppDevelopment-Funktion für das Gerät aktivieren und das Gerät einer Gerätegruppe hinzufügen, die keine Cloudanwendungsupdates unterstützt. Durch das Zuweisen von Geräten zu einer solchen Gruppe wird sichergestellt, dass Ihre quergeladenen Anwendungen nicht von Cloudbereitstellungen überschrieben werden. Verwenden Sie zum Vorbereiten Ihres Geräts den Befehl az sphere device enable-development. Anschließend können Sie das Image querladen.

Querladen und Debuggen eines Imagepakets über die Befehlszeile

Zum Querladen des Imagepakets aus der Befehlszeile löschen Sie alle vorhandenen Anwendungen auf dem Gerät und laden dann die neue.

So beenden und löschen Sie alle Anwendungen auf dem Gerät:

az sphere device sideload delete

Um eine einzelne Anwendung zu löschen, fügen Sie die Option --component-id wie folgt hinzu:

az sphere device sideload delete --component-id <ComponentID>

Laden Sie als Nächstes das neue Imagepaket quer:

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

Ersetzen Sie imagepackagepath durch den Pfad zum Imagepaket. Wenn Sie Visual Studio oder Visual Studio Code verwenden, finden Sie das Imagepaket im Unterordner bin\ARM\Debug oder bin\ARM\Release des Projektordners der Anwendung. Standardmäßig startet der Befehl die Anwendung nach der Bereitstellung.

Fügen Sie zum Debuggen der Anwendung dem Befehl az sphere device sideload deploy das Flag --manual-start hinzu, um den automatischen Start zu unterdrücken, und starten Sie dann die Anwendung zum Debuggen:

az sphere device sideload deploy --manual-start --image-package <imagepackagepath>
az sphere device app start --debug --component-id <ComponentID>

Der Befehl zeigt die Ausgabe- und Debugports für allgemeine Anwendungen an:

   Output Port: 2342
   GDB Port: 2345

Anwendungen als Partner markieren

Verwandte Anwendungen sollten als Partneranwendungen gekennzeichnet werden. Es gibt viele Situationen, in denen Sie mehrere Anwendungen laden würden, z. B. ein Paar allgemeiner Anwendungen und Echtzeitanwendungen, die miteinander kommunizieren. Wenn Sie die Anwendungen als Partner markieren, wird verhindert, dass eine anwendung gelöscht wird, wenn die zweite geladen wird. Wenn die Visual Studio- und Visual Studio Code-IDEs ein neues Imagepaket querladen, werden alle vorhandenen Anwendungen gelöscht, die nicht als Partneranwendungen gekennzeichnet sind.

So markieren Sie eine Anwendung als Partner mithilfe von CMake in Visual Studio:

  1. Bearbeiten Sie die Datei launch.vs.json für die Anwendung.

  2. Fügen Sie die folgende Zeile hinzu:

    "partnerComponents": [ "<Component ID>" ]
    

    Ersetzen Sie die Komponenten-ID der Partneranwendung durch , <Component ID> und speichern Sie die Datei. Sie finden die Komponenten-ID jeder Anwendung in der datei app_manifest.json oder mithilfe von az sphere device image list-installed oder az sphere device app show-status.

So markieren Sie eine Anwendung als Partner mithilfe von CMake in Visual Studio Code:

  1. Bearbeiten Sie die Datei .vscode\launch.json für die Anwendung.

  2. Fügen Sie die folgende Zeile hinzu:

    "partnerComponents": [ "<Component ID>" ]
    

    Ersetzen Sie die Komponenten-ID der Partneranwendung durch , <Component ID> und speichern Sie die Datei. Sie finden die Komponenten-ID jeder Anwendung in der datei app_manifest.json oder mithilfe von az sphere device image list-installed oder az sphere device app show-status.