共用方式為


使用硬體定義

重要

這是 Azure Sphere (舊版) 檔。 Azure Sphere(舊版)將於 2027 年 9 月 27 日淘汰,且使用者此時必須移轉至 Azure Sphere(整合式)。 使用位於 TOC 上方的版本選取器來檢視 Azure Sphere (整合式) 檔。

本主題描述如何在高階應用程式中使用硬體定義。 如需硬體定義的詳細資訊,請參閱 硬體定義 ,包括如何建立您自己的硬體定義檔案。

注意

包含 JSON 硬體定義的目錄也包含對等頭檔定義的 inc/hw 子目錄。

使用 SDK 的硬體定義

Azure Sphere SDK 中的 HardwareDefinitions 目錄包含一般 Azure Sphere 面板及其使用的晶片定義。 此目錄位於 %ProgramFiles(x86)%\Microsoft Azure Sphere SDK\HardwareDefinitions Windows 和 /opt/azurespheresdk/HardwareDefinitions Linux 上。

  1. 在 CMakelists.txt搜尋函 azsphere_target_hardware_definition 式,並將 參數設定 TARGET_DEFINITION 為目標面板的硬體定義 JSON 檔案。 下列範例示範如果您的 TARGET_DEFINITION 應用程式使用 MT3620 參考開發板 (RDB):

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

  2. 在main.c中,包含目標面板的對應硬體定義頭檔:

    #include  "hw/mt3620_rdb.h"
    
  3. 請參閱頭檔或 JSON 檔案,以取得應用程式中使用的標識碼和周邊類型的相關信息。 請據以建立或修改您的應用程式程式代碼。

    例如,以 MT3620 參考開發板 (RDB) 為目標的應用程式會使用面板 LED。 用來識別 LED 的常數定義於頭檔mt3620_rdb.h,如下所示:

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

    下列這一行會使用硬體定義中提供的資訊,初始化 LED。

    int fd = GPIO_OpenAsOutput(MT3620_RDB_LED1_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
    
  4. 更新應用程式指令清單,以啟用應用程式現在使用的外圍設備:

    "Capabilities": {  "Gpio": [ "MT3620_RDB_LED1_RED" ]},
    
  5. 編譯並封裝應用程式。

使用未隨 SDK 一起安裝的硬體定義

  1. 在 CMakelists.txt搜尋 函 azsphere_target_hardware_definition 式 。

  2. 使用 TARGET_DIRECTORY 相對或絕對路徑或路徑,將 參數設定為包含您想要使用之硬體定義檔案的目錄或目錄。

  3. TARGET_DEFINITION 參數設定為硬體定義 JSON 檔案的名稱。 建置程式會依列出的順序,在目標目錄中搜尋此檔案及其匯入的任何檔案,然後在 SDK 本身中搜尋。

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

    以雙引號指定每個目標目錄,並以空格分隔目錄名稱。 在此範例中, <path> 代表my_app資料夾的路徑。

  4. 在main.c中,包含目標面板的硬體定義頭檔。 建置程式會依列出的順序,搜尋此檔案及其包含的檔案,並依列出的順序,在目標目錄的 'inc' 子目錄中搜尋。 因此,下列慣例會在目標目錄的 inc/hw 子目錄中找到 contoso_board.h:

    #include   "hw/contoso_board.h"
    
  5. 請參閱頭檔或 JSON 檔案,以取得應用程式中使用的標識碼和周邊類型的相關信息。 請據以建立或修改您的應用程式程式代碼。

    int fd = GPIO_OpenAsOutput(CONTOSO_BOARD_LED_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
    
  6. 更新應用程式指令清單 (app_manifest.json), 以啟用應用程式現在使用的外圍裝置:

    "Capabilities": {  "Gpio": [ "CONTOSO_BOARD_LED_RED" ]},
    
  7. 編譯並封裝應用程式。