|
编写好代码进入调试模式时,IDE 都会自动执行整片擦除,然后下载新编译的程序。 但我有一些需要保存在 Flash 中的自定义变量,会被一并擦除。 我在调试配置里取消勾选 [Download] 选项,这样变量不会被清除,但这种方式开发时不适用。 我查阅了一些方案,想保留指定的 Flash 区间不被擦除:确认可用 Flash 范围:0x08000000 ~ 0x08080000 查看了用户代码区和 flash.ld 链接脚本 最终决定把数据存放在地址 0x08002000 我修改了链接脚本,添加了如下段: .eeprom : { . += 0x200; . = ALIGN(0x800); / 2KB 保留区域 / } >FLASH 这段配置可以让程序跳过 0x08000200 开始的 2KB 空间,但下载程序时 IDE 依然会整片擦除。 我也添加 [NOLOAD] 属性: .eeprom (NOLOAD) : 但没有效果,我猜测这个属性只在上电时生效,不影响程序下载过程。 请问有没有办法配置 CubeIDE 的调试下载脚本,不擦除我保留的 Flash 区域? |
Error[Lp015]: section placement failure内容占用溢出
STM32F7由USB FS读写QSPI flash
STM8L050J3使用SWIM下载方式,无法下载,总是报错
用SDRAM刷ltdc有白线会出现是啥情况
在keil中仿真程序时,结构体变量出现错乱
什么是 GPIO 事件?如何将事件关联到外设
中断服务程序抖动
STM32L562DK探索板——如何启用蓝牙功能?
自己写驱动深入学习与调用Hal库的取舍
关于最近学习C语言回调和钩子函数的想法,以及对HAL库回调函数的困惑
微信公众号
手机版
下载擦除选择Sector,不要选全部Flash
需要指定secter起始地址和终止地址么