USA definizioni hardwareUse hardware definitions

In questo argomento viene descritto come utilizzare le definizioni hardware nell'applicazione di alto livello.This topic describes how to use hardware definitions in your high-level application. Vedere definizioni hardware per informazioni più dettagliate sulle definizioni hardware, tra cui come creare file di definizione hardware personalizzati.See Hardware definitions for more detailed information about hardware definitions, including how to create your own hardware definition files.

Nota

La directory contenente le definizioni hardware JSON contiene anche una sottodirectory Inc/HW per le definizioni di file di intestazione equivalenti.The directory containing the JSON hardware definitions also contains an inc/hw sub-directory for the equivalent header file definitions.

Usare una definizione hardware dall'SDKUse a hardware definition from the SDK

La directory HardwareDefinitions in Azure Sphere SDK contiene le definizioni per le lavagne di Azure Sphere comuni e i chip utilizzati.The HardwareDefinitions directory in the Azure Sphere SDK contains definitions for common Azure Sphere boards and the chips they use. Questa directory si trova Microsoft Azure Sphere SDK\HardwareDefinitions in Windows e /opt/azurespheresdk/HardwareDefinitions in Linux.This directory is Microsoft Azure Sphere SDK\HardwareDefinitions on Windows and /opt/azurespheresdk/HardwareDefinitions on 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 bacheca di destinazione.In CMakelists.txt search for the function azsphere_target_hardware_definition and set the TARGET_DEFINITION parameter to the hardware definition JSON file for the target board. Nell'esempio riportato di seguito viene illustrato come impostare il TARGET_DEFINITION parametro se l'applicazione utilizza MT3620 Reference Development Board (RDB):The following example shows how to set the TARGET_DEFINITION parameter if your application uses the 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:In main.c, include the corresponding hardware definition header file for the target board:

    #include  "hw/mt3620_rdb.h"
    
  3. Vedere il file di intestazione o il file JSON per ottenere informazioni sull'identificatore e il tipo di periferiche usate nell'applicazione.See the header file or the JSON file to get information about the identifier and the type of peripherals used in your application. Creare o modificare il codice dell'applicazione di conseguenza.Create or modify your application code accordingly.

    Ad esempio, un'applicazione destinata a MT3620 Reference Development Board (RDB) usa un LED sul bordo.For example, an application that targets the MT3620 Reference Development Board (RDB) uses an on-board LED. La costante utilizzata per identificare il LED viene definita nel file di intestazione mt3620_rdb. h come indicato di seguito:The constant used to identify the LED is defined in the header file mt3620_rdb.h as follows:

    // 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 di hardware.The following line initializes the LED using the information provided in the hardware definition.

    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 usa ora:Update the application manifest to enable the peripherals that the app is now using:

    "Capabilities": {  "Gpio": [ "MT3620_RDB_LED1_RED" ]},
    
  5. Compilare e creare il pacchetto dell'applicazione.Compile and package the application.

Usare una definizione hardware non installata con l'SDKUse a hardware definition that is not installed with the SDK

  1. In CMakelists.txt ricercare la azsphere_target_hardware_definition funzione.In CMakelists.txt search for the azsphere_target_hardware_definition function .

  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 utilizzare.Set the TARGET_DIRECTORY parameter with the relative or absolute path or paths to the directory or directories containing the hardware definition files you want to use.

  3. Impostare il TARGET_DEFINITION parametro sul nome del file JSON di definizione dell'hardware.Set the TARGET_DEFINITION parameter to the name of the hardware definition JSON file. Il processo di compilazione cerca questo file e tutti i file che importa, nelle directory di destinazione nell'ordine elencato, quindi nell'SDK stesso.The build process searches for this file, and any files that it imports, in the target directories in the order listed, and then in the SDK itself.

    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.Specify each target directory in double quotation marks, and separate directory names with spaces. Nell'esempio <path> rappresenta il percorso della cartella my_app.In the example, <path> represents the path to the my_app folder.

  4. In Main. c includere il file di intestazione di definizione hardware per la bacheca di destinazione.In main.c include the hardware definition header file for the target board. Il processo di compilazione eseguirà la ricerca di questo file e dei file inclusi nella sottodirectory "Inc" delle directory di destinazione nell'ordine elencato, quindi nell'SDK stesso.The build process will search for this file, and those files that it includes, in the 'inc' subdirectory of the target directories in the order listed, and then in the SDK itself. Di conseguenza, di seguito è riportata la convenzione, che segue contoso_board. h nella sottodirectory Inc/HW delle directory di destinazione:Hence, following convention, the following will find contoso_board.h in inc/hw sub-directory of the target directories:

    #include   "hw/contoso_board.h"
    
  5. Vedere il file di intestazione o il file JSON per ottenere informazioni sull'identificatore e il tipo di periferiche usate nell'applicazione.See the header file or the JSON file to get information about the identifier and the type of peripherals used in your application. Creare o modificare il codice dell'applicazione di conseguenza.Create or modify your application code accordingly.

    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 usa ora:Update the application manifest (app_manifest.json) to enable the peripherals that the app is now using:

    "Capabilities": {  "Gpio": [ "CONTOSO_BOARD_LED_RED" ]},
    
  7. Compilare e creare il pacchetto dell'applicazione.Compile and package the application.