Freigeben über


Erstellen von Partneranwendungen

Die einfachste Möglichkeit, ein neues Paar von Partneranwendungen zu erstellen, besteht darin, ein Verzeichnis der obersten Ebene zu erstellen, das sowohl allgemeine als auch echtzeitfähige Anwendungen enthält, und dann die allgemeinen und echtzeitfähigen Apps nacheinander zu erstellen.

Erstellen einer allgemeinen App

Um eine allgemeine Anwendung zu erstellen, beginnen Sie mit der Vorlage HLCore Blank aus der Azure Sphere-Erweiterung von Visual Studio Code, und passen Sie die Konfiguration an Ihr Projekt an, indem Sie die folgenden Schritte ausführen:

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

    Befehlsleiste in Visual Studio Code

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

    Popupmenü mit Vorlagennamen

  3. Visual Studio Code zeigt dann ein Explorer Fenster an. Navigieren Sie zu dem Ordner, in dem Sie die leere Anwendung platzieren möchten (oder wählen Sie Neuer Ordner aus, und erstellen Sie ein neues Partnerprojektverzeichnis der obersten Ebene), und geben Sie einen Namen für Ihr Projekt an, z. B. NewHLApp. Visual Studio Code erstellt den Ordner NewHLApp am ausgewählten Speicherort und generiert die Builddateien für die leere Anwendung. Es sollten Nachrichten von CMake angezeigt werden.

  4. Öffnen Sie die CMakeLists.txt Datei, und geben Sie den Ordner an, der Definitionen für die verwendete Hardware enthält. Standardmäßig enthält die ANWENDUNG HLCore Blank keine Hardwaredefinitionen. Beispielhardwaredefinitionen finden Sie im Azure Sphere-Beispielrepository, oder erstellen Sie eine, wie unter Hardwaredefinitionen beschrieben.

    Im Folgenden wird gezeigt, wie Sie die Beispielhardwaredefinitionen für das Seeed Azure Sphere MT3620 Development Kit hinzufügen:

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

    Diese Zeile sollte eingefügt werden, bevor der letzte Befehl beginnt azsphere_target_add_image_package.

Sie können auch eine neue allgemeine Anwendung aus einem der allgemeinen Azure Sphere-Beispiele erstellen:

  1. Klonen Sie das Beispielrepository , wenn Sie dies noch nicht getan haben. Kopieren Sie einen der allgemeinen Anwendungsordner, und benennen Sie ihn für Ihr Projekt um.

  2. Ändern Sie in der CMakeLists.txt-Datei den Projektnamen in den Namen Ihres neuen Ordners. Zum Beispiel:

    PROJECT(NewHLApp C)

Erstellen einer RTApp

Um eine neue Echtzeitanwendung zu erstellen, beginnen Sie mit der Vorlage RTCore Blank aus der Azure Sphere-Erweiterung von Visual Studio Code, und passen Sie die Konfiguration an Ihr Projekt an, indem Sie die folgenden Schritte ausführen:

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

    Befehlsleiste in Visual Studio Code

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

    Popupmenü mit Vorlagennamen

  3. Visual Studio Code zeigt dann ein Explorer Fenster an. Navigieren Sie zu dem Ordner, der Den allgemeinen Anwendungsordner enthält, und geben Sie einen Namen für Ihr Projekt an, z. B. NewRTApp. Visual Studio Code erstellt den Ordner NewRTApp am ausgewählten Speicherort und generiert die Builddateien für die leere Anwendung. Es sollten Nachrichten von CMake angezeigt werden.

Sie können auch eine neue Echtzeitanwendung aus einem der Echtzeit-fähigen Azure Sphere-Beispiele erstellen:

  1. Klonen Sie das Beispielrepository , wenn Sie dies noch nicht getan haben. Kopieren Sie einen der allgemeinen Anwendungsordner, und benennen Sie ihn für Ihr Projekt um.

  2. Ändern Sie in der CMakeLists.txt-Datei den Projektnamen in den Namen Ihres neuen Ordners. Zum Beispiel:

    PROJECT(NewRTApp C)

Konfigurieren Ihres Arbeitsbereichs für die Entwicklung von Partner-Apps

