我使用
STM32L431 微控制器和一个 st-link 调试器。
我想在微控制器上使用的代码分为 5 个项目。
每个代码都闪存在链接描述文件中定义的分配的闪存区域中:
项目一:
记忆
{
闪存 (rx):起源 = 0x08000000,长度 = 0x00000200
RAM (xrw):原点 = 0x20000000,长度 = 0x00010000
}
项目2:
记忆
{
闪存 (rx):原点 = 0x08000200,长度 = 0x00001F00
RAM (xrw):原点 = 0x20000000,长度 = 0x00010000
}
等等。
为了闪存微控制器,我构建了 5 项目,然后连接二进制输出。然后,我使用 STM32 ST-LINK U
tility 对微控制器进行编程。
我能够在第一个项目(从 0x08000000 开始)中进入调试模式,而无需通过在调试配置 -> 启动中禁用“下载”来擦除闪存的其余部分。但是,我无法找到如何对其他 4 个项目执行相同的操作。事实上,当我尝试做同样的事情时,我进入了调试模式,我可以看到生成的反汇编代码,但它没有将它与代码链接起来。当我暂停程序时,我收到以下消息:
- Break at address "0x8000694" with no debug information available, or outside of program code.
有没有办法在不擦除不在起始地址 0x08000000 处的其余闪存的情况下调试某些代码?或者更好的是,是否可以在调试模式下启动 5 个项目?