STM32WB55_NUCLEO开发(12)----FUS 更新

这篇具有很好参考价值的文章主要介绍了STM32WB55_NUCLEO开发(12)----FUS 更新。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

在 STM32WB 微控制器中,FUS(Firmware Upgrade Services)是用于固件升级的一种服务。这项服务可以让你更新设备上的无线栈固件(如蓝牙、Zigbee或 Thread 栈),以及无线 MCU (microcontroller unit) 的系统服务。
FUS 实质上是设备的一部分固件,它可以独立于主应用程序运行,主要负责安全地处理设备固件的升级。这包括检查新固件的有效性,确保新固件被正确地写入设备,以及在出现问题时回滚到旧版本的固件。
总的来说,FUS 是 STM32WB 和其他 STM32 无线微控制器中一个非常重要的组件,可以确保设备固件的安全更新。
最近在弄ST和瑞萨RA的课程,需要样片的可以加群申请:6_15061293 。

视频教学

听不到声音的请点击跳转进行观看。
https://www.bilibili.com/video/BV1hd4y1f7iZ/

STM32WB55

硬件准备

首先需要准备一个开发板,这里我准备的是NUCLEO-WB55RG 的开发板:
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划

存储器映射

FUS 在 Flash 存储器中有一个专用空间,该空间取决于 FUS 大小。它还使用 SRAM2a 和 SRAM2b 中的专用空间
以及 SRAM2a(共享表)中的共享空间。由选项字节定义 Flash 存储器 SRAM2a 和 SRAM2b 中的专用空间大小。
若需更多信息,请参见产品参考手册。
与无线协议栈(如果安装)共享专用 Flash 存储器和 SRAM 区域。但在给定时间,只能在 Cortex®-M0+上运行
FUS 或无线协议栈。
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划

FLASH安全区设置

安全CPU2可以通过加载新的用户选项SFSA来修改CPU2的安全起始地址。
从闪存存储器的基地址开始加上[SFSA x 0x1000](包含),直到最后一个闪存存储器地址。当启用CPU2安全性时,CPU2安全区域的最小大小为一个扇区(4K字节)。
例如,一个从地址0x080C 7000(包含)到地址0x080F FFFF(包含)的CPU2安全区域。

stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
SFSA[7:0]包含了安全闪存存储区域第一个4K字节页面的起始地址。
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划

SRAM安全区设置

CPU2安全SRAM2a和SRAM2b区域以1 K字节的粒度定义,并通过安全备份RAM(SRAM2a)起始地址的用户选项(BRSD和SBRSA)以及安全非备份RAM(SRAM2b)起始地址的用户选项(NBRSD和SNBRSA)定义在闪存中。这些偏移由闪存内的安全SRAM2起始地址和CPU2复位向量寄存器(FLASH_SRRVR)中的SBRSA和SNBRSA字段控制。

stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划

stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
CPU2安全的SRAM2a区域定义为备份SRAM2a基地址 + [SBRSA x 0x0400](包括),直到最后一个SRAM2a地址。
例如,对于CPU2安全的SRAM2a区域,从地址0x20035000(包括)到地址0x20037FFF(包括),需要将FLASH_SRRVR寄存器编程为SBRSA = 0x14。

任何CPU1的读取访问都不返回数据,并且对CPU2安全SRAM2a区域的写访问会被丢弃并触发总线错误。
当BRSD设置为1时,SRAM2a是非安全的。

CPU2安全的非备份SRAM2b区域定义为非备份SRAM2b基地址 + [SNBRSA x 0x0400](包括),直到最后一个SRAM2b地址。
例如,对于CPU2安全的SRAM2b区域,从地址0x2003EC00(包括)到地址0x2003FFFF(包括),需要将FLASH_SRRVR寄存器编程为SNBRSA = 0x1B。
任何CPU1的读取访问都不返回数据,并且对CPU2安全SRAM2b区域的写访问会被丢弃并触发总线错误。
当NBRSD设置为1时,SRAM2b是非安全的。

stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划

