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

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

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

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

嵌入式單片機MCU開發(fā) ? 來源:嵌入式單片機MCU開發(fā) ? 作者:嵌入式單片機MCU開 ? 2023-12-01 16:49 ? 次閱讀

概述

STM32WB 微控制器中,F(xiàn)US(Firmware Upgrade Services)是用于固件升級的一種服務(wù)。這項服務(wù)可以讓你更新設(shè)備上的無線棧固件(如藍(lán)牙、Zigbee或 Thread 棧),以及無線 MCU (microcontroller unit) 的系統(tǒng)服務(wù)。
FUS 實質(zhì)上是設(shè)備的一部分固件,它可以獨立于主應(yīng)用程序運行,主要負(fù)責(zé)安全地處理設(shè)備固件的升級。這包括檢查新固件的有效性,確保新固件被正確地寫入設(shè)備,以及在出現(xiàn)問題時回滾到舊版本的固件。
總的來說,F(xiàn)US 是 STM32WB 和其他 STM32 無線微控制器中一個非常重要的組件,可以確保設(shè)備固件的安全更新。
最近在弄ST和瑞薩RA的課程,需要樣片的可以加群申請:615061293 。

視頻教學(xué)

聽不到聲音的請點擊跳轉(zhuǎn)進(jìn)行觀看。
[https://www.bilibili.com/video/BV1qj411Y7dX/

硬件準(zhǔn)備

首先需要準(zhǔn)備一個開發(fā)板,這里我準(zhǔn)備的是自己繪制的開發(fā)板,新班子使用了MLPF-WB55-01E3的2.4 GHz低通濾波器和陶瓷天線,體積更小。

在這里插入圖片描述

存儲器映射

FUS 在 Flash 存儲器中有一個專用空間,該空間取決于 FUS 大小。它還使用 SRAM2a 和 SRAM2b 中的專用空間
以及 SRAM2a(共享表)中的共享空間。由選項字節(jié)定義 Flash 存儲器 SRAM2a 和 SRAM2b 中的專用空間大小。
若需更多信息,請參見產(chǎn)品參考手冊。
與無線協(xié)議棧(如果安裝)共享專用 Flash 存儲器和 SRAM 區(qū)域。但在給定時間,只能在 Cortex?-M0+上運行
FUS 或無線協(xié)議棧。
在這里插入圖片描述
在這里插入圖片描述

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

安全CPU2可以通過加載新的用戶選項SFSA來修改CPU2的安全起始地址。
從閃存存儲器的基地址開始加上[SFSA x 0x1000](包含),直到最后一個閃存存儲器地址。當(dāng)啟用CPU2安全性時,CPU2安全區(qū)域的最小大小為一個扇區(qū)(4K字節(jié))。
例如,一個從地址0x080C 7000(包含)到地址0x080F FFFF(包含)的CPU2安全區(qū)域。

在這里插入圖片描述
在這里插入圖片描述
SFSA[7:0]包含了安全閃存存儲區(qū)域第一個4K字節(jié)頁面的起始地址。
在這里插入圖片描述

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

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

在這里插入圖片描述

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

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

CPU2安全的非備份SRAM2b區(qū)域定義為非備份SRAM2b基地址 + [SNBRSA x 0x0400](包括),直到最后一個SRAM2b地址。
例如,對于CPU2安全的SRAM2b區(qū)域,從地址0x2003EC00(包括)到地址0x2003FFFF(包括),需要將FLASH_SRRVR寄存器編程為SNBRSA = 0x1B。
任何CPU1的讀取訪問都不返回數(shù)據(jù),并且對CPU2安全SRAM2b區(qū)域的寫訪問會被丟棄并觸發(fā)總線錯誤。
當(dāng)NBRSD設(shè)置為1時,SRAM2b是非安全的。

在這里插入圖片描述
在這里插入圖片描述

FUS固件下載
Firmware Update Service(FUS)是一種用于在STM32WB微控制器上更新固件的功能。FUS下載是指通過FUS服務(wù)進(jìn)行固件更新的過程。通過FUS下載,您可以通過無線方式將新的固件加載到STM32WB設(shè)備中,而無需使用傳統(tǒng)的有線編程方法。
在ST官網(wǎng)中提供了固件,下載地址:
https://www.st.com/zh/embedded-software/stm32cubewb.html

在這里插入圖片描述
下載完畢之后,打開該目錄,有對應(yīng)的版本說明文檔。

在這里插入圖片描述
固件升級流程如下所示。
在這里插入圖片描述
打開STM32CubeProgrammer,連接開發(fā)板。
進(jìn)入固件升級服務(wù),點擊Start FUS。
在這里插入圖片描述

連接成功會彈出如下所示窗口,若沒鏈接成功,可以點擊復(fù)位鍵。
在這里插入圖片描述
可以使用STM32CubeProgrammer軟件,通過點擊"Read FUS infos"按鈕,來讀取安裝在STM32WB微控制器中的FUS(Firmware Update Service)版本信息。這里的FUS版本為V0.5.3.0
在這里插入圖片描述
通過打開上述的"Release_Notes.html"說明文檔,可以查看固件包中不同MCU所對應(yīng)的地址差異。
同時這里要求的固件包為V1.2.0,如果不是的話需要進(jìn)行 STEP 5/6 。
在這里插入圖片描述
在這里插入圖片描述
選擇相應(yīng)的固件文件和起始地址后,您可以查看對應(yīng)的固件等級,并點擊"Firmware Upgrade"按鈕進(jìn)行固件升級。
在這里插入圖片描述
升級成功如下所示。
在這里插入圖片描述
若出現(xiàn)如下報錯,說明沒有進(jìn)行第五步。

在這里插入圖片描述
在這里插入圖片描述
需要進(jìn)行第五步,stm32wb5x_FUS_fw_for_fus_0_5_3.bin 這個二進(jìn)制文件是用于刷新無線協(xié)處理器二進(jìn)制文件的實用程序。
在這里插入圖片描述

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

在這里插入圖片描述
在這里插入圖片描述
成功升級會顯示如下所示窗口。
在這里插入圖片描述

重新讀取FUS版本,可以看見已經(jīng)由之前的V0.5.3.0變?yōu)榱薞1.2.0.0
在這里插入圖片描述

