Share via


Donanım tanımlarını kullanma

Bu konuda, üst düzey uygulamanızda donanım tanımlarının nasıl kullanılacağı açıklanmaktadır. Kendi donanım tanım dosyalarınızı oluşturma da dahil olmak üzere donanım tanımları hakkında daha ayrıntılı bilgi için bkz. Donanım tanımları.

Not

JSON donanım tanımlarını içeren dizin, eşdeğer üst bilgi dosyası tanımları için bir inc/hw alt dizini de içerir.

SDK'dan donanım tanımı kullanma

Azure Sphere SDK'sı içindeki HardwareDefinitions dizini, yaygın Azure Sphere panoları ve kullandıkları yongalar için tanımlar içerir. Bu dizin Windows ve /opt/azurespheresdk/HardwareDefinitions Linux üzerindedir%ProgramFiles(x86)%\Microsoft Azure Sphere SDK\HardwareDefinitions.

  1. CMakelists.txt işlevi azsphere_target_hardware_definition arayın ve parametresini TARGET_DEFINITION hedef pano için donanım tanımı JSON dosyasına ayarlayın. Aşağıdaki örnekte, uygulamanız MT3620 Başvuru Geliştirme Panosu(RDB) kullanıyorsa parametresinin nasıl ayarlanacağı TARGET_DEFINITION gösterilmektedir:

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

  2. main.c dosyasında, hedef pano için karşılık gelen donanım tanımı üst bilgi dosyasını ekleyin:

    #include  "hw/mt3620_rdb.h"
    
  3. Tanımlayıcı ve uygulamanızda kullanılan çevre birimlerinin türü hakkında bilgi almak için üst bilgi dosyasına veya JSON dosyasına bakın. Uygulama kodunuzu buna göre oluşturun veya değiştirin.

    Örneğin, MT3620 Başvuru Geliştirme Panosu'na (RDB) yönelik bir uygulama yerleşik LED kullanır. LED'i tanımlamak için kullanılan sabit, mt3620_rdb.h üst bilgi dosyasında aşağıdaki gibi tanımlanır:

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

    Aşağıdaki satır, donanım tanımında sağlanan bilgileri kullanarak LED'i başlatır.

    int fd = GPIO_OpenAsOutput(MT3620_RDB_LED1_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
    
  4. Uygulamanın şu anda kullandığı çevre birimlerini etkinleştirmek için uygulama bildirimini güncelleştirin:

    "Capabilities": {  "Gpio": [ "MT3620_RDB_LED1_RED" ]},
    
  5. Uygulamayı derleyin ve paketleyin.

SDK ile yüklenmemiş bir donanım tanımı kullanma

  1. CMakelists.txt içinde işlevini arayın azsphere_target_hardware_definition .

  2. Parametresini TARGET_DIRECTORY , kullanmak istediğiniz donanım tanımı dosyalarını içeren dizin veya dizinlerin göreli veya mutlak yolu ya da yolları ile ayarlayın.

  3. parametresini TARGET_DEFINITION donanım tanımı JSON dosyasının adına ayarlayın. Derleme işlemi, bu dosyayı ve içeri aktarmış olduğu dosyaları, listelenen sırada hedef dizinlerde ve ardından SDK'nın kendisinde arar.

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

    Her hedef dizini çift tırnak içinde belirtin ve dizin adlarını boşluklarla ayırın. Örnekte yol>, <my_app klasörünün yolunu temsil eder.

  4. main.c dosyasına hedef pano için donanım tanımı üst bilgi dosyasını ekleyin. Derleme işlemi, hedef dizinlerin 'inc' alt dizininde listelenen sırayla ve ardından SDK'nın kendisinde bu dosyayı ve içerdiği dosyaları arar. Bu nedenle aşağıdaki kuralda hedef dizinlerin inc/hw alt dizininde contoso_board.h bulunur:

    #include   "hw/contoso_board.h"
    
  5. Tanımlayıcı ve uygulamanızda kullanılan çevre birimlerinin türü hakkında bilgi almak için üst bilgi dosyasına veya JSON dosyasına bakın. Uygulama kodunuzu buna göre oluşturun veya değiştirin.

    int fd = GPIO_OpenAsOutput(CONTOSO_BOARD_LED_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
    
  6. Uygulamanın şu anda kullandığı çevre birimlerini etkinleştirmek için uygulama bildirimini (app_manifest.json) güncelleştirin:

    "Capabilities": {  "Gpio": [ "CONTOSO_BOARD_LED_RED" ]},
    
  7. Uygulamayı derleyin ve paketleyin.