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.
Em CMakelists.txt procure a função
azsphere_target_hardware_definition
e defina oTARGET_DEFINITION
parâmetro para o arquivo JSON de definição de hardware para a placa de destino. O exemplo a seguir mostra como definir oTARGET_DEFINITION
parâmetro se seu aplicativo usa o MT3620 Reference Development Board (RDB):azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DEFINITION "mt3620_rdb.json")
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"
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);
Atualize o manifesto do aplicativo para habilitar os periféricos que o aplicativo está usando agora:
"Capabilities": { "Gpio": [ "MT3620_RDB_LED1_RED" ]},
Compile e empacote o aplicativo.
Usar uma definição de hardware que não esteja instalada com o SDK
Em CMakelists.txt procure a
azsphere_target_hardware_definition
função.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.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.
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"
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);
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" ]},
Compile e empacote o aplicativo.