重新升級stm32wb5x_BLE_Stack_full_fw.bin。
在這里插入圖片描述
這個時候可以查看到固件是升級成功了的。
在這里插入圖片描述

最后我們可以進(jìn)行第八步,設(shè)置boot寄存器。
在這里插入圖片描述
在這里插入圖片描述

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

通過USB下載固件的具體流程如下所示。
在這里插入圖片描述
通過usb進(jìn)行下載,需要進(jìn)行一些跳線帽的設(shè)置。

在這里插入圖片描述

同時需要將BOOT0進(jìn)行上拉以及設(shè)置nSWboot0=1為1。
在這里插入圖片描述

設(shè)置nSWboot0=1為1。
在這里插入圖片描述

切換為USB連接,連接上如下所示。
在這里插入圖片描述
對于FUS版本,不同的FUS版本對應(yīng)的步驟不一樣。
在這里插入圖片描述
在這里插入圖片描述

由于我之前升級過了,可以直接下載固件。

在這里插入圖片描述
下載成功如下所示。

在這里插入圖片描述

注意事項

協(xié)議棧下載進(jìn)去了可能無法運行,需要Start Wireless Stack。

在這里插入圖片描述

審核編輯 黃宇

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

    關(guān)注

    114

    文章

    5751

    瀏覽量

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

    關(guān)注

    12

    文章

    648

    瀏覽量

    59294
  • STM32WB55
    +關(guān)注

    關(guān)注

    0

    文章

    25

    瀏覽量

    1296
