Utilizar definições de hardware

Este tópico descreve como utilizar definições de hardware na sua aplicação de alto nível. Veja Definições de hardware para obter informações mais detalhadas sobre as definições de hardware, incluindo como criar os seus próprios ficheiros de definição de hardware.

Nota

O diretório que contém as definições de hardware JSON também contém um subdiretório inc/hw para as definições de ficheiro de cabeçalho equivalentes.

Utilizar uma definição de hardware do SDK

O diretório HardwareDefinitions no SDK do Azure Sphere contém definições para quadros comuns do Azure Sphere e os chips que utilizam. Este diretório está %ProgramFiles(x86)%\Microsoft Azure Sphere SDK\HardwareDefinitions no Windows e /opt/azurespheresdk/HardwareDefinitions no Linux.

  1. No CMakelists.txt procure a função azsphere_target_hardware_definition e defina o TARGET_DEFINITION parâmetro para o ficheiro JSON de definição de hardware para o quadro de destino. O exemplo seguinte mostra como definir o parâmetro se a sua aplicação TARGET_DEFINITION utilizar o Quadro de Desenvolvimento de Referência (RDB) mt3620:

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

  2. Em main.c, inclua o ficheiro de cabeçalho de definição de hardware correspondente para o quadro de destino:

    #include  "hw/mt3620_rdb.h"
    
  3. Veja o ficheiro de cabeçalho ou o ficheiro JSON para obter informações sobre o identificador e o tipo de periféricos utilizados na sua aplicação. Crie ou modifique o código da aplicação em conformidade.

    Por exemplo, uma aplicação destinada ao Quadro de Desenvolvimento de Referência (RDB) MT3620 utiliza um LED a bordo. A constante utilizada para identificar o LED é definida no ficheiro de cabeçalho mt3620_rdb.h da seguinte forma:

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

    A linha seguinte inicializa o LED com as informações fornecidas na definição de hardware.

    int fd = GPIO_OpenAsOutput(MT3620_RDB_LED1_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
    
  4. Atualize o manifesto da aplicação para ativar os periféricos que a aplicação está a utilizar:

    "Capabilities": {  "Gpio": [ "MT3620_RDB_LED1_RED" ]},
    
  5. Compile e empacote a aplicação.

Utilizar uma definição de hardware que não esteja instalada com o SDK

  1. No CMakelists.txt procure a azsphere_target_hardware_definition função .

  2. Defina o TARGET_DIRECTORY parâmetro com o caminho ou caminhos relativos ou absolutos para o diretório ou diretórios que contêm os ficheiros de definição de hardware que pretende utilizar.

  3. Defina o TARGET_DEFINITION parâmetro como o nome do ficheiro JSON de definição de hardware. O processo de compilação procura este ficheiro e quaisquer ficheiros que importe, nos diretórios de destino pela ordem listada e, em seguida, no próprio SDK.

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "<path>/my_app/contoso_hardware_definitions" TARGET_DEFINITION "contoso_board.json")

    Especifique cada diretório de destino com aspas duplas e separe os nomes dos diretórios com espaços. No exemplo, <> path representa o caminho para a pasta my_app.

  4. Em main.c, inclua o ficheiro de cabeçalho de definição de hardware para o quadro de destino. O processo de compilação irá procurar este ficheiro e os ficheiros que inclui, no subdiretório "inc" dos diretórios de destino na ordem listada e, em seguida, no próprio SDK. Por conseguinte, a convenção seguinte irá encontrar contoso_board.h no subdiretório inc/hw dos diretórios de destino:

    #include   "hw/contoso_board.h"
    
  5. Veja o ficheiro de cabeçalho ou o ficheiro JSON para obter informações sobre o identificador e o tipo de periféricos utilizados na sua aplicação. Crie ou modifique o código da aplicação em conformidade.

    int fd = GPIO_OpenAsOutput(CONTOSO_BOARD_LED_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
    
  6. Atualize o manifesto da aplicação (app_manifest.json) para ativar os periféricos que a aplicação está a utilizar:

    "Capabilities": {  "Gpio": [ "CONTOSO_BOARD_LED_RED" ]},
    
  7. Compile e empacote a aplicação.