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

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

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

STM32WB55_NUCLEO開(kāi)發(fā)(12)----FUS更新

嵌入式單片機(jī)MCU開(kāi)發(fā) ? 來(lái)源:嵌入式單片機(jī)MCU開(kāi)發(fā) ? 作者:嵌入式單片機(jī)MCU開(kāi) ? 2023-11-13 15:36 ? 次閱讀

概述

STM32WB 微控制器中,F(xiàn)US(Firmware Upgrade Services)是用于固件升級(jí)的一種服務(wù)。這項(xiàng)服務(wù)可以讓你更新設(shè)備上的無(wú)線棧固件(如藍(lán)牙、Zigbee或 Thread 棧),以及無(wú)線 MCU (microcontroller unit) 的系統(tǒng)服務(wù)。

FUS 實(shí)質(zhì)上是設(shè)備的一部分固件,它可以獨(dú)立于主應(yīng)用程序運(yùn)行,主要負(fù)責(zé)安全地處理設(shè)備固件的升級(jí)。這包括檢查新固件的有效性,確保新固件被正確地寫入設(shè)備,以及在出現(xiàn)問(wèn)題時(shí)回滾到舊版本的固件。

總的來(lái)說(shuō),F(xiàn)US 是 STM32WB 和其他 STM32 無(wú)線微控制器中一個(gè)非常重要的組件,可以確保設(shè)備固件的安全更新。 最近在弄ST和瑞薩RA的課程,需要樣片的可以加群申請(qǐng):615061293 。

視頻教學(xué)

聽(tīng)不到聲音的請(qǐng)點(diǎn)擊跳轉(zhuǎn)進(jìn)行觀看。

https://www.bilibili.com/video/BV1hd4y1f7iZ/

硬件準(zhǔn)備

首先需要準(zhǔn)備一個(gè)開(kāi)發(fā)板,這里我準(zhǔn)備的是NUCLEO-WB55RG 的開(kāi)發(fā)板:

存儲(chǔ)器映射

FUS 在 Flash 存儲(chǔ)器中有一個(gè)專用空間,該空間取決于 FUS 大小。它還使用 SRAM2a 和 SRAM2b 中的專用空間 以及 SRAM2a(共享表)中的共享空間。

由選項(xiàng)字節(jié)定義 Flash 存儲(chǔ)器 SRAM2a 和 SRAM2b 中的專用空間大小。 若需更多信息,請(qǐng)參見(jiàn)產(chǎn)品參考手冊(cè)。

與無(wú)線協(xié)議棧(如果安裝)共享專用 Flash 存儲(chǔ)器和 SRAM 區(qū)域。但在給定時(shí)間,只能在 Cortex?-M0+上運(yùn)行 FUS 或無(wú)線協(xié)議棧。

FLASH安全區(qū)設(shè)置

安全CPU2可以通過(guò)加載新的用戶選項(xiàng)SFSA來(lái)修改CPU2的安全起始地址。

從閃存存儲(chǔ)器的基地址開(kāi)始加上[SFSA x 0x1000](包含),直到最后一個(gè)閃存存儲(chǔ)器地址。當(dāng)啟用CPU2安全性時(shí),CPU2安全區(qū)域的最小大小為一個(gè)扇區(qū)(4K字節(jié))。

例如,一個(gè)從地址0x080C 7000(包含)到地址0x080F FFFF(包含)的CPU2安全區(qū)域。

SFSA[7:0]包含了安全閃存存儲(chǔ)區(qū)域第一個(gè)4K字節(jié)頁(yè)面的起始地址。

SRAM安全區(qū)設(shè)置

CPU2安全SRAM2a和SRAM2b區(qū)域以1 K字節(jié)的粒度定義,并通過(guò)安全備份RAM(SRAM2a)起始地址的用戶選項(xiàng)(BRSD和SBRSA)以及安全非備份RAM(SRAM2b)起始地址的用戶選項(xiàng)(NBRSD和SNBRSA)定義在閃存中。這些偏移由閃存內(nèi)的安全SRAM2起始地址和CPU2復(fù)位向量寄存器(FLASH_SRRVR)中的SBRSA和SNBRSA字段控制。

