Usare le definizioni hardware

Questo argomento descrive come usare le definizioni hardware nell'applicazione di alto livello. Vedere Definizioni hardware per informazioni più dettagliate sulle definizioni hardware, incluso come creare file di definizione hardware personalizzati.

Nota

La directory contenente le definizioni hardware JSON contiene anche una sotto directory inc/hw per le definizioni dei file di intestazione equivalenti.

Usare una definizione hardware dall'SDK

La directory HardwareDefinitions in Azure Sphere SDK contiene le definizioni per le comuni schede Azure Sphere e i chip che usano. Questa directory è %ProgramFiles(x86)%\Microsoft Azure Sphere SDK\HardwareDefinitions in Windows e /opt/azurespheresdk/HardwareDefinitions su Linux.

  1. In CMakelists.txt cercare la funzione azsphere_target_hardware_definition e impostare il parametro sul TARGET_DEFINITION file JSON di definizione hardware per la scheda di destinazione. Nell'esempio seguente viene illustrato come impostare il parametro se l'applicazione TARGET_DEFINITION utilizza l'MT3620 Reference Development Board (RDB):

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

  2. In main.c, includere il file di intestazione di definizione hardware corrispondente per la bacheca di destinazione:

    #include  "hw/mt3620_rdb.h"
    
  3. Vedi il file di intestazione o il file JSON per ottenere informazioni sull'identificatore e sul tipo di periferiche utilizzate nell'applicazione. Creare o modificare il codice dell'applicazione di conseguenza.

    Ad esempio, un'applicazione che si rivolge all'MT3620 Reference Development Board (RDB) utilizza un LED di bordo. La costante utilizzata per identificare il LED è definita nel file di intestazione mt3620_rdb.h come segue:

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

    La riga seguente inizializza il LED utilizzando le informazioni fornite nella definizione hardware.

    int fd = GPIO_OpenAsOutput(MT3620_RDB_LED1_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
    
  4. Aggiorna il manifesto dell'applicazione per abilitare le periferiche che l'app sta utilizzando:

    "Capabilities": {  "Gpio": [ "MT3620_RDB_LED1_RED" ]},
    
  5. Compilare e creare un pacchetto dell'applicazione.

Usare una definizione hardware non installata con l'SDK

  1. In CMakelists.txt cercare la azsphere_target_hardware_definition funzione .

  2. Impostare il TARGET_DIRECTORY parametro con il percorso o i percorsi relativi o assoluti della directory o delle directory contenenti i file di definizione hardware che si desidera utilizzare.

  3. Impostare il TARGET_DEFINITION parametro sul nome del file JSON della definizione 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 path <> rappresenta il percorso della cartella my_app.

  4. In main.c includere il file di intestazione di definizione hardware per la bacheca 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. Quindi, in base alla convenzione, quanto segue troverà contoso_board.h nella sotto directory inc/hw delle directory di destinazione:

    #include   "hw/contoso_board.h"
    
  5. Vedi il file di intestazione o il file JSON per ottenere informazioni sull'identificatore e sul tipo di periferiche utilizzate 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);
    
  6. Aggiorna il manifesto dell'applicazione (app_manifest.json) per abilitare le periferiche che l'app sta utilizzando:

    "Capabilities": {  "Gpio": [ "CONTOSO_BOARD_LED_RED" ]},
    
  7. Compilare e creare un pacchetto dell'applicazione.