共用方式為


建置高階應用程式

重要

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

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

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

必要條件

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

您必須先啟用開發和側載,才能在 Azure Sphere 裝置上建置範例應用程式,或為其開發新的應用程式。 根據預設,Azure Sphere 裝置會「鎖定」;也就是說,它們不允許從計算機載入開發中的應用程式,而且不允許對應用程式進行偵錯。 準備要側載的裝置會移除這項限制。

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

  1. 請確定您的 Azure Sphere 裝置已連線到您的電腦,且您的電腦已連線到因特網。

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

  3. 輸入下列命令:

    azsphere device enable-development
    

    您應該會看到如下輸出:

    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.
    

如果 azsphere device enable-development 命令失敗,請參閱針對 Azure Sphere 問題進行疑難解答以取得協助。

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

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

    遠端 GDB 調試程式按鈕

  2. 如果系統提示您建置專案,請選取 [ ]。 Visual Studio 會編譯應用程式、建立映像套件、 側載 到面板上,並在偵錯模式中啟動它。 側載 表示應用程式會透過有線連線直接從電腦傳遞,而不是透過雲端傳遞。

    請注意檢視>輸出>顯示輸出映像套件的影像識別碼:置輸出。 您稍後將在教學課程:建立雲端部署中使用映像標識碼。

  3. 根據預設,[ 輸出 ] 視窗會顯示 [裝置輸出] 的 輸出。 若要查看調試程式的訊息,請從 [顯示輸出來源:] 下拉功能表中選取 [偵錯]。 您也可以透過 >[偵錯 Windows] 功能表檢查程式反組譯碼、緩存器或記憶體。

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

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

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

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

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

  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 Sphere SDK 隨附多個 sysroot,讓應用程式可以以不同的 API 集合為目標,如應用程式運行時間版本、sysroots 和 Beta API 中所述。 sysroots 會安裝在 Sysroots 下的 Azure Sphere SDK 安裝資料夾中。

  1. 建立或流覽至將包含建置程式期間產生之檔案的目錄。

  2. 如果您的應用程式相依於另一個應用程式, 請將應用程式標示為其app_manifest.md 檔案中的合作夥伴

  3. 新增或更新應用程式的CMakeLists.txt檔案,以視需要呼叫 Azure Sphere CMake 函 式。

  4. 從您的項目建置目錄,在命令提示字元中,使用下列參數執行 CMake:

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

      CMakePresets.json中所定義的組建組態預設名稱。

    • --build <cmake-path>

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

    • <source-path>

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

      CMake 參數會以空格分隔。 行接續字元 (^ for 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 以建置應用程式並建立映像套件檔案:

    ninja -C out/ARM-Debug
    

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

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

    cmake --build out/<binary-dir>
    

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

部署應用程式

請確定您的裝置具有 appDevelopment 功能,讓您可以側載應用程式,並確保偵錯伺服器存在。 如有必要, azsphere device enable-development 請使用 命令。

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

    azsphere device sideload delete
    

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

  2. 執行 azsphere device sideload deploy 命令並指定映像套件,以將映射套件載入您的裝置。 例如:

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

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

您稍後可以使用和 azsphere device app start --component-id <component ID> 命令來停止並重新啟動應用程式azsphere device app stop --component-id <component-ID>