CPU2安全的SRAM2a區(qū)域定義為備份SRAM2a基地址 + [SBRSA x 0x0400](包括),直到最后一個(gè)SRAM2a地址。 例如,對(duì)于CPU2安全的SRAM2a區(qū)域,從地址0x20035000(包括)到地址0x20037FFF(包括),需要將FLASH_SRRVR寄存器編程為SBRSA = 0x14。

任何CPU1的讀取訪問(wèn)都不返回?cái)?shù)據(jù),并且對(duì)CPU2安全SRAM2a區(qū)域的寫訪問(wèn)會(huì)被丟棄并觸發(fā)總線錯(cuò)誤。 當(dāng)BRSD設(shè)置為1時(shí),SRAM2a是非安全的。

CPU2安全的非備份SRAM2b區(qū)域定義為非備份SRAM2b基地址 + [SNBRSA x 0x0400](包括),直到最后一個(gè)SRAM2b地址。 例如,對(duì)于CPU2安全的SRAM2b區(qū)域,從地址0x2003EC00(包括)到地址0x2003FFFF(包括),需要將FLASH_SRRVR寄存器編程為SNBRSA = 0x1B。

任何CPU1的讀取訪問(wèn)都不返回?cái)?shù)據(jù),并且對(duì)CPU2安全SRAM2b區(qū)域的寫訪問(wèn)會(huì)被丟棄并觸發(fā)總線錯(cuò)誤。 當(dāng)NBRSD設(shè)置為1時(shí),SRAM2b是非安全的。

FUS固件下載 Firmware Update Service(FUS)是一種用于在STM32WB微控制器上更新固件的功能。FUS下載是指通過(guò)FUS服務(wù)進(jìn)行固件更新的過(guò)程。通過(guò)FUS下載,您可以通過(guò)無(wú)線方式將新的固件加載到STM32WB設(shè)備中,而無(wú)需使用傳統(tǒng)的有線編程方法。

在ST官網(wǎng)中提供了固件,下載地址:

https://www.st.com/zh/embedded-software/stm32cubewb.html

下載完畢之后,打開(kāi)該目錄,有對(duì)應(yīng)的版本說(shuō)明文檔。

固件升級(jí)流程如下所示。

打開(kāi)STM32CubeProgrammer,連接開(kāi)發(fā)板。 進(jìn)入固件升級(jí)服務(wù),點(diǎn)擊Start FUS。

連接成功會(huì)彈出如下所示窗口,若沒(méi)鏈接成功,可以點(diǎn)擊復(fù)位鍵。

可以使用STM32CubeProgrammer軟件,通過(guò)點(diǎn)擊"Read FUS infos"按鈕,來(lái)讀取安裝在STM32WB微控制器中的FUS(Firmware Update Service)版本信息。這里的FUS版本為V0.5.3.0

通過(guò)打開(kāi)上述的"Release_Notes.html"說(shuō)明文檔,可以查看固件包中不同MCU所對(duì)應(yīng)的地址差異。 同時(shí)這里要求的固件包為V1.2.0,如果不是的話需要進(jìn)行 STEP 5/6 。

選擇相應(yīng)的固件文件和起始地址后,您可以查看對(duì)應(yīng)的固件等級(jí),并點(diǎn)擊"Firmware Upgrade"按鈕進(jìn)行固件升級(jí)。

升級(jí)成功如下所示。

若出現(xiàn)如下報(bào)錯(cuò),說(shuō)明沒(méi)有進(jìn)行第五步。

需要進(jìn)行第五步,stm32wb5x_FUS_fw_for_fus_0_5_3.bin 這個(gè)二進(jìn)制文件是用于刷新無(wú)線協(xié)處理器二進(jìn)制文件的實(shí)用程序。

選中stm32wb5x_FUS_fw_for_fus_0_5_3.bin,同時(shí)輸入對(duì)應(yīng)的地址進(jìn)行升級(jí)。

成功升級(jí)會(huì)顯示如下所示窗口。

重新讀取FUS版本,可以看見(jiàn)已經(jīng)由之前的V0.5.3.0變?yōu)榱薞1.2.0.0

重新升級(jí)stm32wb5x_BLE_Stack_full_fw.bin。

這個(gè)時(shí)候可以查看到固件是升級(jí)成功了的。

最后我們可以進(jìn)行第八步,設(shè)置boot寄存器。

通過(guò)USB進(jìn)行下載

通過(guò)USB下載固件的具體流程如下所示。

通過(guò)usb進(jìn)行下載,需要進(jìn)行一些跳線帽的設(shè)置。

