使用环境
<!-- 必须 告知插件运行的环境,帮助开发者定位问题 -->
- 操作系统版本:
- 操作系统平台(x86/x64):
- VsCode 版本:
- EIDE 插件版本:3.25.3
- C/C++ 插件版本:
- 何种编译器(keil_c51/sdcc/armcc5/armgcc/...):
- 编译器版本(非编译问题可忽略):
描述问题
<!-- 使用简明清晰的语言描述您的问题 -->
EIDE从3.25.1开始增加了一键调试按钮,更新了最新的EIDE后,发现如下现象,以STM32L431RCT6为例,如果编译的app起始地址是0x08000000,则可以正常一键调试。如果app起始地址是0x08010000,则虽然可以烧录,但一键调试后没有跳转到main,而是死在了启动文件的Infinite_Loop中。原来使用VSCode的调试加launch.json是可以调试有偏移地址的app的,通过launch.json中重写"overrideLaunchCommands"字段实现调试前更改中断偏移向量寄存器。如下:
"overrideLaunchCommands": [
"monitor halt",
"monitor reset",
"load",
// "monitor reg sp = 0x20010000",
// "monitor reg pc = 0x08010A01",
"monitor memU32 0xE000ED08 = 0x08010000",
],
综上,EIDE新增的一键调试功能,在app有起始地址偏移的情况下,是否在进入调试前,自动处理中断向量偏移?
屏幕截图
<!--使用一些截图能够更好地展现问题 -->
期望现象
<!--您期望应该产生的,但实际上却没有发生的结果-->