Um Ihre allgemeine Anwendung und echtzeitfähige Anwendung effektiv für die Entwicklung zu verknüpfen, kombinieren Sie Ihre beiden Anwendungen wie folgt in einem einzigen Multi-Root-Arbeitsbereich:

  1. Öffnen Sie den Allgemeinen Anwendungsordner in Visual Studio Code.

  2. Wählen Sie Datei>Ordner zum Arbeitsbereich hinzufügen und dann Ihren Echtzeitanwendungsordner aus.

  3. Wählen Sie Datei>Arbeitsbereich speichern unter... aus, und speichern Sie die Datei dann in dem Ordner, der sowohl echtzeitfähige als auch allgemeine Anwendungen enthält.

  4. Öffnen Sie die Arbeitsbereichsdatei in einem Text-Editor, und fügen Sie die folgenden Startinformationen unmittelbar nach der Zeile hinzu "settings" :

    "launch": {
        "configurations": [{
            "name": "Launch Azure Sphere Apps (All Cores)",
            "type": "azurespheredbg",
            "request": "launch",
            "args": [],
            "stopAtEntry": false,
            "environment": [],
            "externalConsole": true,
            "partnerComponents": [],
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }],
        "compounds": []
    }

Weitere Informationen zu Arbeitsbereichen mit mehreren Roots finden Sie in der Visual Studio Code-Dokumentation .

Erstellen einer allgemeinen App

Um eine neue allgemeine Anwendung zu erstellen, beginnen Sie mit der Vorlage HLCore Blank aus der Azure Sphere-Erweiterung von Visual Studio, und passen Sie die Konfiguration an Ihr Projekt an, indem Sie die folgenden Schritte ausführen:

  1. Starten Sie Visual Studio, und wählen Sie Neues Projekt erstellen aus.

  2. Geben Sie Azure Sphere in das Suchfeld nach Vorlagen suchen ein. Wählen Sie in der zurückgegebenen Liste die Option Azure Sphere HLCore Blank aus, und wählen Sie dann Weiter aus.

  3. Geben Sie einen Projektnamen (z. B. NewHLApp), einen Projektdateispeicherort und einen Projektmappennamen an (der mit dem Projektnamen identisch sein kann), und wählen Sie dann Erstellen aus. Visual Studio erstellt den Ordner NewHLpp am ausgewählten Speicherort und generiert die Builddateien für die leere Anwendung. Es sollten Nachrichten von CMake angezeigt werden.

  4. Öffnen Sie die CMakeLists.txt Datei, und geben Sie den Ordner an, der Definitionen für die verwendete Hardware enthält. Standardmäßig enthält die HL Blank-Anwendung keine Hardwaredefinitionen. Beispielhardwaredefinitionen finden Sie im Azure Sphere-Beispielrepository, oder erstellen Sie eine, wie unter Hardwaredefinitionen beschrieben.

    Im Folgenden wird gezeigt, wie Sie die Beispielhardwaredefinitionen für das Seeed Azure Sphere MT3620 Development Kit hinzufügen:

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

    Diese Zeile sollte eingefügt werden, bevor der letzte Befehl beginnt azsphere_target_add_image_package.

Sie können auch eine neue allgemeine Anwendung aus einem der allgemeinen Azure Sphere-Beispiele erstellen:

  1. Klonen Sie das Beispielrepository , wenn Sie dies noch nicht getan haben. Kopieren Sie einen der allgemeinen Anwendungsordner, und benennen Sie ihn für Ihr Projekt um.

  2. Ändern Sie in der CMakeLists.txt-Datei den Projektnamen in den Namen Ihres neuen Ordners. Zum Beispiel:

    PROJECT(NewHLApp C)

Erstellen einer RTApp

Um eine neue Echtzeitanwendung zu erstellen, beginnen Sie mit der Vorlage RTCore Blank aus der Azure Sphere-Erweiterung von Visual Studio, und passen Sie die Konfiguration an Ihr Projekt an, indem Sie die folgenden Schritte ausführen:

  1. Starten Sie Visual Studio, und wählen Sie Neues Projekt erstellen aus.

  2. Geben Sie Azure Sphere in das Suchfeld nach Vorlagen suchen ein. Wählen Sie azure Sphere RTCore Blank aus der zurückgegebenen Liste aus, und wählen Sie dann Weiter aus.

  3. Geben Sie einen Projektnamen (z. B. NewRTApp), einen Projektdateispeicherort und den Projektmappennamen an, den Sie für Ihre allgemeine Anwendung verwendet haben, und wählen Sie dann Erstellen aus. Visual Studio erstellt den Ordner NewRTApp am ausgewählten Speicherort und generiert die Builddateien für die leere Anwendung. Es sollten Nachrichten von CMake angezeigt werden.

