Použití definic hardwaru
Důležité
Toto je dokumentace k Azure Sphere (starší verze). Azure Sphere (starší verze) se vyřazuje 27. září 2027 a uživatelé musí do této doby migrovat do Azure Sphere (integrované). K zobrazení dokumentace k Azure Sphere (integrované) použijte selektor verzí umístěný nad obsahem.
Toto téma popisuje, jak používat definice hardwaru v aplikaci vysoké úrovně. Podrobnější informace o definicích hardwaru najdete v tématu Definice hardwaru, včetně postupu vytvoření vlastních definičních souborů hardwaru.
Poznámka:
Adresář obsahující definice hardwaru JSON obsahuje také podadresáři inc/hw pro ekvivalentní definice souboru hlaviček.
Použití definice hardwaru ze sady SDK
Adresář HardwareDefinitions v sadě Azure Sphere SDK obsahuje definice pro běžné desky Azure Sphere a čipy, které používají. Tento adresář je %ProgramFiles(x86)%\Microsoft Azure Sphere SDK\HardwareDefinitions
ve 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 nastavitTARGET_DEFINITION
parametr, pokud vaše aplikace používá referenční vývojové desky MT3620 (RDB):azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DEFINITION "mt3620_rdb.json")
V 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 hlavičce nebo souboru JSON. Odpovídajícím způsobem vytvořte nebo upravte kód aplikace.
Například aplikace, která cílí na referenční vývojové desky MT3620 (RDB) používá indikátor LED na desce. Konstanta použitá k identifikaci indikátoru LED je definována v souboru hlaviček 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 tak, aby umožňoval periferní zařízení, která aplikace právě 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 s 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 soubory, které importuje, 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")
Zadejte každý cílový adresář do uvozovek a oddělte názvy adresářů mezerami. V příkladu <cesta> představuje cestu ke složce my_app.
V main.c zahrnují soubor hlavičky 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. Proto následující konvence najde 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 hlavičce nebo souboru JSON. Odpovídajícím způsobem vytvořte nebo upravte kód aplikace.
int fd = GPIO_OpenAsOutput(CONTOSO_BOARD_LED_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
Aktualizujte manifest aplikace (app_manifest.json), aby bylo možné povolit periferní zařízení, která aplikace teď používá:
"Capabilities": { "Gpio": [ "CONTOSO_BOARD_LED_RED" ]},
Zkompilujte a zabalte aplikaci.