Megosztás a következőn keresztül:


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

  1. A CMakelists.txt keresse meg a függvényt azsphere_target_hardware_definition , és állítsa be a TARGET_DEFINITION paramétert a céltábla hardverdefiníciós JSON-fájljára. Az alábbi példa bemutatja, hogyan állíthatja be a TARGET_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")

  2. A main.c fájlban adja meg a céltábla megfelelő hardverdefiníciós fejlécfájlját:

    #include  "hw/mt3620_rdb.h"
    
  3. 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);
    
  4. 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" ]},
    
  5. Fordítsa le és csomagolja be az alkalmazást.

Olyan hardverdefiníció használata, amely nincs telepítve az SDK-val

  1. A CMakelists.txt keresse meg a függvényt azsphere_target_hardware_definition .

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

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

  4. 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"
    
  5. 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);
    
  6. 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" ]},
    
  7. Fordítsa le és csomagolja be az alkalmazást.