Partilhar via


Usar definições de hardware

Importante

Esta é a documentação do Azure Sphere (Legado). O Azure Sphere (Legado) será desativado em 27 de setembro de 2027 e os usuários devem migrar para o Azure Sphere (Integrado) até esse momento. Use o seletor de versão localizado acima do sumário para exibir a documentação do Azure Sphere (Integrado).

Este tópico descreve como usar definições de hardware em seu aplicativo de alto nível. Consulte Definições de hardware para obter informações mais detalhadas sobre definições de hardware, incluindo como criar seus próprios arquivos 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 arquivo de cabeçalho equivalentes.

Usar uma definição de hardware do SDK

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

  1. Em CMakelists.txt procure a função azsphere_target_hardware_definition e defina o TARGET_DEFINITION parâmetro para o arquivo JSON de definição de hardware para a placa de destino. O exemplo a seguir mostra como definir o TARGET_DEFINITION parâmetro se seu aplicativo usa o MT3620 Reference Development Board (RDB):

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

  2. Em main.c, inclua o arquivo de cabeçalho de definição de hardware correspondente para a placa de destino:

    #include  "hw/mt3620_rdb.h"
    
  3. Consulte o arquivo de cabeçalho ou o arquivo JSON para obter informações sobre o identificador e o tipo de periféricos usados em seu aplicativo. Crie ou modifique o código do aplicativo de acordo.

    Por exemplo, um aplicativo destinado à placa de desenvolvimento de referência (RDB) MT3620 usa um LED integrado. A constante usada para identificar o LED é definida no arquivo de cabeçalho mt3620_rdb.h da seguinte maneira:

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

    A linha a seguir inicializa o LED usando 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 do aplicativo para habilitar os periféricos que o aplicativo está usando agora:

    "Capabilities": {  "Gpio": [ "MT3620_RDB_LED1_RED" ]},
    
  5. Compile e empacote o aplicativo.

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

  1. Em 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 arquivos de definição de hardware que você deseja usar.

  3. Defina o TARGET_DEFINITION parâmetro como o nome do arquivo JSON de definição de hardware. O processo de compilação procura esse arquivo e todos os arquivos que ele importa, nos diretórios de destino na 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 entre 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 arquivo de cabeçalho de definição de hardware para a placa de destino. O processo de compilação procurará esse arquivo, e os arquivos que ele inclui, no subdiretório 'inc' dos diretórios de destino na ordem listada e, em seguida, no próprio SDK. Assim, seguindo a convenção, o seguinte encontrará contoso_board.h no subdiretório inc/hw dos diretórios de destino:

    #include   "hw/contoso_board.h"
    
  5. Consulte o arquivo de cabeçalho ou o arquivo JSON para obter informações sobre o identificador e o tipo de periféricos usados em seu aplicativo. Crie ou modifique o código do aplicativo de acordo.

    int fd = GPIO_OpenAsOutput(CONTOSO_BOARD_LED_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
    
  6. Atualize o manifesto do aplicativo (app_manifest.json) para habilitar os periféricos que o aplicativo está usando agora:

    "Capabilities": {  "Gpio": [ "CONTOSO_BOARD_LED_RED" ]},
    
  7. Compile e empacote o aplicativo.