Hardverdefiníciók használata
Ez a témakör a hardverdefiníciók használatát ismerteti a magas szintű alkalmazásban. A hardverdefiníciókkal kapcsolatos részletesebb információkért lásd: Hardverdefiníciók, beleértve a saját hardverdefiníciós fájlok létrehozását.
Megjegyzés
A JSON hardverdefiníciókat tartalmazó könyvtár tartalmaz egy inc/hw alkönyvtárat is az egyenértékű fejlécfájl-definíciókhoz.
Az SDK hardverdefiníciójának használata
Az Azure Sphere SDK HardwareDefinitions könyvtára definíciókat tartalmaz a gyakori Azure Sphere-táblákhoz és az általuk használt chipekhez. Ez a %ProgramFiles(x86)%\Microsoft Azure Sphere SDK\HardwareDefinitions
könyvtár Windowson és /opt/azurespheresdk/HardwareDefinitions
Linuxon található.
A CMakelists.txt keresse meg a függvényt
azsphere_target_hardware_definition
, és állítsa be aTARGET_DEFINITION
paramétert a céltábla hardverdefiníciós JSON-fájljára. Az alábbi példa bemutatja, hogyan állíthatja be aTARGET_DEFINITION
paramétert, ha az alkalmazás az MT3620 referenciafejlesztési táblát (RDB) használja:azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DEFINITION "mt3620_rdb.json")
A main.c fájlban adja meg a céltábla megfelelő hardverdefiníciós fejlécfájlját:
#include "hw/mt3620_rdb.h"
Az alkalmazásban használt perifériák azonosítójára és típusára vonatkozó információkért tekintse meg a fejlécfájlt vagy a JSON-fájlt. Ennek megfelelően hozza létre vagy módosítsa az alkalmazás kódját.
Az MT3620 referenciafejlesztési táblát (RDB) célzó alkalmazások például egy fedélzeti LED-et használnak. A LED azonosításához használt állandó a mt3620_rdb.h fejlécfájlban van definiálva az alábbiak szerint:
// LED 1 Red channel uses GPIO8. #define MT3620_RDB_LED1_RED MT3620_GPIO8
A következő sor inicializálja a LED-et a hardverdefinícióban megadott információk alapján.
int fd = GPIO_OpenAsOutput(MT3620_RDB_LED1_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
Frissítse az alkalmazásjegyzéket az alkalmazás által most használt perifériák engedélyezéséhez:
"Capabilities": { "Gpio": [ "MT3620_RDB_LED1_RED" ]},
Fordítsa le és csomagolja be az alkalmazást.
Olyan hardverdefiníció használata, amely nincs telepítve az SDK-val
A CMakelists.txt keresse meg a függvényt
azsphere_target_hardware_definition
.Állítsa be a paramétert
TARGET_DIRECTORY
a használni kívánt hardverdefiníciós fájlokat tartalmazó könyvtár vagy könyvtárak relatív vagy abszolút elérési útjával vagy elérési útjával.Állítsa a paramétert
TARGET_DEFINITION
a hardverdefiníciós JSON-fájl nevére. A buildelési folyamat megkeresi ezt a fájlt és az általa importált fájlokat a célkönyvtárakban a felsorolt sorrendben, majd magában az SDK-ban.azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "<path>/my_app/contoso_hardware_definitions" TARGET_DEFINITION "contoso_board.json")
Adja meg az egyes célkönyvtárak nevét idézőjelek között, és különítse el a könyvtárneveket szóközökkel. A példában <az elérési út> a my_app mappához vezető elérési utat jelöli.
A main.c fájlban adja meg a céltábla hardverdefiníciós fejlécfájlját. A buildelési folyamat megkeresi ezt a fájlt és azokat a fájlokat, amelyeket tartalmaz, a célkönyvtárak "inc" alkönyvtárában a felsorolt sorrendben, majd magában az SDK-ban. Ezért a következő konvenció szerint a contoso_board.h a célkönyvtárak inc/hw alkönyvtárában található:
#include "hw/contoso_board.h"
Az alkalmazásban használt perifériák azonosítójára és típusára vonatkozó információkért tekintse meg a fejlécfájlt vagy a JSON-fájlt. Ennek megfelelően hozza létre vagy módosítsa az alkalmazás kódját.
int fd = GPIO_OpenAsOutput(CONTOSO_BOARD_LED_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
Frissítse az alkalmazásjegyzéket (app_manifest.json) az alkalmazás által most használt perifériák engedélyezéséhez:
"Capabilities": { "Gpio": [ "CONTOSO_BOARD_LED_RED" ]},
Fordítsa le és csomagolja be az alkalmazást.