建置高階應用程式

本節說明如何建置、封裝及部署 Azure 球體高階應用程式。

這些指示會使用 HelloWorld_HighLevelApp 範例應用程式做為範例。

先決條件

準備您的裝置以進行開發和偵錯

您必須先啟用開發及側載,才能在 Azure 球體裝置上建立範例應用程式或開發新的應用程式。 根據預設,Azure 球體裝置會被「鎖定」;也就是說,他們不允許從電腦載入開發中的應用程式,也不允許偵錯應用程式。 準備裝置以進行側載會移除此限制。

az 球形裝置啟用開發命令會將裝置設定為接受偵錯應用程式、將偵錯伺服器載入裝置,並將裝置指派給不允許雲端應用程式更新的裝置群組。 在應用程式開發和偵錯期間,您應將裝置留在此群組中,讓雲端應用程式更新不會覆寫開發中的應用程式。

  1. 確定您的 Azure 球體裝置已連接到您的電腦,且您的電腦已連線到網際網路。

  2. 使用 PowerShell、Windows 命令提示字元或 Linux 命令殼層開啟命令列介面。

  3. 輸入下列命令:

    az sphere device enable-development --resource-group <ResourceGroupName> --catalog <CatalogName> --device <DeviceIdValue>
    

    您應該會看到類似下列的輸出:

    Getting device capability configuration for application development.
    Downloading device capability configuration for device ID '<device ID>'.
    Successfully downloaded device capability configuration.
    Successfully wrote device capability configuration file 'C:\Users\user\AppData\Local\Temp\tmpD732.tmp'.
    Setting device group ID 'a6df7013-c7c2-4764-8424-00cbacb431e5' for device with ID '<device ID>'.
    Successfully disabled over-the-air updates.
    Enabling application development capability on attached device.
    Applying device capability configuration to device.
    Successfully applied device capability configuration to device.
    The device is rebooting.
    Installing debugging server to device.
    Deploying 'C:\Program Files (x86)\Microsoft Azure Sphere SDK\DebugTools\gdbserver.imagepackage' to the attached device.
    Image package 'C:\Program Files (x86)\Microsoft Azure Sphere SDK\DebugTools\gdbserver.imagepackage' has been deployed to the attached device.
    Application development capability enabled.
    Successfully set up device '<device ID>' for application development, and disabled over-the-air updates.
    Command completed successfully in 00:00:38.3299276.
    

如果 az 球體裝置啟用開發 命令失敗,請參閱 Azure 球體問題的疑難排解 以取得協助。

