地瓜patch 发表于 2025-4-28 22:30

用 STM32CubeIDE 将代码下载到 FLASH Memory Bank 2

使用 STM32CubeProgrammer 下载代码时,我能够通过指定起始地址将代码下载到我想要的位置。但是,使用 STM32CubeIDE 进行调试和下载时,如何设置下载到指定的位置。例如,将代码下载到扇区2

白马过平川 发表于 2025-5-18 14:30

在STM32CubeIDE中实现将代码下载到指定存储位置(如扇区2)需结合工程配置、链接脚本修改及调试器设置

故意相遇 发表于 2025-5-18 15:00

链接脚本(.ld文件):控制代码在Flash中的布局,包括代码段(.text)、数据段(.data)和BSS段(.bss)的起始地址

将爱藏于深海 发表于 2025-5-18 15:42

调试器(ST-Link):默认按链接脚本配置的地址下载,但需确保硬件支持(如扇区擦除权限)。

捧一束彼岸花 发表于 2025-5-18 16:00

Flash分区限制,STM32F0/F1等系列Flash通常按扇区划分(如每扇区1KB),写入前需擦除整个扇区。

风凉 发表于 2025-5-18 19:00

定位链接脚本:在STM32CubeIDE工程中,链接脚本通常位于:工程目录/Debug/STM32F031K6Tx_FLASH.ld(或Release目录下)。

失物招領 发表于 2025-5-18 21:26

找到MEMORY区域定义,修改Flash的起始地址和大小。例如,将应用代码下载到扇区2(假设扇区2起始地址为0x08002000):

她已醉 发表于 2025-5-19 00:02

在Debug Configurations中,选择对应的调试配置(如STM32 Cortex-M Debugging):在Startup选项卡中,设置Reset and Initialize时的Load Image路径为生成的.elf文件。确保Load Application at Startup勾选,且地址与链接脚本一致(0x08002000)。

西洲 发表于 2025-5-19 08:14

检查生成的.map文件:编译后查看工程目录/Debug/工程名.map,确认各段的加载地址是否符合预期。

温室雏菊 发表于 2025-5-19 11:00

多固件版本共存,通过不同扇区存储不同版本,便于回滚

温室雏菊 发表于 2025-5-19 11:00

多固件版本共存,通过不同扇区存储不同版本,便于回滚

春日负喧 发表于 2025-5-19 14:01

Bootloader+应用双分区,将Bootloader固定在扇区0,应用代码下载到扇区2
页: [1]
查看完整版本: 用 STM32CubeIDE 将代码下载到 FLASH Memory Bank 2