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.

  1. V CMakelists.txt vyhledejte funkci azsphere_target_hardware_definition a nastavte TARGET_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")

  2. V souboru main.c zahrňte odpovídající soubor hlavičky definice hardwaru pro cílovou desku:

    #include  "hw/mt3620_rdb.h"
    
  3. 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);
    
  4. Aktualizujte manifest aplikace a povolte periferie, které aplikace teď používá:

    "Capabilities": {  "Gpio": [ "MT3620_RDB_LED1_RED" ]},
    
  5. Zkompilujte a zabalte aplikaci.

Použití definice hardwaru, která není nainstalovaná se sadou SDK

  1. V CMakelists.txt vyhledejte azsphere_target_hardware_definition funkci .

  2. 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.

  3. 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.

  4. 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"
    
  5. 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);
    
  6. Aktualizujte manifest aplikace (app_manifest.json), aby se povolila periferní zařízení, která aplikace teď používá:

    "Capabilities": {  "Gpio": [ "CONTOSO_BOARD_LED_RED" ]},
    
  7. Zkompilujte a zabalte aplikaci.