|
编写好代码进入调试模式时,IDE 都会自动执行整片擦除,然后下载新编译的程序。 但我有一些需要保存在 Flash 中的自定义变量,会被一并擦除。 我在调试配置里取消勾选 [Download] 选项,这样变量不会被清除,但这种方式开发时不适用。 我查阅了一些方案,想保留指定的 Flash 区间不被擦除:确认可用 Flash 范围:0x08000000 ~ 0x08080000 查看了用户代码区和 flash.ld 链接脚本 最终决定把数据存放在地址 0x08002000 我修改了链接脚本,添加了如下段: .eeprom : { . += 0x200; . = ALIGN(0x800); / 2KB 保留区域 / } >FLASH 这段配置可以让程序跳过 0x08000200 开始的 2KB 空间,但下载程序时 IDE 依然会整片擦除。 我也添加 [NOLOAD] 属性: .eeprom (NOLOAD) : 但没有效果,我猜测这个属性只在上电时生效,不影响程序下载过程。 请问有没有办法配置 CubeIDE 的调试下载脚本,不擦除我保留的 Flash 区域? |
sscanf 函数无法正确读取浮点值
TIM5 1μs 定时无法触发回调函数
如何将 LoRa993 模块与 STM32F401RE 对接
STM32F407 音频输入输出时 IFFT 无法正常工作
rand () 函数的问题不能产生真正的随机数
STM32F303K8搭配 FreeRTOS 时出现 RAM 溢出
printf 使用 % llu 输出错误
printf运行报错
MMT 在工具菜单中不显示
将 IAR 的 __no_init 指令移植到 GCC 编译器
微信公众号
手机版
下载擦除选择Sector,不要选全部Flash