0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

學(xué)習(xí)一種簡(jiǎn)單的方法來啟用OTA固件更新

Silicon Labs ? 來源:lp ? 2019-04-10 16:37 ? 次閱讀

在管理物聯(lián)網(wǎng)設(shè)備方面,無線(OTA)固件更新發(fā)揮著關(guān)鍵作用。產(chǎn)品制造商借助OTA,通過漏洞修復(fù),功能增強(qiáng)和安全補(bǔ)丁功能遠(yuǎn)程更新連接設(shè)備。

如果您正在對(duì)Silicon Labs(亦稱“芯科科技”)的某一EFM32 32位MCU型號(hào)進(jìn)行評(píng)估,例如嵌入式Giant GeckoGG11入門套件(SLSTK3701A),并希望學(xué)習(xí)一種簡(jiǎn)單的方法來啟用OTA固件更新。那么本文將通過以下展示示例進(jìn)行演示:

圖1. 以太網(wǎng)上的固件更新

圖1-(1): 嵌入式應(yīng)用程序充當(dāng)HTTP客戶端,將被連接到您的Web服務(wù)器以發(fā)送GET請(qǐng)求下載固件更新文件(myupgrade.gbl)

圖1-(2): 服務(wù)器開始使用固件更新文件(myupgrade.gbl)并對(duì)其進(jìn)行響應(yīng)

圖1-(3): 下載文件myupgrade.gbl后,嵌入式應(yīng)用程序?qū)⑹褂靡龑?dǎo)加載程序接口API對(duì)其進(jìn)行存儲(chǔ),緊接著重新編程引導(dǎo)加載程序的存儲(chǔ)區(qū)域。

圖1-(4): 嵌入式應(yīng)用程序?qū)⑹褂靡龑?dǎo)加載程序接口API驗(yàn)證固件更新映像并升級(jí)當(dāng)前應(yīng)用程序。

固件更新映像顯現(xiàn)有以下幾個(gè)標(biāo)準(zhǔn):

myupgrade.gbl為有效文件,這需要嵌入式應(yīng)用程序使用引導(dǎo)加載程序接口API進(jìn)行確認(rèn)。

嵌入式應(yīng)用程序檢查myupgrade.gbl中存儲(chǔ)的固件更新映像的版本。如果嵌入式應(yīng)用程序的版本與正在運(yùn)行的應(yīng)用程序的版本相同或?yàn)榕f版本,圖像文件則不會(huì)顯現(xiàn)。

如果出現(xiàn)以下情況,引導(dǎo)加載程序存儲(chǔ)區(qū)域?qū)⒈粍h除。嵌入式應(yīng)用程序?qū)L試建立新的HTTP / HTTPS連接:

加載的.gbl圖像文件無效。

存儲(chǔ)的圖像版本與運(yùn)行版本相同或?yàn)榕f版本。

HTTP / HTTPS協(xié)議出現(xiàn)任何問題。

硬件要求

EFM32 Giant Gecko GG11入門套件SLSTK3701A

Web服務(wù)器托管固件更新文件

軟件要求

Simplicity Studio

32位MCU SDK

Micrium OS內(nèi)核

Micrium OS網(wǎng)絡(luò)

入門介紹

1.從官網(wǎng)或經(jīng)銷商處訂購EFM32 Giant Gecko GG11入門套件SLSTK3701A

2.安裝Simplicity Studio

下載并安裝最新版本的Simplicity Studio:http://www.silabs.com/simplicity-studio

下載軟件并按照安裝說明進(jìn)行操作。

登錄時(shí),請(qǐng)輸入您在Silicon Labs官網(wǎng)的用戶名和密碼。如果您還沒有帳戶,請(qǐng)注冊(cè)。這是訪問所有軟件組件所必需的條件。

登錄后,使用Simplicity Studio注冊(cè)您的套件。如果套件未注冊(cè),Simplicity Studio僅允許訪問Micrium內(nèi)核;如果套件已注冊(cè),Simplicity Studio還可允許訪問所有其他適用的Micrium組件。許可證編號(hào)可參考套件包裝盒上編碼。

3.連接電路板,如下圖所示:

圖2. 硬件連接

4.從Launcher面板打開Simplicity Studio,選擇SLSTK3701A_micriumos_httpcloader的示例,如下所示:

