|
编写好代码进入调试模式时,IDE 都会自动执行整片擦除,然后下载新编译的程序。 但我有一些需要保存在 Flash 中的自定义变量,会被一并擦除。 我在调试配置里取消勾选 [Download] 选项,这样变量不会被清除,但这种方式开发时不适用。 我查阅了一些方案,想保留指定的 Flash 区间不被擦除:确认可用 Flash 范围:0x08000000 ~ 0x08080000 查看了用户代码区和 flash.ld 链接脚本 最终决定把数据存放在地址 0x08002000 我修改了链接脚本,添加了如下段: .eeprom : { . += 0x200; . = ALIGN(0x800); / 2KB 保留区域 / } >FLASH 这段配置可以让程序跳过 0x08000200 开始的 2KB 空间,但下载程序时 IDE 依然会整片擦除。 我也添加 [NOLOAD] 属性: .eeprom (NOLOAD) : 但没有效果,我猜测这个属性只在上电时生效,不影响程序下载过程。 请问有没有办法配置 CubeIDE 的调试下载脚本,不擦除我保留的 Flash 区域? |
在 STM32CubeIDE 中生成 ioc 配置文件
CAN 总线多节点环境下进行固件升级
在 Bootloader 运行期间保持 GPIO 引脚电平状态不变
把 MCO1 时钟源选为 PLLCLK会怎样
I2C 错误代码含义
在编译C++ STM32项目时,如何将.hpp文件扩展名与合并了头文件声明和源文件定义的模板
sscanf 函数无法正确读取浮点值
TIM5 1μs 定时无法触发回调函数
如何将 LoRa993 模块与 STM32F401RE 对接
STM32F407 音频输入输出时 IFFT 无法正常工作
微信公众号
手机版
下载擦除选择Sector,不要选全部Flash
需要指定secter起始地址和终止地址么