Usar definições de hardware

Importante

Esta é a documentação do Azure Sphere (herdado). O Azure Sphere (herdado) 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.

Observação

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 usar o RDB (Quadro de Desenvolvimento de Referência) MT3620:

    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 direcionado ao RDB (Reference Development Board) 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 está instalada com o SDK

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

  2. Configure o TARGET_DIRECTORY parâmetro com o caminho relativo ou absoluto 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 importados 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 nomes de diretório separados 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. Portanto, 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.