FUS固件下载
Firmware Update Service(FUS)是一种用于在STM32WB微控制器上更新固件的功能。FUS下载是指通过FUS服务进行固件更新的过程。通过FUS下载,您可以通过无线方式将新的固件加载到STM32WB设备中,而无需使用传统的有线编程方法。
在ST官网中提供了固件,下载地址:
https://www.st.com/zh/embedded-software/stm32cubewb.html

stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
下载完毕之后,打开该目录,有对应的版本说明文档。

stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
固件升级流程如下所示。
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
打开STM32CubeProgrammer,连接开发板。
进入固件升级服务,点击Start FUS。
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划

连接成功会弹出如下所示窗口,若没链接成功,可以点击复位键。
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
可以使用STM32CubeProgrammer软件,通过点击"Read FUS infos"按钮,来读取安装在STM32WB微控制器中的FUS(Firmware Update Service)版本信息。这里的FUS版本为V0.5.3.0
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
通过打开上述的"Release_Notes.html"说明文档,可以查看固件包中不同MCU所对应的地址差异。
同时这里要求的固件包为V1.2.0,如果不是的话需要进行 STEP 5/6 。
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
选择相应的固件文件和起始地址后,您可以查看对应的固件等级,并点击"Firmware Upgrade"按钮进行固件升级。
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
升级成功如下所示。
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
若出现如下报错,说明没有进行第五步。

stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
需要进行第五步,stm32wb5x_FUS_fw_for_fus_0_5_3.bin 这个二进制文件是用于刷新无线协处理器二进制文件的实用程序。
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划

选中stm32wb5x_FUS_fw_for_fus_0_5_3.bin,同时输入对应的地址进行升级。

stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
成功升级会显示如下所示窗口。
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划

重新读取FUS版本,可以看见已经由之前的V0.5.3.0变为了V1.2.0.0
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划

重新升级stm32wb5x_BLE_Stack_full_fw.bin。
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
这个时候可以查看到固件是升级成功了的。
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划

最后我们可以进行第八步,设置boot寄存器。
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划

通过USB进行下载

通过USB下载固件的具体流程如下所示。
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
通过usb进行下载,需要进行一些跳线帽的设置。

stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
同时需要将CN7.5(VDD) and CN7.7(Boot0)短接以及设置nSWboot0=1为1。
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划

设置nSWboot0=1为1。
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划

连接CN7.5(VDD) 和 CN7.7(Boot0)。
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
切换为USB连接,连接上如下所示。
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
对于FUS版本,不同的FUS版本对应的步骤不一样。
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划

由于我之前升级过了,可以直接下载固件。

stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划
下载成功如下所示。

stm32wb55,#stm32wb,stm32cube,#STM32,STM32WB,FUS,固件,ble,原力计划文章来源地址https://www.toymoban.com/news/detail-686265.html

