在瑞薩 RX65N 上下載、建置、快閃及執行 FreeRTOS OTA 示範 - 免費 RTOS

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在瑞薩 RX65N 上下載、建置、快閃及執行 FreeRTOS OTA 示範

重要

此參考集成託管在亞馬遜的 FreeRTOS 存儲庫上,該存儲庫已被棄用。我們建議您在建立新專案時從這裡開始。如果您已經有一個現有的 FreeRTOS 專案以目前已取代的亞馬遜免費伺服器儲存庫為基礎,請參閱. 亞馬遜自由 Github 存儲庫遷移指南

本章說明如何在瑞薩 RX65N 上下載、建置、快速執行 FreeRTOS OTA 示範應用程式。

設定您的作業環境

本節中的程序使用下列環境:

  • IDE:電子工作室 7.8.0,和 2 工作室

  • 工具鏈:CCRX 編譯器

  • 目標裝置:RSKRX65N-2MB

  • 調試器:E 2,E 2 精簡版模擬器

  • 軟體:瑞薩快閃記憶體程式設計師,瑞薩安全快閃記憶體 Programmer.exe,Tera 術語

若要設定您的硬體
  1. 將 E 2 精簡版模擬器和 USB 串行端口 Connect 到您的 RX65N 主板和 PC。

  2. 將電源 Connect 至 RX65N。