Sie können auch eine neue Echtzeitanwendung aus einem der Echtzeit-fähigen Azure Sphere-Beispiele erstellen:

  1. Klonen Sie das Beispielrepository , wenn Sie dies noch nicht getan haben. Kopieren Sie einen der Echtzeit-fähigen Anwendungsordner, und benennen Sie ihn für Ihr Projekt um.

  2. Ändern Sie in der CMakeLists.txt-Datei den Projektnamen in den Namen Ihres neuen Ordners. Zum Beispiel:

    PROJECT(NewRTApp C)

Erstellen einer Visual Studio-Startdatei auf oberster Ebene

Um gleichzeitig mit Partneranwendungen zu arbeiten, möchten Sie visual Studio das Debuggen in mehreren Kernen erlauben. Sie können dies aktivieren, indem Sie eine Datei launch.vs.json im Ordner der obersten Ebene erstellen, der die beiden Partneranwendungsordner enthält. Diese Datei sollte einen Inhalt wie den folgenden aufweisen:

{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
      "type": "azurespheredbg",
      "name": "Azure Sphere Apps (All Cores)",
      "project": "PartnerAppsHL/CMakeLists.txt",
      "DebugBuildStepBuildAll": "true",
      "workingDirectory": "${workspaceRoot}",
      "applicationPath": "${debugInfo.target}",
      "imagePath": "${debugInfo.targetImage}",
      "targetCore": "AnyCore",
      "partnerComponents": [ "0cc81b35-08dd-4d65-b318-5fa73a4ff6b1", "a9d25f0a-807e-4cb9-80e8-80fee5a1bcb4" ]
    }
  ]
}

Die "project" Zeile sollte den relativen Pfad zur CMakeLists.txt-Datei der allgemeinen Anwendung enthalten, und die "partnerComponents" Zeile sollte die Komponenten-IDs der beiden Partneranwendungen enthalten.

Nachdem Sie diese Datei launch.vs.json der obersten Ebene erstellt haben, können Sie Visual Studio im Ordner der obersten Ebene öffnen. Im Menü Startelement auswählen wird die Option Azure Sphere Apps (Alle Kerne) angezeigt.

Erstellen einer Datei "CMakeWorkspaceSettings.json"

Wenn Sie Visual Studio 2022, Version 17.1 oder höher, verwenden und über ein Projekt mit mehreren Stammelementen verfügen, z. B. das IntercoreComms-Beispiel, müssen Sie dem Ordner auf oberster Ebene des Projekts eine CMakeWorkspaceSettings.json-Datei hinzufügen. Die Datei verfügt über zwei Einträge: einer, der angibt, dass der CMake-Build aktiviert ist, und einer mit den Pfaden zu den mehreren Stammelementen. Für das Beispiel IntercoreComms enthält die Datei CMakeWorkspaceSettings.json beispielsweise den folgenden Inhalt:

{
  "enableCMake": true,
  "sourceDirectory": [ "IntercoreComms_HighLevelApp", "IntercoreComms_RTApp_MT3620_BareMetal" ]
}

Die Pfade werden relativ zum Ordner angegeben, der die Datei CMakeWorkspaceSettings.json enthält.

Erstellen einer allgemeinen App

Um eine neue allgemeine Anwendung zu erstellen, beginnen Sie mit einem der allgemeinen Azure Sphere-Beispiele:

  1. Klonen Sie das Beispielrepository , wenn Sie dies noch nicht getan haben. Kopieren Sie einen der allgemeinen Anwendungsordner, und benennen Sie ihn für Ihr Projekt um.

  2. Ändern Sie in der CMakeLists.txt-Datei den Projektnamen in den Namen Ihres neuen Ordners. Zum Beispiel:

    PROJECT(NewHLApp C)

Erstellen einer RTApp

Die einfachste Möglichkeit zum Erstellen einer neuen Echtzeitanwendung besteht darin, mit dem HelloWorld_RTApp_MT3620_BareMetal Beispiel zu beginnen und die Konfiguration an Ihr Projekt anzupassen, indem Sie die folgenden Schritte ausführen:

  1. Klonen Sie das Beispielrepository , wenn Sie dies noch nicht getan haben. Kopieren Sie den Ordner HelloWorld_RTApp_MT3620_BareMetal, und benennen Sie ihn für Ihr Projekt um.

  2. Ändern Sie in der CMakeLists.txt-Datei den Projektnamen in den Namen Ihres neuen Ordners. Zum Beispiel:

    PROJECT(NewRTApp C)