圖3.選擇示例

5.打開位于Project Explorer中/ src文件夾中的文件httpclient.c,然后輸入計(jì)劃進(jìn)行的托管固件更新映像的完整URL:

#define FULL_URLhttp://mywebserver.com/myupgrade.gbl

如果使用中的網(wǎng)絡(luò)服務(wù)器是安全的(即https),那么此演示也包括mbedTLS一部分。只需確保網(wǎng)站所需的證書在位于Project Explorer的/ src文件夾中的文件ssl_certificates.c中的SSL_ROOT_CA []。

您可能還必須通過在配置文件config-ssl中設(shè)置MBEDTLS_ECP_MAX_BITS和MBEDTLS_MPI_MAX_SIZE中的正確大小來調(diào)整與您的網(wǎng)站證書匹配的位數(shù)和字節(jié)數(shù) -

httpcloader.h位于C: SiliconLabs SimplicityStudio v4 developer sdks gecko_sdk_suite v2.5 app mcu_example SLSTK3701A_EFM32GG11 micriumos_httpcloader config-ssl-httpcloader.h

#defineMBEDTLS_MPI_MAX_SIZE 256

#defineMBEDTLS_ECP_MAX_BITS 384

6.打開Project Explorer的/ src文件夾中的application_properties.c文件,并將嵌入式應(yīng)用程序的版本號(hào)設(shè)置為2以模擬固件升級(jí):

#define APP_PROPERTIES_VERSION2

7.構(gòu)建項(xiàng)目

8.通過打開位于C: SiliconLabs SimplicityStudio v4 developer adapter_packs commander的實(shí)用程序Simplicity Commander并將二進(jìn)制文件.s37的路徑提供給與此類似的命令行,生成固件更新文件myupgrade.gbl

commander.exe gbl createmyupgrade.gbl --app"C:Users[YourUsername]SimplicityStudiov4_workspaceSLSTK3701A_micriumos_httpcloaderGNUARM v7.2.1 - DebugSLSTK3701A_micriumos_httpcloader.s37"

圖4. 創(chuàng)建固件更新文件(.gbl)

9.將文件myupgrade.gbl上傳到您的Web服務(wù)器

10.打開Project Explorer的/ src文件夾中的application_properties.c,并將嵌入式應(yīng)用程序的版本號(hào)設(shè)置回1:

#define APP_PROPERTIES_VERSION1

11.再次構(gòu)建項(xiàng)目

12.如之前圖2所示連接入門工具包

13.在Windows中打開“設(shè)備管理器”,查找列為J-Link CDC UART端口USB設(shè)備的COM端口號(hào)

14.打開串行控制臺(tái)應(yīng)用程序(如PuTTY)便于在運(yùn)行時(shí)查看調(diào)試消息

15.從調(diào)試適配器列表中選擇項(xiàng)目J-Link Silicon Labs,單擊右鍵打開上下文菜單,然后選擇upload application,如下所示:

圖5. 上傳嵌入式應(yīng)用程序和Bootloader映像

16.在“Application Image Path”字段中,通過瀏覽項(xiàng)目所在的工作文件夾,選擇構(gòu)建的文件SLSTK3701A_micriumos_httpcloader.s37,路徑類似于以下內(nèi)容:

C:Users[YourUsername]SimplicityStudiov4_workspaceSLSTK3701A_micriumos_httpcloaderGNUARM v7.2.1 - DebugSLSTK3701A_micriumos_httpcloader.s37

勾選“Upload a Bootloader image”復(fù)選框,然后通過在相似路徑中瀏覽到文件bootloader-storage-internal-single-combined.s37選擇示例附帶的引導(dǎo)加載程序:

C:SiliconLabsSimplicityStudiov4developersdksgecko_sdk_suitev2.5appmcu_exampleSLSTK3701A_EFM32GG11micriumos_httpcloaderootloader-storage-internal-single-combined.s37

圖6. 上傳嵌入式應(yīng)用程序和Bootloader映像