設定您的 AWS 資源

  1. 若要執行 FreeRTOS 示範,您必須擁有具有存 AWS IoT 取服務權限的 IAM 使用者 AWS 帳戶。如果您還沒有,請按照中的步驟操作設定您的 AWS 帳戶和權限

  2. 若要設定 OTA 更新,請遵循中的步驟OTA 更新先決條件。尤其是,請遵循中的步驟使用 MQTT 進行 OTA 更新的先決條件

  3. 開啟 AWS IoT 主控台

  4. 在左側導覽窗格中,選擇「管理」,然後選擇「件」來建立物件。

    物件是中裝置或邏輯實體的表示 AWS IoT。它可以是實體裝置或感應器 (例如燈泡或牆上的開關)。它也可以是邏輯實體,例如應用程式執行個體或實體實體不連線 AWS IoT,但與裝置有關 (例如,具有引擎感應器或控制面板的汽車)。 AWS IoT 提供了一個東西註冊表,幫助你管理你的事情。

    1. 選擇「建立」,然後選擇「建立單一物件」。

    2. 輸入物件的「名稱」,然後選擇「下一步」。

    3. 選擇 Create certificate (建立憑證)

    4. 下載建立的三個檔案,然後選擇 [啟用]。

    5. 選擇 Attach a policy (連接政策)

      顯示要下載檔案的主控台畫面
    6. 選取您在中建立的策略裝置政策

      使用 MQTT 接收 OTA 更新的每個設備都必須註冊為物件, AWS IoT 並且該物件必須具有與列出的策略相同的附加策略。如需 "Action""Resource" 物件中的項目的詳細資訊,請參閱 AWS IoT 核心政策動作AWS IoT 核心動作資源

      備註
      • iot:Connect權限允許您的設備通 AWS IoT 過 MQTT 連接。

      • AWS IoT 工作 (.../jobs/*) 主題的 iot:Subscribeiot:Publish 許可允許連接的裝置接收工作通知和工作文件,並發佈工作執行的完成狀態。

      • AWS IoT OTA 流(.../streams/*)主題的iot:Subscribeiot:Publish權限允許連接的設備從中獲取 OTA 更新數據 AWS IoT。需要這些許可才能透過 MQTT 執行韌體更新。

      • iot:Receive權限允許 AWS IoT Core 將這些主題的消息發佈到連接的設備。每次交付 MQTT 訊息時,都會檢查此許可。您可以使用此許可來撤銷目前訂閱主題之用戶端的存取權。

  5. 若要建立程式碼簽署設定檔,並在上註冊程式碼簽署憑證。 AWS

    1. 若要建立金鑰與認證,請參閱瑞薩 MCU 韌體更新設計原則中的第 7.3 節「使用 OpenSSL 產生 ECDSA-SHA256 金鑰配對」。

    2. 開啟 AWS IoT 主控台。在左側導覽窗格中,選取管理,然後選取工作。選取建立 Job,然後選取建立 OTA 更新工作

    3. [選取要更新的裝置] 下選擇 [選取],然後選擇您先前建立的項目 選取下一步

    4. 在 [建立 FreeRTOS OTA 更新工作] 頁面上,執行下列動作:

      1. 對於選擇韌體影像傳輸的通訊協定,請選擇 MQ TT。

      2. 對於選擇並簽署您的固件映像,請選擇為我簽署新的固件映像

      3. 針對程式碼簽章設定檔,選擇 [建立]

      4. 在「建立程式碼簽章設定檔」視窗中,輸入設定檔名稱。針對裝置硬體平台,選取視窗模擬器。對於代碼簽名證書,選擇導入

      5. 瀏覽以選取憑證 (secp256r1.crt)、憑證私密金鑰 (secp256r1.key) 和憑證鏈結 (ca.crt)。

      6. 輸入裝置上程式碼簽章憑證的路徑名稱。然後選擇 Create (建立)

  6. 若要授與的程式碼簽章存取權 AWS IoT,請遵循中的步驟將存取權限授予適用於 AWS IoT 的程式碼簽署

如果您的電腦上沒有安裝 Tera Term,您可以從 https://ttssh2.osdn.jp/index.html.en 下載並進行設定,如下所示。確保將 USB 串行端口從設備插入 PC。

Tera 長期串口設置窗口

導入,配置頭文件並構建 aws_demo 和引導加載器

若要開始,請選取 FreeRTOS 套件的最新版本,這會從下載 GitHub 並自動匯入到專案中。這樣,您就可以專注於配置 FreeRTOS 和編寫應用程序代碼。

  1. 啟動 e 2 工作室。

  2. 選擇 [檔案],然後選擇 [匯入...]。

  3. 選取「瑞薩 GitHub FreeRTOS (含 IoT 程式庫) 專案」。

    電子平方工作室導入窗口
  4. 選擇檢查更多版本... 以顯示下載對話方塊。

    電子平方工作室下載對話框窗口
  5. 選取最新的套件。

    電子平方工作室模塊下載對話框窗口
  6. 選擇 [同意] 以接受使用者授權合約。

    電子平方工作室 EULA 對話方塊
  7. 等待下載完成。

    下載進度列
  8. 選擇 aws_demo引導加載程序項目,然後選擇完成導入它們。

    匯入專案視窗
  9. 對於這兩個項目,請打開項目屬性。在導覽窗格中,選擇「工具鏈編輯器」。

    1. 選擇「目前」工具鏈

    2. 選擇目前的產生器

    電子平方工作室屬性窗口
  10. 在導覽窗格中,選擇設定選擇工具鏈標籤,然後選擇工具鏈版本。

    瑞薩 CCRX 版本 v3.01.00 的工具鏈整合設定,可選擇變更工具鏈。

    選擇工具設定標籤,展開轉換器,然後選擇輸出。在主視窗中,確定已選取 [輸出十六進位檔案],然後選擇 [輸出檔案類型]。

    C/C ++ 構建配置設置窗口,顯示編譯器和鏈接器選項,如輸出十六進制文件,輸出文件類型,輸出目錄和文件分割選項。
    具有堆疊分析、工具鏈編輯器、C/C++ 一般、MCU、專案參考等選項的介面設定樹狀結構。
  11. 在引導加載程序項目中,打開projects\renesas\rx65n-rsk\e2studio\boot_loader\src\key\code_signer_public_key.h並輸入公鑰。如需如何建立公開金鑰的詳細資訊,請參閱如何在 RX65N 上使用 Amazon Web Services 實作 FreeRTOS OTA,以及瑞薩 MC U 韌體更新設計政策中的第 7.3 節「使用 OpenSSL 產生 ECDSA-SHA256 金鑰配對」。

    程式碼編輯器會顯示 C 標頭檔案,其中包含 CODE_SIGNER_PUBLIC_KEY 的定義,以及 PEM 編碼的程式碼簽署者公開金鑰變數。

    然後建立要建立的專案boot_loader.mot

  12. 開啟aws_demos專案。

    1. 開啟 AWS IoT 主控台

    2. 在左側的導覽窗格中,選擇設定。在裝置資料端點文字方塊中記下您的自訂端點

    3. 選擇 [管理],然後選擇 [物件]。記下您主機板的 AWS IoT 物件名稱。

    4. aws_demos專案中,開啟demos/include/aws_clientcredential.h並指定下列值。

      #define clientcredentialMQTT_BROKER_ENDPOINT[] = "Your AWS IoT endpoint"; #define clientcredentialIOT_THING_NAME "The AWS IoT thing name of your board"
      顯示 AWS IoT 物件名稱和 Broker 端點組態設定的程式碼片段。
    5. 開啟 tools/certificate_configuration/CertificateConfigurator.html 檔案。

    6. 匯入您先前下載的憑證 PEM 檔案和私密金鑰 PEM 檔案。

    7. 選擇產生並儲存 aws_Client 認證 _keys .h,並取代目錄中的這個檔案。demos/include/

      憑證組態工具包含欄位,可從 AWS IoT 主控台提供用戶端憑證和私密金鑰 PEM 檔案,以及用來產生並儲存 aws_clientcredentials al_keys.h 檔案的按鈕。
    8. 開啟vendors/renesas/boards/rx65n-rsk/aws_demos/config_files/ota_demo_config.h檔案,並指定這些值。

      #define otapalconfigCODE_SIGNING_CERTIFICATE [] = "your-certificate-key";

      您的證書密鑰是文件中的值。secp256r1.crt請記住在認證中的每一行之後添加「\」。如需建立secp256r1.crt檔案的詳細資訊,請參閱如何在 RX65N 上使用 Amazon Web Services 實作 FreeRTOS OTA,以及瑞薩 MC U 韌體更新設計政策中的第 7.3 節「使用 OpenSSL 產生 ECDSA-SHA256 金鑰配對」。

      原始程式碼檔案,其中顯示 C 程式碼,用編輯的憑證資料定義 PEM 編碼的程式碼簽署者憑證常數字串。
  13. 工作 A:安裝韌體的初始版本

    1. 開啟vendors/renesas/boards/board/aws_demos/config_files/aws_demo_config.h檔案、註解#define CONFIG_CORE_MQTT_MUTUAL_AUTH_DEMO_ENABLED,然後定義CONFIG_OTA_MQTT_UPDATE_DEMO_ENABLEDCONFIG_OTA_HTTP_UPDATE_DEMO_ENABLED

    2. 開啟demos/include/ aws_application_version.h檔案,並將韌體的初始版本設定為0.9.2

      顯示應用程式版本定義的程式碼片段,包括主要、次要和組建版本號的巨集。
    3. 「橫斷面檢視器」 中變更以下設定。

      區段檢視器視窗會顯示記憶體位址、區段名稱 (例如 SU、SI、暫存器),以及網路緩衝區、例外狀況和動作按鈕等介面元件。
    4. 選擇「建置」以建立aws_demos.mot檔案。

  14. userprog.mot使用瑞薩安全快閃記憶體程式設計師建立檔案。 userprog.motaws_demos.mot與的組合boot_loader.mot。您可以將此檔案更新至 RX65N-RSK 以安裝初始韌體。

    1. 下載 https://github.com/renesas/Amazon-FreeRTOS-Tools 並打開Renesas Secure Flash Programmer.exe.

    2. 選擇「初始固定」頁標,然後設定下列參數:

      • 私密金鑰路徑 — 的位置secp256r1.privatekey

      • 開機載入程式檔案路徑boot_loader.mot (projects\renesas\rx65n-rsk\e2studio\boot_loader\HardwareDebug) 的位置。

      • 檔案路徑aws_demos.mot (projects\renesas\rx65n-rsk\e2studio\aws_demos\HardwareDebug) 的位置。

      瑞薩安全快閃記憶體程式設計師視窗包含 MCU、韌體驗證、序號、AES 金鑰路徑和檔案路徑欄位。
    3. 建立名為 init_firmware「產生」的目錄userprog.mot,並將其儲存到目init_firmware錄中。確認產生成功。

  15. 刷新 RX65N-RSK 上的初始韌體。

    1. 請從 https://www.renesas.com/tw/en/products/software-tools/tools/programmer/renesas-flash-programmer-programming-gui.html 下載最新版本的瑞薩快閃記憶體程式設計師 (程式設計 GUI)。

    2. 打開文vendors\renesas\rx_mcu_boards\boards\rx65n-rsk\aws_demos\flash_project\erase_from_bank\ erase.rpj件以擦除銀行上的數據。

    3. 選擇 [開始] 以清除銀行。

      「瑞薩快閃記憶體程式設計師」視窗顯示 RX Group 微控制器專案詳細資訊、檔案路徑,以及快閃記憶體操作選項,例如「清除」、「程式化」,以及使用「開始」
    4. 若要閃爍userprog.mot,請選擇 [瀏覽...] 並導航到目init_firmware錄,選擇userprog.mot文件並選擇開始

      「瑞薩快閃記憶體程式設計師」視窗顯示清除操作設定,包括微控制器 RX Group、瀏覽程式檔案的選項、「清除」和「開始」按鈕,以及要清除之區塊的狀態詳細資訊。
  16. 韌體版本 0.9.2 (初始版本) 已安裝至您的 RX65N-RSK。RX65N-RSK 板現在正在監聽 OTA 更新。如果您已在電腦上開啟 Tera Term,當初始韌體執行時,您會看到類似以下內容。

    ------------------------------------------------- RX65N secure boot program ------------------------------------------------- Checking flash ROM status. bank 0 status = 0xff [LIFECYCLE_STATE_BLANK] bank 1 status = 0xfc [LIFECYCLE_STATE_INSTALLING] bank info = 1. (start bank = 0) start installing user program. copy secure boot (part1) from bank0 to bank1...OK copy secure boot (part2) from bank0 to bank1...OK update LIFECYCLE_STATE from [LIFECYCLE_STATE_INSTALLING] to [LIFECYCLE_STATE_VALID] bank1(temporary area) block0 erase (to update LIFECYCLE_STATE)...OK bank1(temporary area) block0 write (to update LIFECYCLE_STATE)...OK swap bank... ------------------------------------------------- RX65N secure boot program ------------------------------------------------- Checking flash ROM status. bank 0 status = 0xf8 [LIFECYCLE_STATE_VALID] bank 1 status = 0xff [LIFECYCLE_STATE_BLANK] bank info = 0. (start bank = 1) integrity check scheme = sig-sha256-ecdsa bank0(execute area) on code flash integrity check...OK jump to user program 0 1 [ETHER_RECEI] Deferred Interrupt Handler Task started 1 1 [ETHER_RECEI] Network buffers: 3 lowest 3 2 1 [ETHER_RECEI] Heap: current 234192 lowest 234192 3 1 [ETHER_RECEI] Queue space: lowest 8 4 1 [IP-task] InitializeNetwork returns OK 5 1 [IP-task] xNetworkInterfaceInitialise returns 0 6 101 [ETHER_RECEI] Heap: current 234592 lowest 233392 7 2102 [ETHER_RECEI] prvEMACHandlerTask: PHY LS now 1 8 3001 [IP-task] xNetworkInterfaceInitialise returns 1 9 3092 [ETHER_RECEI] Network buffers: 2 lowest 2 10 3092 [ETHER_RECEI] Queue space: lowest 7 11 3092 [ETHER_RECEI] Heap: current 233320 lowest 233320 12 3193 [ETHER_RECEI] Heap: current 233816 lowest 233120 13 3593 [IP-task] vDHCPProcess: offer c0a80a09ip 14 3597 [ETHER_RECEI] Heap: current 233200 lowest 233000 15 3597 [IP-task] vDHCPProcess: offer c0a80a09ip 16 3597 [IP-task] IP Address: 192.168.10.9 17 3597 [IP-task] Subnet Mask: 255.255.255.0 18 3597 [IP-task] Gateway Address: 192.168.10.1 19 3597 [IP-task] DNS Server Address: 192.168.10.1 20 3600 [Tmr Svc] The network is up and running 21 3622 [Tmr Svc] Write certificate... 22 3697 [ETHER_RECEI] Heap: current 232320 lowest 230904 23 4497 [ETHER_RECEI] Heap: current 226344 lowest 225944 24 5317 [iot_thread] [INFO ][DEMO][5317] ---------STARTING DEMO--------- 25 5317 [iot_thread] [INFO ][INIT][5317] SDK successfully initialized. 26 5317 [iot_thread] [INFO ][DEMO][5317] Successfully initialized the demo. Network type for the demo: 4 27 5317 [iot_thread] [INFO ][MQTT][5317] MQTT library successfully initialized. 28 5317 [iot_thread] [INFO ][DEMO][5317] OTA demo version 0.9.2 29 5317 [iot_thread] [INFO ][DEMO][5317] Connecting to broker... 30 5317 [iot_thread] [INFO ][DEMO][5317] MQTT demo client identifier is rx65n-gr-rose (length 13). 31 5325 [ETHER_RECEI] Heap: current 206944 lowest 206504 32 5325 [ETHER_RECEI] Heap: current 206440 lowest 206440 33 5325 [ETHER_RECEI] Heap: current 206240 lowest 206240 38 5334 [ETHER_RECEI] Heap: current 190288 lowest 190288 39 5334 [ETHER_RECEI] Heap: current 190088 lowest 190088 40 5361 [ETHER_RECEI] Heap: current 158512 lowest 158168 41 5363 [ETHER_RECEI] Heap: current 158032 lowest 158032 42 5364 [ETHER_RECEI] Network buffers: 1 lowest 1 43 5364 [ETHER_RECEI] Heap: current 156856 lowest 156856 44 5364 [ETHER_RECEI] Heap: current 156656 lowest 156656 46 5374 [ETHER_RECEI] Heap: current 153016 lowest 152040 47 5492 [ETHER_RECEI] Heap: current 141464 lowest 139016 48 5751 [ETHER_RECEI] Heap: current 140160 lowest 138680 49 5917 [ETHER_RECEI] Heap: current 138280 lowest 138168 59 7361 [iot_thread] [INFO ][MQTT][7361] Establishing new MQTT connection. 62 7428 [iot_thread] [INFO ][MQTT][7428] (MQTT connection 81cfc8, CONNECT operation 81d0e8) Wait complete with result SUCCESS. 63 7428 [iot_thread] [INFO ][MQTT][7428] New MQTT connection 4e8c established. 64 7430 [iot_thread] [OTA_AgentInit_internal] OTA Task is Ready. 65 7430 [OTA Agent T] [prvOTAAgentTask] Called handler. Current State [Ready] Event [Start] New state [RequestingJob] 66 7431 [OTA Agent T] [INFO ][MQTT][7431] (MQTT connection 81cfc8) SUBSCRIBE operation scheduled. 67 7431 [OTA Agent T] [INFO ][MQTT][7431] (MQTT connection 81cfc8, SUBSCRIBE operation 818c48) Waiting for operation completion. 68 7436 [ETHER_RECEI] Heap: current 128248 lowest 127992 69 7480 [OTA Agent T] [INFO ][MQTT][7480] (MQTT connection 81cfc8, SUBSCRIBE operation 818c48) Wait complete with result SUCCESS. 70 7480 [OTA Agent T] [prvSubscribeToJobNotificationTopics] OK: $aws/things/rx65n-gr-rose/jobs/$next/get/accepted 71 7481 [OTA Agent T] [INFO ][MQTT][7481] (MQTT connection 81cfc8) SUBSCRIBE operation scheduled. 72 7481 [OTA Agent T] [INFO ][MQTT][7481] (MQTT connection 81cfc8, SUBSCRIBE operation 818c48) Waiting for operation completion. 73 7530 [OTA Agent T] [INFO ][MQTT][7530] (MQTT connection 81cfc8, SUBSCRIBE operation 818c48) Wait complete with result SUCCESS. 74 7530 [OTA Agent T] [prvSubscribeToJobNotificationTopics] OK: $aws/things/rx65n-gr-rose/jobs/notify-next 75 7530 [OTA Agent T] [prvRequestJob_Mqtt] Request #0 76 7532 [OTA Agent T] [INFO ][MQTT][7532] (MQTT connection 81cfc8) MQTT PUBLISH operation queued. 77 7532 [OTA Agent T] [INFO ][MQTT][7532] (MQTT connection 81cfc8, PUBLISH operation 818b80) Waiting for operation completion. 78 7552 [OTA Agent T] [INFO ][MQTT][7552] (MQTT connection 81cfc8, PUBLISH operation 818b80) Wait complete with result SUCCESS. 79 7552 [OTA Agent T] [prvOTAAgentTask] Called handler. Current State [RequestingJob] Event [RequestJobDocument] New state [WaitingForJob] 80 7552 [OTA Agent T] [prvParseJSONbyModel] Extracted parameter [ clientToken: 0:rx65n-gr-rose ] 81 7552 [OTA Agent T] [prvParseJSONbyModel] parameter not present: execution 82 7552 [OTA Agent T] [prvParseJSONbyModel] parameter not present: jobId 83 7552 [OTA Agent T] [prvParseJSONbyModel] parameter not present: jobDocument 84 7552 [OTA Agent T] [prvParseJSONbyModel] parameter not present: afr_ota 85 7552 [OTA Agent T] [prvParseJSONbyModel] parameter not present: protocols 86 7552 [OTA Agent T] [prvParseJSONbyModel] parameter not present: files 87 7552 [OTA Agent T] [prvParseJSONbyModel] parameter not present: filepath 99 7651 [ETHER_RECEI] Heap: current 129720 lowest 127304 100 8430 [iot_thread] [INFO ][DEMO][8430] State: Ready Received: 1 Queued: 0 Processed: 0 Dropped: 0 101 9430 [iot_thread] [INFO ][DEMO][9430] State: WaitingForJob Received: 1 Queued: 0 Processed: 0 Dropped: 0 102 10430 [iot_thread] [INFO ][DEMO][10430] State: WaitingForJob Received: 1 Queued: 0 Processed: 0 Dropped: 0 103 11430 [iot_thread] [INFO ][DEMO][11430] State: WaitingForJob Received: 1 Queued: 0 Processed: 0 Dropped: 0 104 12430 [iot_thread] [INFO ][DEMO][12430] State: WaitingForJob Received: 1 Queued: 0 Processed: 0 Dropped: 0 105 13430 [iot_thread] [INFO ][DEMO][13430] State: WaitingForJob Received: 1 Queued: 0 Processed: 0 Dropped: 0 106 14430 [iot_thread] [INFO ][DEMO][14430] State: WaitingForJob Received: 1 Queued: 0 Processed: 0 Dropped: 0 107 15430 [iot_thread] [INFO ][DEMO][15430] State: WaitingForJob Received: 1 Queued: 0 Processed: 0 Dropped: 0
  17. 工作 B:更新韌體版本

    1. 開啟demos/include/aws_application_version.h檔案並將APP_VERSION_BUILD權杖值遞增至0.9.3

    2. 重新建置專案。

  18. 使用瑞薩安全快閃記憶體程式設計師建立userprog.rsu檔案,以更新韌體版本。

    1. 開啟 Amazon-FreeRTOS-Tools\Renesas Secure Flash Programmer.exe 檔案。

    2. 選擇「更新固定」頁標,並設定下列參數:

      • 檔案路徑aws_demos.mot 檔案的位置 (projects\renesas\rx65n-rsk\e2studio\aws_demos\HardwareDebug)。

    3. 建立名為 update _firmware 的目錄。生成userprog.rsu並將其保存到目update_firmware錄中。確認產生成功。

      瑞薩安全快閃記憶體程式設計師視窗提供 MCU 選擇、韌體驗證類型、序號、AES MAC 金鑰欄位,以及可產生安全韌體的檔案路徑輸入。
  19. 如中所述userproj.rsu,將韌體更新上傳到 Amazon S3 儲存貯體建立 Amazon S3 儲存貯體來存放您的更新

    具有資料夾、上傳、版本和許可選項的 Amazon S3 儲存貯體管理界面
  20. 建立工作以更新 RX65N-RSK 上的韌體。

    AWS IoT Jobs 是一種服務,用於通知一個或多個連接的設備有待處理的 Job。工作可用於管理裝置群組、更新裝置上的韌體和安全憑證,或執行系統管理工作,例如重新啟動裝置和執行診斷。

    1. 登入 AWS IoT 主控台。在導覽窗格中,選擇 [管理],然後選擇 [工作]。

    2. 選擇「建立工作」,然後選擇「建立 OTA 更新工作」。選取項目,然後選擇「下一步」。

    3. 建立 FreeRTOS OTA 更新工作,如下所示:

      • 選擇 MQTT

      • 選取您在上一節中建立的程式碼簽章設定檔。

      • 選取您上傳到 Amazon S3 儲存貯體的韌體映像。

      • 針對裝置上韌體影像的路徑名稱,輸入test

      • 選擇您在上一節中建立的 IAM 角色。

    4. 選擇下一步

      具有用於簽署新韌體、選擇先前簽署的韌體、使用自訂簽署的韌體、使用自訂簽署的韌體、指定程式碼簽名設定檔、韌體映像檔、裝置上的路徑以及 OTA 更新工作的 IAM 角色的選項。
    5. 輸入 ID,然後選擇 [建立]。

  21. 重新打開 Tera 術語以驗證固件是否已成功更新為 OTA 演示版本 0.9.3。

    命令行輸出顯示線程的初始化和連接到代理。
  22. 在 AWS IoT 主控台上,確認工作狀態為 [成功]。

    AFR OTA 示範測試工作概觀顯示 1 個資源成功。