STM32中的系统存储器(System Memory)

在STM32中,System memory(系统存储器)是芯片内部的一块特殊存储区域,主要功能是存储ST公司预置的BootLoader程序,用于系统启动配置、固件更新和调试支持。以下是其核心功能和技术细节的详细说明:

1. 核心功能

出厂预置的BootLoader
System memory中固化了一段由ST公司编写的不可修改的引导程序(BootLoader)。该程序在芯片出厂时已烧录,用户无法擦除或修改。其主要作用包括:
系统启动控制:根据BOOT引脚配置(如BOOT0=1且BOOT1=0),从System memory启动以执行BootLoader,而非用户的主程序。
固件更新支持:通过BootLoader提供的接口(如串口、USB、CAN等),用户可在不依赖外部调试工具的情况下更新主Flash中的程序。
调试与恢复:当主Flash被锁死或程序损坏时,通过System memory启动可重新烧录程序,修复系统。

2. 技术特性

地址与容量
• 在STM32F1系列中,System memory的起始地址为0x1FFF_F000,容量通常为2KB(具体型号需参考数据手册)。
• 属于Flash信息区(Information Block)的一部分,与Option Bytes(配置字节)共同构成Flash的非主存储区域。

只读属性
System memory的内容由ST公司固化,用户无法通过常规编程操作修改,仅能读取或通过特定硬件接口(如串口)调用其功能。

3. 应用场景

串口下载程序(ISP模式)
当BOOT引脚设置为从System memory启动时,芯片会运行预置的BootLoader,允许通过串口(如USART)直接下载程序到主Flash,无需JTAG/SWD调试工具。
系统恢复
若主Flash因误操作被写保护或程序崩溃,可通过System memory的BootLoader重新烧录程序,解除锁定状态。
低功耗设备支持
某些低功耗型号(如STM32L系列)的System memory可能包含针对低功耗模式的优化启动代码。

4. 与主Flash的区别

特性System Memory主Flash(Main Memory)
内容ST预置的BootLoader用户编写的应用程序代码和常量数据
可修改性不可修改可擦写和编程
地址范围0x1FFF_F000起(F1系列)0x08000000起
典型容量2KB(F1系列)16KB~2MB(依型号而定)

5. 配置与使用注意事项

启动模式选择:需通过BOOT引脚配置选择从System memory启动(如BOOT0=1,BOOT1=0)。
兼容性:不同型号STM32的System memory地址和BootLoader功能可能略有差异,需参考具体数据手册。
安全机制:System memory的BootLoader可能包含访问权限控制,防止未授权操作。

总结来说,System memory是STM32芯片中用于系统级操作的关键模块,其预置的BootLoader为系统启动、固件更新和故障恢复提供了底层支持,是开发过程中重要的调试和维护工具。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值