17.點(diǎn)擊“OK”按鈕后,兩個(gè)圖像將會(huì)顯現(xiàn)。引導(dǎo)加載程序映像將在Flash的保留區(qū)域中,從此處可以簡(jiǎn)單地從Simplicity Studio啟動(dòng)調(diào)試會(huì)話,從而使用不同的應(yīng)用程序映像對(duì)設(shè)備進(jìn)行編程。因?yàn)橐龑?dǎo)加載程序映像被存儲(chǔ)在Flash的保留區(qū)域中,除非您使用此工具或使用Simplicity Commander的命令行覆蓋它,否則映像不會(huì)被刪除。

18.當(dāng)嵌入式應(yīng)用程序啟動(dòng)以太網(wǎng)接口時(shí),觀察串行終端,連接到網(wǎng)站下載文件myupgrade.gbl并在新升級(jí)的嵌入式應(yīng)用程序上重新啟動(dòng)該文件。

圖7. 成功升級(jí)時(shí)的調(diào)試消息

延伸閱讀

此示例中描述的固件更新情況基于無身份驗(yàn)證情況下,同時(shí)也沒有加密固件更新文件。但是,我們的系統(tǒng)支持這些功能以及安全啟動(dòng),但這超出了本文范圍。如需簽署和加密固件更新文件,您可以按一下方式使用Simplicity Commander:

commander.exe gbl create --app--bootloader --metadata --compress --encrypt --sign --force

有關(guān)如何使用Simplicity Commander,請(qǐng)參閱以下文檔的第34頁上的GBL命令部分:

UG162:Simplicity Commander參考指南https://www.silabs.com/documents/public/user-guides/ug162-simplicity-commander-reference-guide.pdf

有關(guān)Gecko Bootloader的更多內(nèi)容,請(qǐng)參閱以下文檔:

UG266:Gecko Bootloader用戶指南https://www.silabs.com/documents/public/user-guides/ug266-gecko-bootloader-user-guide.pdf

UG103.6:Bootloader基礎(chǔ)知識(shí)https://www.silabs.com/documents/public/user-guides/ug103-06-fundamentals-bootloading.pdf

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:【設(shè)計(jì)應(yīng)用】以太網(wǎng)助力Giant Gecko 11固件更新

