打印
[STM32F4]

【STM32F413 Discovery 试用】SBSFU在F413上的运行

[复制链接]
45|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sgf201|  楼主 | 2025-5-17 22:58 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

[i=s] 本帖最后由 sgf201 于 2025-5-17 23:42 编辑 [/i]<br /> <br />

[i=s] 本帖最后由 sgf201 于 2025-5-17 23:16 编辑 [/i]

SBSFU介绍

SBSFU(安全启动与安全固件升级)就像给智能设备装了一个“智能保镖”,从硬件底层开始全程守护设备的“生命线”——每次开机时,它像严格的安检员一样验证系统是否被篡改,只有通过官方数字签名认证的固件才能运行,否则直接拒绝启动;当设备进行固件升级时,它又化身“加密快递员”,用高强度加密算法保护传输通道,并用数字签名印章确保下载的固件来自可信来源,一旦升级失败还能自动回滚到旧版本避免设备变砖;更关键的是,它通过物理级防护手段(如熔断机制、密钥保险箱)抵御拆机调试、电磁攻击等物理入侵,甚至能在检测到危险时主动销毁敏感数据。无论是你深夜使用的智能手表、车载导航系统,还是医院里的医疗设备,SBSFU都在幕后默默验证每一行代码的合法性,让黑客无法通过伪造固件窃取数据、劫持功能或破坏核心服务,最终让普通用户无需专业知识就能享受“零接触”的设备安全防护。

STM32F413作为Cortex-M4内核高性能MCU,其安全架构为SBSFU提供了关键硬件支撑:

  • 双Bank Flash分区机制:支持安全区(Bank1)与用户区(Bank2)物理隔离,实现固件冗余存储与回滚保护
  • 加密加速引擎:集成AES-256硬件模块,支持固件加密存储与安全通信(支持GCM模式完整性校验)
  • 安全存储区:专用BootROM区域(0x1FF00000-0x1FF03FFF)存放根密钥,配合CRYP模块实现密钥动态管理
  • 安全调试接口:通过Option Bytes配置WP(写保护)与RDP(读保护)级别,禁用非法调试访问

STM32F413尝试

image.png

img_v3_02mc_cee36a6c-c166-40be-9634-6d4ad1aacdag.jpg

当开发板到手后,我第一时间体验了其内置的语音识别Demo——对着麦克风说出指令时,设备竟能精准识别并触发对应功能,这种即时交互的流畅感让我印象深刻。然而当我试图深入研究时,却遇到了阻碍:在技术论坛和用户群里反复搜索,始终找不到完整的Demo源码,仅能从零散的代码片段中拼凑逻辑。有经验丰富的开发者建议使用STM32CubeMX工具直接生成语音识别Demo,可生成的代码却缺失了关键的语音特征提取模块和云端通信接口,编译后下载到板子时,屏幕仅显示了基础UI界面,核心功能始终无法正常运作。虽然这份不完整的代码让我一度陷入困惑,但考虑到本次项目的核心目标是探索SBSFU安全框架的落地实践,我决定暂时搁置语音模块的调试——毕竟SBSFU的防篡改启动验证、双镜像OTA升级机制以及密钥动态管理功能,才是保障物联网设备安全的基石。接下来,深入理解X-CUBE-SBSFU扩展包中安全引导加载程序与固件加密服务的协同机制,先不纠结默认的demo应用了。

最上边的图片是截图的坛友的图片,我未拍照

SBSFU工程创建与编译

从官网下载SBSFU的包,当然简易也下载好STM32的全家桶,cube ide programer

image.pngimage.pngimage.pngimage.png

解压第一个压缩包后,在ide中创建一个ws,这里就不再截图了,在ws中导入SBSFU的工程

image.png

我选择的是单镜像的工程,按下面的顺序进行编译

image.png

image.png

image.png

image.png

安全启动程序下载与运行

三个工程中bin的工程不用下载,它会被包含到SBSFU的bin中,SBSFU可以直接使用STlink下载,下载后将启动安全,只能使用串口下载真正的app固件。

打开programer

image.png

image.png

image.png

image.png

下载se.bin与SBSFU.elf后在stlink的串口上未见到打印。

使用stlink调试发现代码已经在等待Ymodel协议下载应用了

image.png

看来板子的下载串口并未接入到stlink的串口上,且板子的另一个USB口是OTG口,不是串口,需要找出F413的串口,使用外部的串口助手进行数据下载。

最终未在板上找到串口的位置,后续查找到位置后再继续更新

串口修改

查找sch发现有引出的只有USART7,如下图:

image.png

修改SBSFU中使用的串口到USART7

查看SBSFU使用的串口1

修改串口如下:

image.png

修改为uart7后,UART发送卡住,UART与USART并不相同,UART7的初始化与USART1看来是有区别的

image.png

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

97

帖子

0

粉丝