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.
Dalam CMakelists.txt mencari fungsi
azsphere_target_hardware_definition
dan mengaturTARGET_DEFINITION
parameter ke file JSON definisi perangkat keras untuk papan target. Contoh berikut ini memperlihatkan cara mengaturTARGET_DEFINITION
parameter jika aplikasi Anda menggunakan Papan Pengembangan Referensi MT3620 (RDB):azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DEFINITION "mt3620_rdb.json")
In main.c, include the corresponding hardware definition header file for the target board:
#include "hw/mt3620_rdb.h"
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);
Perbarui manifes aplikasi untuk mengaktifkan periferal yang sekarang digunakan aplikasi:
"Capabilities": { "Gpio": [ "MT3620_RDB_LED1_RED" ]},
Menyusun dan mengemas aplikasi.
Menggunakan definisi perangkat keras yang tidak terinstal dengan SDK
Dalam CMakelists.txt cari fungsi tersebut
azsphere_target_hardware_definition
.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.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.
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"
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);
Perbarui manifes aplikasi (app_manifest.json) untuk mengaktifkan periferal yang sekarang digunakan oleh aplikasi:
"Capabilities": { "Gpio": [ "CONTOSO_BOARD_LED_RED" ]},
Menyusun dan mengemas aplikasi.