文章出處:【微信號(hào):SiliconLabs,微信公眾號(hào):Silicon Labs】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    有沒有一種方法來配置MPLAX X從RAM運(yùn)行應(yīng)用程序?

    有沒有一種方法來配置MPLAX X從RAM運(yùn)行應(yīng)用程序,而不是從Flash運(yùn)行?
    發(fā)表于 09-12 06:33

    請(qǐng)問有另一種方法來測(cè)量RTD傳感器而不使用IDAC嗎?

    嗨,有沒有另一種方法來測(cè)量RTD傳感器而不使用IDAC?TKS。
    發(fā)表于 10-11 09:33

    請(qǐng)問如何實(shí)現(xiàn)ESP32固件OTA在線升級(jí)更新

    什么是OTA?ESP32的OTA升級(jí)有哪幾種方式?如何實(shí)現(xiàn)ESP32固件OTA在線升級(jí)更新?
    發(fā)表于 01-14 06:05

    介紹一種使用WSL編譯nodemcu固件方法

    本文將介紹一種使用WSL編譯nodemcu固件方法
    發(fā)表于 02-15 07:34

    一種更通用的方法來監(jiān)測(cè)處理器中的電壓噪聲

    的是,這種專門的電路還不是大多數(shù)高端Arm系統(tǒng)的標(biāo)準(zhǔn)功能。在我們最近與塞浦路斯大學(xué)的合作研究中,我們成功地開發(fā)了一種更通用的方法來監(jiān)測(cè)處理器中的電壓噪聲。這種技術(shù)依賴于使用外部天線和頻譜分析儀的處理器發(fā)出
    發(fā)表于 11-01 14:48

    是否有一種簡(jiǎn)單方法將P-NUCLE-WB55重置回交付時(shí)的固件呢?

    TLDR:是否有一種簡(jiǎn)單方法(或者至少是清晰的分步說明)將 P-NUCLE-WB55 重置回交付時(shí)的固件?全:我有個(gè) P-Nucleo-
    發(fā)表于 12-27 06:28

    軟件驅(qū)動(dòng)程序是否有一種相當(dāng)簡(jiǎn)單方法來檢測(cè)安裝了哪個(gè)rtc設(shè)備?

    軟件驅(qū)動(dòng)程序是否有一種相當(dāng)簡(jiǎn)單方法來檢測(cè)安裝了哪個(gè) rtc 設(shè)備?我們從 PCF2127 開始,但由于其他原因正在重新設(shè)計(jì),并且由于 NRND 的 PCF2127 狀態(tài),考慮轉(zhuǎn)向 PCF2131。但軟件必須支持這兩
    發(fā)表于 04-06 07:31

    是否有一種簡(jiǎn)單”的方法來增加允許的“打開”文件的最大數(shù)量?

    問題:是否有一種簡(jiǎn)單”的方法來增加允許的“打開”文件的最大數(shù)量(=====>SPIFFS) 我在 esp8266 HTML 頁面上使用#include
    發(fā)表于 05-15 07:21

    如何通過簡(jiǎn)單方法來增加手機(jī)的續(xù)航時(shí)間

    通過這篇文章告訴大家如何通過簡(jiǎn)單方法來了解手機(jī)的續(xù)航時(shí)間。
    發(fā)表于 01-19 09:20 ?6072次閱讀

    如何更簡(jiǎn)單的給單片機(jī)更新固件?

    當(dāng)單片機(jī)已經(jīng)焊接到電路板上時(shí),如何更簡(jiǎn)單更便捷的為單片機(jī)升級(jí)固件便成了件值得深思的問題。本文介紹了一種簡(jiǎn)單更便捷的
    的頭像 發(fā)表于 10-23 18:19 ?1.7w次閱讀
    如何更<b class='flag-5'>簡(jiǎn)單</b>的給單片機(jī)<b class='flag-5'>更新</b><b class='flag-5'>固件</b>?

    科學(xué)家找到一種化學(xué)方法來儲(chǔ)存和操作大量的數(shù)據(jù)

    組科學(xué)家認(rèn)為,數(shù)十億兆字節(jié)的數(shù)據(jù)可以存儲(chǔ)在小瓶化學(xué)液體中。來自布朗大學(xué)的研究小組表示,其開展的研究能夠通過將化學(xué)物質(zhì)裝載到分子上,然后將分子溶解到液體中,從而找到一種化學(xué)方法來儲(chǔ)存
    的頭像 發(fā)表于 02-01 16:23 ?4507次閱讀

    一種方法來檢測(cè)這些被操縱的換臉視頻的“跡象”

    利用深度學(xué)習(xí)“換臉”合成假視頻的技術(shù)發(fā)展之快令人驚嘆,也令人深感不安。研究人員已經(jīng)研究出一種方法來檢測(cè)這些被操縱的換臉視頻,通過有效地預(yù)測(cè)眼睛的狀態(tài),準(zhǔn)確率達(dá)到99%。
    的頭像 發(fā)表于 07-03 09:48 ?5655次閱讀

    最后一種方法來整理你的電阻器

    電子發(fā)燒友網(wǎng)站提供《最后一種方法來整理你的電阻器.zip》資料免費(fèi)下載
    發(fā)表于 12-19 10:19 ?0次下載
    最后<b class='flag-5'>一種方法來</b>整理你的電阻器

    AT32 MCU如何使用OTA通過USART實(shí)現(xiàn)對(duì)固件的在線升級(jí)更新

    AT32 MCU如何使用OTA通過USART實(shí)現(xiàn)對(duì)固件的在線升級(jí)更新
    的頭像 發(fā)表于 10-26 17:09 ?2026次閱讀
    AT32 MCU如何使用<b class='flag-5'>OTA</b>通過USART實(shí)現(xiàn)對(duì)<b class='flag-5'>固件</b>的在線升級(jí)<b class='flag-5'>更新</b>

    一種簡(jiǎn)單方法來將振蕩器相位噪聲轉(zhuǎn)換為時(shí)間抖動(dòng)

    電子發(fā)燒友網(wǎng)站提供《一種簡(jiǎn)單方法來將振蕩器相位噪聲轉(zhuǎn)換為時(shí)間抖動(dòng).pdf》資料免費(fèi)下載
    發(fā)表于 11-23 15:15 ?0次下載
    <b class='flag-5'>一種</b><b class='flag-5'>簡(jiǎn)單</b>的<b class='flag-5'>方法來</b>將振蕩器相位噪聲轉(zhuǎn)換為時(shí)間抖動(dòng)