Verwenden von Hardwaredefinitionen

In diesem Thema wird beschrieben, wie Sie Hardwaredefinitionen in Ihrer allgemeinen Anwendung verwenden. Ausführlichere Informationen zu Hardwaredefinitionen, einschließlich der Erstellung eigener Hardwaredefinitionsdateien, finden Sie unter Hardwaredefinitionen .

Hinweis

Das Verzeichnis mit den JSON-Hardwaredefinitionen enthält auch ein inc/hw-Unterverzeichnis für die entsprechenden Headerdateidefinitionen.

Verwenden einer Hardwaredefinition aus dem SDK

Das Verzeichnis HardwareDefinitions im Azure Sphere SDK enthält Definitionen für gängige Azure Sphere-Boards und die verwendeten Chips. Dieses Verzeichnis befindet sich %ProgramFiles(x86)%\Microsoft Azure Sphere SDK\HardwareDefinitions unter Windows und /opt/azurespheresdk/HardwareDefinitions unter Linux.

  1. Suchen Sie in CMakelists.txt nach der Funktion azsphere_target_hardware_definition , und legen Sie den TARGET_DEFINITION Parameter auf die JSON-Datei der Hardwaredefinition für das Zielboard fest. Das folgende Beispiel zeigt, wie Sie den TARGET_DEFINITION Parameter festlegen, wenn Ihre Anwendung das MT3620 Reference Development Board (RDB) verwendet:

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DEFINITION "mt3620_rdb.json")

  2. Fügen Sie in Standard.c die entsprechende Hardwaredefinitionsheaderdatei für das Zielboard ein:

    #include  "hw/mt3620_rdb.h"
    
  3. Informationen zum Bezeichner und zum Typ der in Ihrer Anwendung verwendeten Peripheriegeräte finden Sie in der Headerdatei oder in der JSON-Datei. Erstellen oder ändern Sie Ihren Anwendungscode entsprechend.

    Beispielsweise verwendet eine Anwendung, die auf das MT3620 Reference Development Board (RDB) ausgerichtet ist, eine on-board LED. Die Konstante, die zum Identifizieren der LED verwendet wird, wird in der Headerdatei mt3620_rdb.h wie folgt definiert:

    // LED 1 Red channel uses GPIO8.
    #define MT3620_RDB_LED1_RED MT3620_GPIO8
    

    Die folgende Zeile initialisiert die LED unter Verwendung der in der Hardwaredefinition bereitgestellten Informationen.

    int fd = GPIO_OpenAsOutput(MT3620_RDB_LED1_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
    
  4. Aktualisieren Sie das Anwendungsmanifest , um die Peripheriegeräte zu aktivieren, die die App jetzt verwendet:

    "Capabilities": {  "Gpio": [ "MT3620_RDB_LED1_RED" ]},
    
  5. Kompilieren und packen Sie die Anwendung.

Verwenden einer Hardwaredefinition, die nicht mit dem SDK installiert ist

  1. Suchen Sie in CMakelists.txt nach der azsphere_target_hardware_definition Funktion .

  2. Legen Sie den TARGET_DIRECTORY Parameter mit dem relativen oder absoluten Pfad oder den Pfaden zu dem Verzeichnis oder den Verzeichnissen fest, die die Hardwaredefinitionsdateien enthalten, die Sie verwenden möchten.

  3. Legen Sie den TARGET_DEFINITION Parameter auf den Namen der JSON-Datei der Hardwaredefinition fest. Der Buildprozess sucht nach dieser Datei und allen dateien, die importiert werden, in den Zielverzeichnissen in der aufgeführten Reihenfolge und dann im SDK selbst.

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "<path>/my_app/contoso_hardware_definitions" TARGET_DEFINITION "contoso_board.json")

    Geben Sie jedes Zielverzeichnis in doppelten Anführungszeichen an, und trennen Sie Verzeichnisnamen mit Leerzeichen. Im Beispiel <stellt path> den Pfad zum ordner my_app dar.

  4. Schließen Sie in Standard.c die Hardwaredefinitionsheaderdatei für das Zielboard ein. Der Buildprozess sucht nach dieser Datei und den darin enthaltenen Dateien im Unterverzeichnis "inc" der Zielverzeichnisse in der aufgeführten Reihenfolge und dann im SDK selbst. Daher finden Sie nach der folgenden Konvention contoso_board.h im Unterverzeichnis inc/hw der Zielverzeichnisse:

    #include   "hw/contoso_board.h"
    
  5. Informationen zum Bezeichner und zum Typ der in Ihrer Anwendung verwendeten Peripheriegeräte finden Sie in der Headerdatei oder in der JSON-Datei. Erstellen oder ändern Sie Ihren Anwendungscode entsprechend.

    int fd = GPIO_OpenAsOutput(CONTOSO_BOARD_LED_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
    
  6. Aktualisieren Sie das Anwendungsmanifest (app_manifest.json), um die Peripheriegeräte zu aktivieren, die die App jetzt verwendet:

    "Capabilities": {  "Gpio": [ "CONTOSO_BOARD_LED_RED" ]},
    
  7. Kompilieren und packen Sie die Anwendung.