同時(shí)需要將CN7.5(VDD) and CN7.7(Boot0)短接以及設(shè)置nSWboot0=1為1。

設(shè)置nSWboot0=1為1。

連接CN7.5(VDD) 和 CN7.7(Boot0)。

切換為USB連接,連接上如下所示。

對(duì)于FUS版本,不同的FUS版本對(duì)應(yīng)的步驟不一樣。

由于我之前升級(jí)過(guò)了,可以直接下載固件。

下載成功如下所示。


審核編輯:湯梓紅

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

    關(guān)注

    114

    文章

    5751

    瀏覽量

    169590
  • 無(wú)線
    +關(guān)注

    關(guān)注

    31

    文章

    5417

    瀏覽量

    172969
  • BLE
    BLE
    +關(guān)注

    關(guān)注

    12

    文章

    648

    瀏覽量

    59294
  • stm32cubemx
    +關(guān)注

    關(guān)注

    5

    文章

    280

    瀏覽量

    14713
  • STM32WB55
    +關(guān)注

    關(guān)注

    0

    文章

    25

    瀏覽量

    1296
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32WB55_NUCLEO開(kāi)發(fā)(9)----接收手機(jī)數(shù)據(jù)點(diǎn)亮LED

    群申請(qǐng):615061293 。 硬件準(zhǔn)備 首先需要準(zhǔn)備一個(gè)開(kāi)發(fā)板,這里我準(zhǔn)備的是NUCLEO-WB55RG 的開(kāi)發(fā)板: 視頻教學(xué) 聽(tīng)不到聲音的請(qǐng)點(diǎn)擊跳轉(zhuǎn)進(jìn)行觀看。 https
    的頭像 發(fā)表于 08-21 15:16 ?1038次閱讀
    <b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>開(kāi)發(fā)</b>(9)----接收手機(jī)數(shù)據(jù)點(diǎn)亮LED

    STM32WB55_NUCLEO開(kāi)發(fā)(10)----接收手機(jī)特定數(shù)據(jù)點(diǎn)亮LED

    STM32WB55_NUCLEO開(kāi)發(fā)(10)----接收手機(jī)特定數(shù)據(jù)點(diǎn)亮LED
    的頭像 發(fā)表于 08-21 15:19 ?884次閱讀
    <b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>開(kāi)發(fā)</b>(10)----接收手機(jī)特定數(shù)據(jù)點(diǎn)亮LED

    STM32WB55_NUCLEO開(kāi)發(fā)(11)----發(fā)送數(shù)據(jù)到手機(jī)

    STM32WB55_NUCLEO開(kāi)發(fā)(11)----發(fā)送數(shù)據(jù)到手機(jī)
    的頭像 發(fā)表于 08-21 15:22 ?1126次閱讀
    <b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>開(kāi)發(fā)</b>(11)----發(fā)送數(shù)據(jù)到手機(jī)

    STM32WB55開(kāi)發(fā)(6)----FUS更新

    STM32WB 微控制器中,FUS(Firmware Upgrade Services)是用于固件升級(jí)的一種服務(wù)。這項(xiàng)服務(wù)可以讓你更新設(shè)備上的無(wú)線棧固件(如藍(lán)牙、Zigbee或 Thread 棧
    的頭像 發(fā)表于 12-01 16:49 ?811次閱讀
    <b class='flag-5'>STM32WB55</b><b class='flag-5'>開(kāi)發(fā)</b>(6)----<b class='flag-5'>FUS</b><b class='flag-5'>更新</b>

    NUCLEO-WB55RG更新FUS,在CubeIDE里無(wú)法燒錄怎么解決?

    板子是NUCLEO-WB55RG,那天嘗試了一下FUS更新,后來(lái)在CubeIDE里無(wú)法燒錄,也無(wú)法連接到CubeProg,圖片如下,ST-link的電壓為0V,嘗試更改mode為hot plug,power down均無(wú)效,其他
    發(fā)表于 03-14 07:40

    P-NUCLEO-WB55.USBDongle開(kāi)發(fā)板升級(jí)FUS和無(wú)線協(xié)議棧失敗的原因?

    按照官網(wǎng)提供的下面步驟 升級(jí)P-NUCLEO-WB55.USBDongle單板的FUS和無(wú)線協(xié)議棧后,單板在sw2 to boot0下,stm32cubeprogrammer選擇usb模式無(wú)法再識(shí)別
    發(fā)表于 04-16 06:59

    在定制板上更新STM32WB55CGU6上的無(wú)線堆棧時(shí)遇到問(wèn)題如何解決

    我在定制板上更新 STM32WB55CGU6 上的無(wú)線堆棧時(shí)遇到問(wèn)題。該板基本上是 P-NUCLEO-WB55-USBDONGLE 的克隆版本。該設(shè)備通過(guò) St-Link/V2 上的 SWD 連接
    發(fā)表于 12-05 09:56

    FUS_STATE_IMG_NOT_AUTHENTIC在STM32WB55上從0.5.3更新FUS時(shí)出錯(cuò)怎么解決?

    我正在嘗試使用 STM32CUBE Programmer GUI 工具通過(guò) ST-LINK 升級(jí)我的 STM32WB55 Nucleo 板上的 FUS 和無(wú)線堆棧版本,并看到此錯(cuò)誤
    發(fā)表于 12-27 06:22

    P-NUCLEO-WB55 STMicroelectronicsPNUCLEOWB55STM32WBNucleo68數(shù)據(jù)包

    電子發(fā)燒友網(wǎng)為你提供(ti)P-NUCLEO-WB55相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有P-NUCLEO-WB55的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,P-NUCLEO-WB55真值表,P-
    發(fā)表于 10-23 16:06

    stm32wb55 基于rtt的ble sample制作過(guò)程

    stm32wb55 基于rtt的ble sample制作過(guò)程準(zhǔn)備活動(dòng)硬件stm32wb55 nucleo開(kāi)發(fā)stm32wb55 dangl
    發(fā)表于 12-20 19:39 ?13次下載
    <b class='flag-5'>stm32wb55</b> 基于rtt的ble sample制作過(guò)程

    STM32WB55_NUCLEO開(kāi)發(fā)(1)----軟件與硬件介紹

    所使用的的器件位ST官方的P-NUCLEO-WB55。
    的頭像 發(fā)表于 11-18 09:54 ?2468次閱讀
    <b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>開(kāi)發(fā)</b>(1)----軟件與硬件介紹

    STM32WB55_NUCLEO開(kāi)發(fā)(5)----手機(jī)與STM32WB通過(guò)鍵入密鑰配對(duì)

    本篇文章主要介紹如何使用STM32CubeMX對(duì)生成STM32WB工程,并通過(guò)與STM32WB配對(duì)獲取密鑰值,然后通過(guò)鍵盤輸入密鑰進(jìn)行配對(duì)。
    的頭像 發(fā)表于 11-18 10:02 ?1166次閱讀
    <b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>開(kāi)發(fā)</b>(5)----手機(jī)與<b class='flag-5'>STM32WB</b>通過(guò)鍵入密鑰配對(duì)

    STM32WB55_NUCLEO開(kāi)發(fā)(7)----手機(jī)與STM32WB進(jìn)行綁定

    本篇文章主要介紹如何使用STM32CubeMX對(duì)生成STM32WB工程,并通過(guò)與STM32WB配對(duì),將其綁定。
    的頭像 發(fā)表于 11-18 10:08 ?1221次閱讀
    <b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>開(kāi)發(fā)</b>(7)----手機(jī)與<b class='flag-5'>STM32WB</b>進(jìn)行綁定

    STM32WB55_NUCLEO開(kāi)發(fā)(8)----授權(quán)

    本篇文章主要介紹如何使用STM32CubeMX對(duì)生成STM32WB工程,并通過(guò)與STM32WB配對(duì),應(yīng)用程序?qū)蛻舳俗x取或者寫入特征值進(jìn)行授權(quán)。
    的頭像 發(fā)表于 11-18 10:09 ?1172次閱讀
    <b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>開(kāi)發(fā)</b>(8)----授權(quán)

    DB4388_NUCLEO_WB55RG NUCLEO_WB15CC 數(shù)據(jù)手冊(cè)摘要

    DB4388_NUCLEO_WB55RG NUCLEO_WB15CC 數(shù)據(jù)手冊(cè)摘要
    發(fā)表于 11-23 08:34 ?1次下載
    DB4388_<b class='flag-5'>NUCLEO_WB55</b>RG <b class='flag-5'>NUCLEO_WB</b>15CC 數(shù)據(jù)手冊(cè)摘要