Verwenden von Hardwaredefinitionen
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.
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 Hardwaredefinitionsdefinitionen .
Hinweis
Das Verzeichnis, das die JSON-Hardwaredefinitionen enthält, enthält auch ein unterverzeichnis "inc/hw" für die entsprechenden Headerdateidefinitionen.
Verwenden einer Hardwaredefinition aus dem SDK
Das HardwareDefinitions-Verzeichnis im Azure Sphere SDK enthält Definitionen für allgemeine 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.
Suchen Sie in CMakelists.txt nach der Funktion
azsphere_target_hardware_definition
, und legen Sie denTARGET_DEFINITION
Parameter auf die JSON-Datei der Hardwaredefinition für das Zielboard fest. Das folgende Beispiel zeigt, wie DerTARGET_DEFINITION
Parameter festgelegt wird, wenn Ihre Anwendung das MT3620 Reference Development Board (RDB) verwendet:azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DEFINITION "mt3620_rdb.json")
Fügen Sie in "main.c" die entsprechende Hardwaredefinitionsheaderdatei für das Zielboard ein:
#include "hw/mt3620_rdb.h"
Sehen Sie sich die Headerdatei oder die JSON-Datei an, um Informationen über den Bezeichner und den Typ von Peripheriegeräten abzurufen, die in Ihrer Anwendung verwendet werden. Erstellen oder ändern Sie den Anwendungscode entsprechend.
Beispielsweise verwendet eine Anwendung, die auf das MT3620 Reference Development Board (RDB) abzielt, eine On-Board-LED. Die Zum Identifizieren der LED verwendete Konstante wird in der Headerdatei mt3620_rdb.h wie folgt definiert:
// LED 1 Red channel uses GPIO8. #define MT3620_RDB_LED1_RED MT3620_GPIO8
In der folgenden Zeile wird die LED mithilfe der in der Hardwaredefinition angegebenen Informationen initialisiert.
int fd = GPIO_OpenAsOutput(MT3620_RDB_LED1_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
Aktualisieren Sie das Anwendungsmanifest , um die Peripheriegeräte zu aktivieren, die die App jetzt verwendet:
"Capabilities": { "Gpio": [ "MT3620_RDB_LED1_RED" ]},
Kompilieren und Verpacken der Anwendung.
Verwenden einer Hardwaredefinition, die nicht mit dem SDK installiert ist
Suchen Sie in CMakelists.txt nach der
azsphere_target_hardware_definition
Funktion.Legen Sie den
TARGET_DIRECTORY
Parameter mit dem relativen oder absoluten Pfad oder Pfad zu dem Verzeichnis oder verzeichnissen fest, das die hardwaredefinitionsdateien enthält, die Sie verwenden möchten.Legen Sie den
TARGET_DEFINITION
Parameter auf den Namen der JSON-Datei der Hardwaredefinition fest. Der Buildprozess sucht nach dieser Datei und nach dateien, die es importiert, 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 Anführungszeichen an und trennen Sie Verzeichnisnamen durch Leerzeichen. Im Beispiel <stellt der Pfad> den Pfad zum ordner my_app dar.
In main.c enthalten die Hardwaredefinitionsheaderdatei für das Zielboard. Der Buildvorgang 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 findet die folgende Konvention contoso_board.h in inc/hw-Unterverzeichnis der Zielverzeichnisse:
#include "hw/contoso_board.h"
Sehen Sie sich die Headerdatei oder die JSON-Datei an, um Informationen über den Bezeichner und den Typ von Peripheriegeräten abzurufen, die in Ihrer Anwendung verwendet werden. Erstellen oder ändern Sie den Anwendungscode entsprechend.
int fd = GPIO_OpenAsOutput(CONTOSO_BOARD_LED_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
Aktualisieren Sie das Anwendungsmanifest (app_manifest.json), um die Peripheriegeräte zu aktivieren, die die App jetzt verwendet:
"Capabilities": { "Gpio": [ "CONTOSO_BOARD_LED_RED" ]},
Kompilieren und Verpacken der Anwendung.