Grundlegende Dateistruktur von Azure Sphere-Anwendungen

Unabhängig davon, wie Sie Ihre Anwendung erstellen, verwenden alle Azure Sphere-Anwendungen die folgenden Kerndateien:

  • Anwendungsquellcode in einer oder mehreren Dateien. Derzeit wird nur C-Quellcode unterstützt.
  • CMake-Builddateien. CMakeLists.txt ist erforderlich. CMake wird zusammen mit dem Hilfsprogramm Ninja Lightweight Build verwendet, um den Azure Sphere-Anwendungsbuildprozess zu steuern.
  • Eine App-Manifestdatei , die die für die Anwendung verfügbaren Funktionen beschreibt.

Allgemeine Anwendungen verfügen in der Regel über mindestens drei weitere Dateien:

  • Eine Datei "applibs-versions.h" zum Angeben der Versionsebenen verschiedener Azure Sphere-APIs
  • Zwei Hardwaredefinitionsdateien (eine bearbeitbare Version im JSON-Format und eine daraus generierte Includedatei in der C-Sprache), die eine bequeme Möglichkeit bieten, auf Hardwarekomponenten in Ihrem Code zu verweisen. Mit einem konsistenten Satz von Hardwaredefinitionsdateien können Sie hardwareunabhängigen Quellcode schreiben und dann Anwendungsimages für bestimmte Hardware erstellen, indem Sie einfach die entsprechende Hardwaredefinitionsdatei in Ihrer CMakeLists.txt-Datei neu festlegen.

Echtzeitfähige Anwendungen fügen mindestens eine weitere Datei hinzu: eine linker.ld-Datei, um genau anzugeben, wo verschiedene Komponenten der Anwendung auf den Echtzeitkern geladen werden sollen.

Schreiben Von Allgemeinem App-Code

  1. Schreiben Sie Ihren allgemeinen Anwendungscode, indem Sie die allgemeinen Azure Sphere-App-Beispiele als Leitfäden verwenden. In den folgenden Themen werden bestimmte Implementierungsszenarien beschrieben:
  2. In der CMakeLists.txt-Datei:
    • Angeben der Revision der Azure Sphere SDK-Tools
    • Angeben des Ziel-API-Satzes
    • Angeben der Zielhardware
  3. In der Datei app_manifest.json:
    • Legen Sie Name auf Ihren Projektnamen fest.
    • Fügen Sie alle anwendungsspezifischen Funktionen hinzu, die Ihr Code benötigt, z. B. Hardwareressourcen oder Verbindungen. Wenn die allgemeine App mit einer RTApp kommuniziert, fügen Sie der Funktion die Komponenten-ID der allgemeinen Anwendung hinzu AllowedApplicationConnections .
  1. Wenn Sie Ihre RTApp zusammen mit einer allgemeinen Partner-App bereitstellen möchten, fügen Sie die Komponenten-ID des Partners dem Feld partnerComponents des Konfigurationsabschnitts der Datei launch.vs.json (Visual Studio) oder .vscode/launch.json (Visual Studio Code) hinzu:

    "partnerComponents": [ "25025d2c-66da-4448-bae1-ac26fcdd3627" ]

Schreiben Des RTApp-Codes

  1. Schreiben Sie Ihren RTApp-Code mithilfe der Azure Sphere RTApp-Beispiele als Leitfäden. In den folgenden Themen werden bestimmte Implementierungsszenarien beschrieben:
  2. In der Datei app_manifest.json:
    • Legen Sie auf Ihren Projektnamen fest Name ,
    • Legen Sie auf fest ApplicationType . "RealTimeCapable"
    • Fügen Sie alle anwendungsspezifischen Funktionen hinzu, die Ihr Code benötigt, z. B. Hardwareressourcen oder Verbindungen. Wenn die RTApp mit einer allgemeinen App kommuniziert, fügen Sie der Funktion die Komponenten-ID der allgemeinen Anwendung hinzu AllowedApplicationConnections .
  1. Wenn Sie Ihre RTApp zusammen mit einer allgemeinen Partner-App bereitstellen möchten, fügen Sie die Komponenten-ID des Partners dem Feld partnerComponents des Konfigurationsabschnitts der Datei launch.vs.json (Visual Studio) oder .vscode/launch.json (Visual Studio Code) hinzu:

    "partnerComponents": [ "25025d2c-66da-4448-bae1-ac26fcdd3627" ]

Siehe auch