Usare le definizioni hardware
Importante
Questa è la documentazione di Azure Sphere (legacy). Azure Sphere (legacy) viene ritirato il 27 settembre 2027 e gli utenti devono eseguire la migrazione ad Azure Sphere (integrato) entro questo periodo. Usare il selettore di versione posizionato sopra il sommario per visualizzare la documentazione di Azure Sphere (integrata).
Questo argomento descrive come usare le definizioni hardware nell'applicazione di alto livello. Per informazioni più dettagliate sulle definizioni hardware, vedere Definizioni hardware, tra cui come creare file di definizione hardware personalizzati.
Nota
La directory contenente le definizioni hardware JSON contiene anche una sottodirectory inc/hw per le definizioni di file di intestazione equivalenti.
Usare una definizione hardware dell'SDK
La directory HardwareDefinitions in Azure Sphere SDK contiene definizioni per le schede comuni di Azure Sphere e i chip usati. Questa directory si trova %ProgramFiles(x86)%\Microsoft Azure Sphere SDK\HardwareDefinitions
in Windows e /opt/azurespheresdk/HardwareDefinitions
in Linux.
In CMakelists.txt cercare la funzione
azsphere_target_hardware_definition
e impostare ilTARGET_DEFINITION
parametro sul file JSON di definizione hardware per la scheda di destinazione. L'esempio seguente illustra come impostare ilTARGET_DEFINITION
parametro se l'applicazione usa la Scheda di sviluppo di riferimento MT3620 (RDB):azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DEFINITION "mt3620_rdb.json")
In main.c includere il file di intestazione di definizione hardware corrispondente per la scheda di destinazione:
#include "hw/mt3620_rdb.h"
Vedere il file di intestazione o il file JSON per ottenere informazioni sull'identificatore e sul tipo di periferiche usate nell'applicazione. Creare o modificare il codice dell'applicazione di conseguenza.
Ad esempio, un'applicazione destinata a MT3620 Reference Development Board (RDB) usa un LED a bordo. La costante usata per identificare il LED viene definita nel file di intestazione mt3620_rdb.h come indicato di seguito:
// LED 1 Red channel uses GPIO8. #define MT3620_RDB_LED1_RED MT3620_GPIO8
La riga seguente inizializza il LED usando le informazioni fornite nella definizione dell'hardware.
int fd = GPIO_OpenAsOutput(MT3620_RDB_LED1_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
Aggiornare il manifesto dell'applicazione per abilitare le periferiche che l'app sta usando:
"Capabilities": { "Gpio": [ "MT3620_RDB_LED1_RED" ]},
Compilare e creare un pacchetto dell'applicazione.
Usare una definizione hardware non installata con l'SDK
In CMakelists.txt cercare la
azsphere_target_hardware_definition
funzione .Impostare il
TARGET_DIRECTORY
parametro con il percorso relativo o assoluto o i percorsi per la directory o le directory contenenti i file di definizione hardware che si desidera usare.Impostare il
TARGET_DEFINITION
parametro sul nome del file JSON di definizione dell'hardware. Il processo di compilazione cerca questo file e tutti i file importati, nelle directory di destinazione nell'ordine elencato e quindi nell'SDK stesso.azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "<path>/my_app/contoso_hardware_definitions" TARGET_DEFINITION "contoso_board.json")
Specificare ogni directory di destinazione tra virgolette doppie e separare i nomi di directory con spazi. Nell'esempio il <percorso> rappresenta il percorso della cartella my_app.
In main.c includere il file di intestazione di definizione hardware per la scheda di destinazione. Il processo di compilazione cercherà questo file e i file inclusi nella sottodirectory 'inc' delle directory di destinazione nell'ordine elencato e quindi nell'SDK stesso. Di conseguenza, la convenzione seguente troverà contoso_board.h nella sottodirectory inc/hw delle directory di destinazione:
#include "hw/contoso_board.h"
Vedere il file di intestazione o il file JSON per ottenere informazioni sull'identificatore e sul tipo di periferiche usate nell'applicazione. Creare o modificare il codice dell'applicazione di conseguenza.
int fd = GPIO_OpenAsOutput(CONTOSO_BOARD_LED_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
Aggiornare il manifesto dell'applicazione (app_manifest.json) per abilitare le periferiche che l'app sta usando:
"Capabilities": { "Gpio": [ "CONTOSO_BOARD_LED_RED" ]},
Compilare e creare un pacchetto dell'applicazione.