收藏 人收藏

    評論

    相關(guān)推薦

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

    STM32WB 微控制器中,FUS(Firmware Upgrade Services)是用于固件升級的一種服務(wù)。這項服務(wù)可以讓你更新設(shè)備上的無線棧固件(如藍(lán)牙、Zigbee或 Thread 棧),以及無線 MCU (mic
    的頭像 發(fā)表于 11-13 15:36 ?866次閱讀
    <b class='flag-5'>STM32WB55</b>_NUCLEO<b class='flag-5'>開發(fā)</b>(12)----<b class='flag-5'>FUS</b><b class='flag-5'>更新</b>

    STM32WB55開發(fā)(4)----配置串口打印Debug調(diào)試信息

    STM32WB55系列微控制器上進(jìn)行開發(fā)時,實時監(jiān)控應(yīng)用程序的運行情況和調(diào)試潛在問題是至關(guān)重要的。使用串口(USART/UART)進(jìn)行Debug信息打印是一種簡便、高效的方法。下面是如何在STM32WB55上配置串口來打印調(diào)試
    的頭像 發(fā)表于 12-01 15:48 ?1157次閱讀
    <b class='flag-5'>STM32WB55</b><b class='flag-5'>開發(fā)</b>(4)----配置串口打印Debug調(diào)試信息

    升級STM32WB55 dongle FUS版本遇到的疑問求解

    我在升級使用一個wb55新的USBdongle時候,用stm32cubeprogrammer打開,使用read fus info,發(fā)現(xiàn)FUS版本、stack版本、
    發(fā)表于 03-13 07:58

    Stm32wb55 USBDongle在stm32programmor上在只能檢測出m4內(nèi)核,同時無法對fus升級是為什么?

    Stm32wb55 USBDongle在stm32programmor上在只能檢測出m4內(nèi)核,同時無法對fus升級,提示沒有鏡像及bin文件不是正版
    發(fā)表于 04-01 06:34

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

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

    STM32WB55開發(fā)板單板設(shè)計

    STM32WB55開發(fā)板(一)單板設(shè)計-硬件介紹目錄STM32WB55開發(fā)板(一)單板設(shè)計-硬件介紹前言簡介參數(shù)介紹MCU方面開發(fā)板方面
    發(fā)表于 08-06 08:15

    STM32WB55是如何在RT-Thread系統(tǒng)上移植的

    STM32WB55在RT-Thread系統(tǒng)上移植官方藍(lán)牙BLE功能硬件環(huán)境:(1)開發(fā)板:ST官方的stm32wb55-st-nucleo開發(fā)板軟件環(huán)境:(1)
    發(fā)表于 08-24 07:20

    STM32WB55開發(fā)板的功能是什么?

    STM32WB55開發(fā)板的功能是什么?
    發(fā)表于 11-08 06:36

    STM32WB55的相關(guān)資料推薦

    STM32WB55 藍(lán)牙協(xié)議棧運行流程解析簡介STM32WB55是ST公司近期推出的一顆雙核(M0+M4)無線MCU,主要應(yīng)用在BLE領(lǐng)域,同時也可以運行thread和zigbee等無線協(xié)議棧。協(xié)議
    發(fā)表于 02-07 08:47

    如何控制stm32wb55的電源呢

    我想了解如何控制 stm32wb55 的電源。我正在運行來自最新 stm32cube 的 PWR_STANDBY_RTC 示例。在待機狀態(tài)下,我正在讀取 900 uA。這似乎很高。我應(yīng)該期待什么?
    發(fā)表于 12-20 07:24

    FUS_STATE_IMG_NOT_AUTHENTIC在STM32WB55上從0.5.3更新FUS時出錯怎么解決?

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

    STM32WB55開發(fā)板(一)單板設(shè)計-硬件介紹

    STM32WB55開發(fā)板(一)單板設(shè)計-硬件介紹目錄STM32WB55開發(fā)板(一)單板設(shè)計-硬件介紹前言簡介參數(shù)介紹MCU方面開發(fā)板方面
    發(fā)表于 12-01 18:06 ?20次下載
    <b class='flag-5'>STM32WB55</b><b class='flag-5'>開發(fā)</b>板(一)單板設(shè)計-硬件介紹

    STM32WB55 藍(lán)牙協(xié)議棧運行流程解析

    STM32WB55 藍(lán)牙協(xié)議棧運行流程解析簡介STM32WB55是ST公司近期推出的一顆雙核(M0+M4)無線MCU,主要應(yīng)用在BLE領(lǐng)域,同時也可以運行thread和zigbee等無線協(xié)議棧。協(xié)議
    發(fā)表于 12-04 12:36 ?17次下載
    <b class='flag-5'>STM32WB55</b> 藍(lán)牙協(xié)議棧運行流程解析

    STM32WB55在RT-Thread系統(tǒng)上移植官方藍(lán)牙BLE功能

    STM32WB55在RT-Thread系統(tǒng)上移植官方藍(lán)牙BLE功能硬件環(huán)境:(1)開發(fā)板:ST官方的stm32wb55-st-nucleo開發(fā)板軟件環(huán)境:(1)
    發(fā)表于 12-04 12:51 ?17次下載
    <b class='flag-5'>STM32WB55</b>在RT-Thread系統(tǒng)上移植官方藍(lán)牙BLE功能

    stm32wb55 基于rtt的ble sample制作過程

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