Použití definic hardwaru
Toto téma popisuje, jak používat definice hardwaru v aplikaci vysoké úrovně. Podrobnější informace o definicích hardwaru, včetně postupu vytvoření vlastních souborů definic hardwaru, najdete v tématu Definice hardwaru.
Poznámka
Adresář obsahující hardwarové definice JSON obsahuje také podadresář inc/hw pro ekvivalentní definice souborů hlaviček.
Použití definice hardwaru ze sady SDK
Adresář HardwareDefinitions v sadě Azure Sphere SDK obsahuje definice běžných desek Azure Sphere a čipů, které používají. Tento adresář je ve %ProgramFiles(x86)%\Microsoft Azure Sphere SDK\HardwareDefinitions
Windows a /opt/azurespheresdk/HardwareDefinitions
v Linuxu.
V CMakelists.txt vyhledejte funkci
azsphere_target_hardware_definition
a nastavteTARGET_DEFINITION
parametr na soubor JSON definice hardwaru pro cílovou desku. Následující příklad ukazuje, jak nastavit parametr,TARGET_DEFINITION
pokud vaše aplikace používá MT3620 RdB (Reference Development Board):azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DEFINITION "mt3620_rdb.json")
V souboru main.c zahrňte odpovídající soubor hlavičky definice hardwaru pro cílovou desku:
#include "hw/mt3620_rdb.h"
Informace o identifikátoru a typu periferních zařízení používaných ve vaší aplikaci najdete v souboru hlaviček nebo json. Vytvořte nebo upravte kód aplikace odpovídajícím způsobem.
Například aplikace, která cílí na MT3620 Reference Development Board (RDB), používá integrované LED. Konstanta použitá k identifikaci indikátoru LED je definována v souboru hlavičky mt3620_rdb.h následujícím způsobem:
// LED 1 Red channel uses GPIO8. #define MT3620_RDB_LED1_RED MT3620_GPIO8
Následující řádek inicializuje indikátor LED pomocí informací uvedených v definici hardwaru.
int fd = GPIO_OpenAsOutput(MT3620_RDB_LED1_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
Aktualizujte manifest aplikace a povolte periferie, které aplikace teď používá:
"Capabilities": { "Gpio": [ "MT3620_RDB_LED1_RED" ]},
Zkompilujte a zabalte aplikaci.
Použití definice hardwaru, která není nainstalovaná se sadou SDK
V CMakelists.txt vyhledejte
azsphere_target_hardware_definition
funkci .TARGET_DIRECTORY
Nastavte parametr relativní nebo absolutní cestou nebo cestami k adresáři nebo adresářům obsahujícím soubory definic hardwaru, které chcete použít.TARGET_DEFINITION
Nastavte parametr na název souboru JSON definice hardwaru. Proces sestavení vyhledá tento soubor a všechny importované soubory v cílových adresářích v uvedeném pořadí a pak v samotné sadě SDK.azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "<path>/my_app/contoso_hardware_definitions" TARGET_DEFINITION "contoso_board.json")
Každý cílový adresář zadejte do dvojitých uvozovek a názvy adresářů oddělte mezerami. V příkladu <cesta> představuje cestu ke složce my_app.
V souboru main.c zahrňte hlavičkový soubor definice hardwaru pro cílovou desku. Proces sestavení vyhledá tento soubor a soubory, které obsahuje, v podadresáři "inc" cílových adresářů v uvedeném pořadí a pak v samotné sadě SDK. Následující konvence tedy najdou contoso_board.h v podadresáři inc/hw cílových adresářů:
#include "hw/contoso_board.h"
Informace o identifikátoru a typu periferních zařízení používaných ve vaší aplikaci najdete v souboru hlaviček nebo json. Vytvořte nebo upravte kód aplikace odpovídajícím způsobem.
int fd = GPIO_OpenAsOutput(CONTOSO_BOARD_LED_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
Aktualizujte manifest aplikace (app_manifest.json), aby se povolila periferní zařízení, která aplikace teď používá:
"Capabilities": { "Gpio": [ "CONTOSO_BOARD_LED_RED" ]},
Zkompilujte a zabalte aplikaci.