Condividi tramite


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.

  1. In CMakelists.txt cercare la funzione azsphere_target_hardware_definition e impostare il TARGET_DEFINITION parametro sul file JSON di definizione hardware per la scheda di destinazione. L'esempio seguente illustra come impostare il TARGET_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")

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

    #include  "hw/mt3620_rdb.h"
    
  3. 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);
    
  4. Aggiornare il manifesto dell'applicazione per abilitare le periferiche che l'app sta usando:

    "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 relativo o assoluto o i percorsi per la directory o le directory contenenti i file di definizione hardware che si desidera usare.

  3. 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.

  4. 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"
    
  5. 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);
    
  6. Aggiornare il manifesto dell'applicazione (app_manifest.json) per abilitare le periferiche che l'app sta usando:

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