Bagikan melalui


Menggunakan definisi perangkat keras

Topik ini menjelaskan cara menggunakan definisi perangkat keras di aplikasi tingkat tinggi Anda. Lihat Definisi perangkat keras untuk informasi yang lebih mendetail tentang definisi perangkat keras, termasuk cara membuat file definisi perangkat keras Anda sendiri.

Catatan

Direktori yang berisi definisi perangkat keras JSON juga berisi sub-direktori inc/hw untuk definisi file header yang setara.

Menggunakan definisi perangkat keras dari SDK

Direktori HardwareDefinitions di Azure Sphere SDK berisi definisi untuk papan Azure Sphere umum dan chip yang mereka gunakan. Direktori ini berada %ProgramFiles(x86)%\Microsoft Azure Sphere SDK\HardwareDefinitions di Windows dan /opt/azurespheresdk/HardwareDefinitions Linux.

  1. Dalam CMakelists.txt mencari fungsi azsphere_target_hardware_definition dan mengatur TARGET_DEFINITION parameter ke file JSON definisi perangkat keras untuk papan target. Contoh berikut ini memperlihatkan cara mengatur TARGET_DEFINITION parameter jika aplikasi Anda menggunakan Papan Pengembangan Referensi MT3620 (RDB):

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DEFINITION "mt3620_rdb.json")

  2. In main.c, include the corresponding hardware definition header file for the target board:

    #include  "hw/mt3620_rdb.h"
    
  3. Lihat file header atau file JSON untuk mendapatkan informasi tentang pengidentifikasi dan tipe periferal yang digunakan dalam aplikasi Anda. Buat atau ubah kode aplikasi Anda sesuai kebutuhan.

    Misalnya, aplikasi yang menargetkan MT3620 Reference Development Board (RDB) menggunakan LED on-board. Konstanta yang digunakan untuk mengidentifikasi LED ditentukan dalam file header mt3620_rdb.h sebagai berikut:

    // LED 1 Red channel uses GPIO8.
    #define MT3620_RDB_LED1_RED MT3620_GPIO8
    

    Baris berikut ini menginisialisasi LED menggunakan informasi yang disediakan dalam definisi perangkat keras.

    int fd = GPIO_OpenAsOutput(MT3620_RDB_LED1_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
    
  4. Perbarui manifes aplikasi untuk mengaktifkan periferal yang sekarang digunakan aplikasi:

    "Capabilities": {  "Gpio": [ "MT3620_RDB_LED1_RED" ]},
    
  5. Menyusun dan mengemas aplikasi.

Menggunakan definisi perangkat keras yang tidak terinstal dengan SDK

  1. Dalam CMakelists.txt cari fungsi tersebut azsphere_target_hardware_definition .

  2. Atur TARGET_DIRECTORY parameter dengan jalur atau jalur relatif atau absolut ke direktori atau direktori yang berisi file definisi perangkat keras yang ingin Anda gunakan.

  3. Atur TARGET_DEFINITION parameter ke nama file JSON definisi perangkat keras. Proses build mencari file ini, dan file apa pun yang diimpornya, dalam direktori target dalam urutan yang tercantum, lalu di SDK itu sendiri.

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "<path>/my_app/contoso_hardware_definitions" TARGET_DEFINITION "contoso_board.json")

    Tentukan setiap direktori target dalam tanda kutip ganda, dan pisahkan nama direktori dengan spasi. Dalam contoh, <jalur> mewakili jalur ke folder my_app.

  4. Di main.c sertakan file header definisi perangkat keras untuk papan target. Proses build akan mencari file ini, dan file yang disertakan dalam subdirektori 'inc' direktori target dalam urutan yang tercantum, lalu dalam SDK itu sendiri. Oleh karena itu, mengikuti konvensi, berikut ini akan menemukan contoso_board.h dalam sub-direktori inc/hw dari direktori target:

    #include   "hw/contoso_board.h"
    
  5. Lihat file header atau file JSON untuk mendapatkan informasi tentang pengidentifikasi dan tipe periferal yang digunakan dalam aplikasi Anda. Buat atau ubah kode aplikasi Anda sesuai kebutuhan.

    int fd = GPIO_OpenAsOutput(CONTOSO_BOARD_LED_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
    
  6. Perbarui manifes aplikasi (app_manifest.json) untuk mengaktifkan periferal yang sekarang digunakan oleh aplikasi:

    "Capabilities": {  "Gpio": [ "CONTOSO_BOARD_LED_RED" ]},
    
  7. Menyusun dan mengemas aplikasi.