一起學Azure Sphere(3)- 本地開發調試高級程序,上傳映像後雲端部署到設備

本文中您將瞭解:

案例:調用GPIO控制LED頻閃

本地開發調試->發佈到雲端-> 從雲端部署到設備

一、通過VS Code 開發和調試 示例Azure Sphere 高級應用程序

       本程序調用GPIO控制LED燈頻閃

二、從雲端進行部署

       創建產品;

       配置設備爲“接受基於雲的應用程序更新”;

       創建部署;

       觸發部署;

       重新配置設備爲“啓用調試”;

 

視頻講解:

您可以在B站觀看視頻講解:https://www.bilibili.com/video/av98276348/

或在本站觀看:https://www.51azure.cloud/search/azure%20sphere

 

 

圖文講解:

 

 

一、通過VS Code 開發和調試 示例Azure Sphere 高級應用程序

參照微軟官方文檔:

https://docs.microsoft.com/zh-cn/azure-sphere/install/qs-blink-vscode

使用的示例代碼:

https://github.com/Azure/azure-sphere-samples

 

1. 啓動 Visual Studio Code 並從 Azure Sphere 示例存儲庫中打開 HelloWorld_HighLevelApp 文件夾。 請勿打開更高級別的文件夾。 VS Code 一次只生成一個解決方案。 如果 VS Code 顯示一個對話框,指示沒有可用的 CMake 工具包,請選擇 Do not use a kit。 

2. 修改示例代碼中的配置文件:

  • 打開 .vscode/settings.json。
  • 更新 AZURE_SPHERE_TARGET_HARDWARE_DEFINITION_DIRECTORY CMake 變量以指向包含設備的目標硬件定義的目錄。 Microsoft 在 Azure Sphere 示例存儲庫的硬件目錄中提供了目標硬件定義。 例如: <path-to-cloned-samples>/Hardware/mt3620_rdb
  • 確保 AZURE_SPHERE_TARGET_HARDWARE_DEFINITION CMake 變量指向目標硬件定義目錄中的 JSON 文件。 對於示例應用程序,請使用 sample_hardware.json

 

3.按 F5 調試項目。 如果以前未生成項目,或者如果文件已更改且需要重新生成,則 VS Code 將在調試開始之前生成項目。

4.等待幾分鐘時間,以便 Visual Studio Code 編譯應用程序、創建映像包、將其部署到板上並在調試模式下啓動它。

5.短暫延遲後,應看到 LED 閃爍。

6.在 main.c 中的某個位置設置斷點並逐步執行應用程序,以便可以瀏覽 Azure Sphere 的 VSCode 調試功能。

 

二、從雲端進行部署

 1.創建產品

產品標識合併到已連接設備中以執行特定功能的 Azure Sphere MCU 。 作爲製造商,你可以爲每種型號的連接設備(例如洗碗機或咖啡機)創建產品。 每個產品都有一個在租戶中唯一且無法更改的 GUID。

每個連接的設備都有單個產品,但單個產品可以與多臺設備關聯。 每個產品都有一個在租戶中必須唯一的名稱,以及描述。 產品名稱和描述以用戶可讀的方式來區分產品與其他產品。 可以根據需要修改產品的名稱和描述。

azsphere product create --name MyProduct --description "My First Product"

 

此命令會自動爲此新產品創建默認設備組:

  • 開發(Development):開發組旨在供在開發過程中旁加載應用程序的開發人員使用。 默認情況下,此組中的設備接收零售版 OS 源;應用程序更新處於禁用狀態。 若要針對不同的 OS 版本進行測試,可以更改組的默認 OS。
  • 現場測試(Field Test):現場測試組旨在供在實驗室或現場試驗中測試設備的開發人員使用。 默認情況下,此組中的設備接收零售 OS 源和所有應用程序更新。
  • 生產(Production):生產組適用於生產設備。 默認情況下,此組中的設備接收零售 OS 源和所有應用程序更新。 此組適用於特定產品的生產設備。
  • 現場測試 OS 評估(Field Test OS Evaluation):現場測試 OS 評估組旨在供在實驗室或現場試驗中驗證新版 Azure Sphere OS 與設備上的應用程序是否兼容的開發人員使用。 默認情況下,此組中的設備接收零售評估 OS 源和所有應用程序更新。
  • 生產 OS 評估(Production OS Evaluation):生產 OS 評估組旨在用於驗證新版 Azure Sphere OS 與生產應用程序是否兼容。 默認情況下,此組中的設備接收零售評估 OS 源和所有應用程序更新。

其中,開發設備組會禁用基於雲的更新。 其他組支持基於雲的更新。

產品名稱在租戶中必須唯一,並且不區分大小寫。 如果名稱包含空格,則在命令中將其用雙引號括起來。

如下圖,生成了5個設備組:

 

2.配置設備爲“接受基於雲的應用程序更新”

之前的步驟中,設備處於“開發狀態”,開發狀態的設備無法從雲端接收更新,所以,此時需要先將設備配置爲“接受基於雲的應用程序更新”。

使用 azsphere device enable-cloud-test 準備設備 :

azsphere device enable-cloud-test --productname "MyProduct"

 

此命令:

  • 禁用 SDK 將應用程序加載到設備上的功能,以便只能加載基於雲的應用程序
  • 根據需要將設備分配給產品
  • 將設備分配到啓用基於雲的應用程序更新的設備組。 如果未指定設備組,則會將設備分配給其產品的默認“現場測試(Field Test)”設備組。

Azure Sphere 安全服務使用設備組和產品來確定是否在設備上更新應用程序

 

此時可以通過如下命令查詢Field Test group 的信息:

azsphere device-group show --devicegroupid “Field Group ID”
其中Field Group ID 在創建Product後顯示過

 

3.上傳映像並創建部署

此步驟可以通過一個命令執行,也可以分部執行,

本文中,分佈執行,1. 上傳;2. 創建部署

1.上傳:

azsphere image add --filepath Path\HelloWorld_HighLevelApp.imagepackage --temporary

本例中Path見下圖所示:

參數 說明
-t, --temporary 將映像包標記爲臨時。 此參數適合在生產過程中使用。

 

2.部署規定了某個產品的某個產品組部署某個映像。

 azsphere device-group deployment create 命令將創建部署 。

有如下兩種方案:本例中選擇第二種方案,其中 imageid爲 上一步 上傳映像後返回值中的Image ID:

azsphere device-group deployment create --devicegroupname "Field Test" --productname MyProduct --filepath c:\temp\blink.imagepackage

 

azsphere device-group deployment create --devicegroupname "Field Test" --productname MyProduct --imageid  "例1bd8f03f-297e-43ab-819b-d2b0d05d0230"

注意,映像ID 不帶引號

 

  4. 觸發部署

若要立即觸發下載,請在 Azure Sphere 設備上按“重置”按鈕 。 應用程序應在幾分鐘內下載並啓動,然後應看到 LED 開始閃爍。

可通過如下命令查看部署結果:

azsphere device show-deployment-status

 

 

5. 重新配置設備爲“啓用調試”;

 

此時,如果在VS Code中使用F5開啓調試,則會報如下錯誤,因爲此時“Filed Test”組未開啓調試,即不能從本地Windows 電腦啓動調試,默認情況下,此組中的設備接收零售 OS 源和所有應用程序更新。

如果要啓動調試,則需要切換回“開發設備組”,執行如下命令:

azsphere device enable-development

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章