在 Visual Studio 中使用偵錯功能建置和部署應用程式

  1. 確定您的裝置已透過 USB 連接到電腦。 在 [設定啟動專案] 功能表中,選[Azure 球體應用程式 (HLCore) 其中 Azure 球體應用程式是您目前高階應用程式的名稱,或按F5

    遠端 GDB 偵錯工具按鈕

  2. 如果系統提示您建立專案,請選取 [ 是]。 Visual Studio 會編譯應用程式、建立影像套件、 側載 至白板,然後以偵錯模式啟動。 側載 表示應用程式是透過有線連線直接從電腦傳遞,而不是透過雲端傳遞。

    請注意,[檢視> 輸出顯示] 輸出來源:組建輸出> 中的圖像套件圖像識別碼。 您稍後將在教學課程中使用圖像識別碼 :建立雲端部署

  3. 根據預設,[ 輸出] 視窗會顯示 [裝置輸出] 的輸出。 若要查看來自偵錯工具的郵件,請從 [顯示輸出來源:] 下拉式功能表中選取 [偵錯]。 您也可以透過 [偵錯>Windows] 功能表,對程式進行拆解、註冊或記憶體檢查。

在 Visual Studio 中建立和部署應用程式而不進行偵錯

  1. 確定您的裝置已透過 USB 連接到電腦。 在 [ 偵錯 ] 功能表中,選取 [ 不偵錯就開始 ],或按 Ctrl+F5

  2. 如果系統提示您建立專案,請選取 [ 是]。 Visual Studio 會編譯應用程式、建立影像套件、 將它側載 到白板,然後啟動它。 側載 表示應用程式是透過有線連線直接從電腦傳遞,而不是透過雲端傳遞。

  3. 根據預設,[ 輸出] 視窗會顯示 [裝置輸出] 的輸出

使用偵錯在 Visual Studio Code 中建置和部署應用程式

  1. 按 F5 以建立及偵錯專案。 如果專案先前尚未建立,或是檔案已變更且需要重建,Visual Studio Code會在偵錯開始之前建立專案。

  2. 等候數秒Visual Studio Code來建立應用程式、建立影像套件、部署到白板,然後以偵錯模式啟動。 一路走來,您會在 [ 輸出 ] 窗格中看到狀態更新。

    首先,CMake 會判斷是否需要建立應用程式。 若是如此,焦點會移至輸出視窗,顯示來自 CMake/Build 的輸出。

    接下來,[ 輸出 ] 窗格會在影像套件部署到裝置時顯示結果。 最後,偵錯主機會接收焦點,並顯示偵錯工具輸出。

在不偵錯的情況下在 Visual Studio Code 中建置和部署應用程式

  1. 確定您的裝置已透過 USB 連接到電腦。 在 [ 執行] 功能表中,選取 [ 不偵錯就開始 ],或按 Ctrl+F5 來建立和執行專案。 如果專案先前尚未建立,或是檔案已變更且需要重建,Visual Studio Code會建立專案。

  2. 請等候數秒Visual Studio Code來建立應用程式、建立影像套件、將它部署到白板,然後啟動它。 一路走來,您會在 [ 輸出 ] 窗格中看到狀態更新。

    首先,CMake 會判斷是否需要建立應用程式。 若是如此,焦點會移至輸出視窗,顯示來自 CMake/Build 的輸出。

    接下來,輸出視窗會在將影像套件部署到裝置時,顯示來自 azsphere 的輸出。 應用程式部署到裝置後會自動啟動。

建立應用程式

若要建立應用程式,您必須在電腦上尋找正確的編譯工具、標題和文件庫,統稱為 sysroot。 Azure 球體 SDK 隨附多個 sysroots,因此應用程式可以像應用程式 執行時間版本、sysroots 和 Beta API中所述,以不同的 API 集為目標。 Sysroots 會安裝在 Sysroots下的 Azure 球體 SDK 安裝資料夾中。

  1. 建立或流覽至目錄,其中會包含要在組建程式期間產生的檔案。

  2. 如果您的應用程式視其他應用程式而定,請將 應用程式標示為 其app_manifest.md 檔案中的合作夥伴。

  3. 新增或更新 CMakeLists.txt 檔案,讓應用程式視需要呼叫 Azure 球體 CMake 函數

  4. 在專案組建目錄的命令提示字元中,使用下列參數執行 CMake:

    cmake --preset <preset-name> <source-path>
    
    • --preset <preset-name>

      組建設定預設名稱,如 CMakePresets.json 中所定義。

    • --build <cmake-path>

      包含 CMake 快取的二進位目錄。 例如,如果您在 Azure 球體樣本上執行 CMake,則組建命令會是 cmake --build out/ARM-Debug

    • <source-path>

      包含範例應用程式之來源檔案的目錄路徑。 在範例中,Azure 球體樣本存放庫已下載到名為 AzSphere 的目錄。

      CMake 參數會以空格分隔。 Windows 命令列的線條延續字元 (^、 \ for Linux 命令列或 ' for PowerShell) 可用於可讀性,但並非必要。

    下列範例顯示Hello World高階應用程式的 CMake 命令。

    Windows 命令提示字元

    cmake ^
     --preset "ARM-Debug" ^
     "C:\AzSphere\azure-sphere-samples\Samples\HelloWorld\HelloWorld_HighLevelApp"
    

    Windows PowerShell

    cmake `
     --preset "ARM-Debug" `
     "C:\AzSphere\azure-sphere-samples\Samples\HelloWorld\HelloWorld_HighLevelApp"
    
  5. 執行忍者以建立應用程式並建立圖像套件檔案:

    ninja -C out/ARM-Debug
    

    忍者會將產生的應用程式和 .imagepackage 檔案放在指定的目錄中。

    您也可以使用下列命令透過 CMake 叫用忍者:

    cmake --build out/<binary-dir>
    

    設定 <binary-dir> 為包含 CMake 快取的二進位目錄。 例如,如果您在 Azure 球體樣本上執行 CMake,則組建命令會是 cmake --build out/ARM-Debug

部署應用程式

請確定您的裝置具有 app 的功能,這樣您就可以側載應用程式,並確保偵錯伺服器存在。 如有需要, az sphere device enable-development 請使用命令。

  1. 如果您的裝置已經執行一或多個應用程式,請將它們刪除。

    az sphere device sideload delete
    

    請注意,此命令會刪除裝置上的所有應用程式。 如果您已經將合作夥伴的 RTApp 部署到高階應用程式,請使用參數 --component-id 來指定要刪除的應用程式。 您可以在其 app_manifest.json 檔案中找到應用程式的 元件標識 符。

  2. 執行 az 球形裝置側載部署 命令並指定圖像套件,將圖像套件載入到您的裝置上。 例如:

    az sphere device sideload deploy --image-package C:\Users\LocalSamples\HelloWorld\HelloWorld_HighLevelApp\out\ARM-Debug\HelloWorld_HighLevelApp.imagepackage
    

    您的應用程式應該會開始執行。

您稍後可以使用 az sphere device app stop --component-id <component-ID> 和命令來停止並 az sphere device app start --component-id <component ID> 重新開機應用程式。