到了这里,关于STM32WB55_NUCLEO开发(12)----FUS 更新的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32WB55开发(1)----套件概述

    所使用的器件是我们自行设计的开发板,该开发板是基于 STM32WB55 系列微控制器所构建。STM32WBXX_VFQFPN68 不仅是一款评估套件,它还集成了众多现代化的无线通信技术特点。其中,双模蓝牙 5.0 和 802.15.4 无线通信协议的加入,让该开发板在物联网和智能设备领域都有着广泛的应

    2024年02月10日
    浏览(36)
  • STM32WB55开发(3)----断开蓝牙连接

    在嵌入式领域中,STM32WB 系列微控制器以其双核架构和强大的无线连接能力而著称。特别是其蓝牙5.0的功能使得这款微控制器非常适合那些需要低功耗和高性能无线连接的应用。然而,在实际的应用中,合理和有效地管理蓝牙连接是非常关键的,尤其是当设备需要断开或重新

    2024年02月08日
    浏览(49)
  • STM32WB55开发(5)----调整射频功率

    随着无线通信技术的不断进步,能够精确地控制射频(RF)信号的功率变得越来越重要。调整射频功率不仅可以影响设备的通信距离和覆盖范围,还可以优化电池的使用寿命和减少可能的射频干扰。ACI_HAL_SET_TX_POWER_LEVEL指令提供了一种方法,使工程师和开发者能够在ST的蓝牙设

    2024年02月06日
    浏览(43)
  • 内嵌功能强大、低功耗STM32WB55CEU7、STM32WB55CGU7 射频微控制器 - MCU, 48-UFQFN

    一、概述: STM32WB55xx多协议无线和超低功耗器件内嵌功能强大的超低功耗无线电模块(符合蓝牙® 低功耗SIG规范5.0和IEEE 802.15.4-2011标准)。该器件内含专用的Arm® Cortex® -M0+,用于执行所有的底层实时操作。这些器件基于高性能Arm® Cortex®-M4 32位RISC内核(工作频率可达64 MHz),

    2024年02月11日
    浏览(40)
  • 【STM32备忘录】【STM32WB系列的BLE低功耗蓝牙】一、测试广播配置搜不到信号的注意事项

    WB系列是双核单片机,用户写M4,无线协议栈使用M0 新买到手的单片机,需要自己刷入使用的无线协议栈 刷入无线协议栈的途径是通过一个叫FUS的东东,类似于bootloader,这个FUS新买的芯片通常已经刷好,但版本不一定是最新的(如果没有需要自己刷入) 刷入FUS和无线协议栈需要

    2024年03月16日
    浏览(58)
  • STM32FreeRTOS任务通知(STM32cube高效开发)

    1、任务通知可模拟队列和信号量 任务通知是FreeRTOS另外一种进程间通信技术。不需要创建任何中间对象,可以直接从任务向任务或ISR向任务发送通知,传递一个通知值任务通知可以模拟二值信号量、计数信号量、或长度为1的消息队列,使用任务通知,一般效率更高,消耗内

    2024年03月13日
    浏览(49)
  • 【STM32Cube开发记录】1-下载和安装STM32CubeIDE

    【STM32Cube开发记录】1-下载和安装STM32CubeIDE 【STM32Cube开发记录】2-STM32CubeProgrammer的使用 【STM32Cube开发记录】3-STM32CubeMX的使用 【STM32Cube开发记录】4-标准库 HAL库 LL库 【STM32Cube开发记录】5-寄存器和存储器映射 【STM32Cube开发记录】6-STM32核心功能 【STM32Cube开发记录】7-Debug调试功

    2024年01月17日
    浏览(44)
  • STM32 Nucleo-144开发板开箱bring-up

    最近做项目,用到STM32F446ZET6这款MCU,为了赶进度,前期软件需要提前开发,于是在某宝买了对应主控的官方开发板,为了避免遗忘,后面能翻出来回忆一些细节,就形成了本篇的主要内容,同时也希望能够帮助刚上手的小伙伴少走弯路,如果对你有帮助请点赞、收藏、转发,

    2024年02月07日
    浏览(43)
  • STM32CubeIDE开发(三十一), stm32人工智能开发应用实践(Cube.AI).篇一

    目录 一、cube.AI简介及cubeIDE集成        1.1 cube.AI介绍        1.2 cube.AI与cubeIDE集成与安装         1.3 cube.AI支持硬件平台         1.4 cube.AI应用的好处  二、FP-AI-SENSING1        2.1 FP-AI-SENSING1简介           2.2 FP-AI-SENSING1软件包支持硬件平台 三、FP-AI-SENSING1部署        

    2024年01月22日
    浏览(44)
  • STM32CubeIDE开发(三十三), stm32人工智能开发应用实践(Cube.AI).篇三

    目录 一、cube.AI实际项目应用 二、创建工程 2.1 工程配置 2.2 外设代码设计 2.3 传感器数据采集与输出源码设计 2.4 编辑下载程序,采集数据  三、模型训练 四、cube.AI配置及c模型生成 五、模型调用及测试         接篇二,前文都是采用FP-AI-SENSING1案例和配套的B-L475E-IOT01A开

    2024年01月17日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包