STM32CubeIDE 在地址 "xxx" 中断,没有可用的调试信息,或在程序代码之外
STM32CubeIDE Break at address "xxx" with no debug information available, or outside of program code
我正忙着用 STM32F030C8 mcu 开发一些新硬件。我正在使用带有 gcc 的 STM32CubeIDE。我对微控制器开发还很陌生,这是我使用 ST 及其工具的第一个项目。
这是一个非常基本的程序,只触发一个 GPIO。其余的都是生成的代码。由于我在这个领域的经验很少,我希望有人能指出我可以查看的位置。我怀疑这可能是配置问题。
这是代码(我删除了所有生成的注释以使其更紧凑):
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_2); //my code 1
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_2); //my code 2
while (1)
{
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_2);
HAL_Delay(1000);
}
}
当我单步执行代码时它会在 "my code 1" 上触发 GPIO 一旦我单步执行到 "my code 2" 就会导致问题。我什至尝试 运行ning 一个没有修改的完全生成的程序,但问题仍然存在。这是一个快速测试,以查看该程序是否确实在 MCU 上执行 运行。它会触发 GPIO。
调试器控制台输出:
Temporary breakpoint 1, main () at ../Core/Src/main.c:74
74 HAL_Init();
Program received signal SIGTRAP, Trace/breakpoint trap.
0x1fffecec in ?? ()
临时断点是程序开始的地方,然后我可以从那里 运行。或单步执行,结果相同。
控制台输出:
Waiting for debugger connection...
Debugger connected
-------------------------------------------------------------------
STM32CubeProgrammer v2.4.0
-------------------------------------------------------------------
ST-LINK SN : 34FF6E065250343816210143
ST-LINK FW : V2J36S7
Voltage : 3.22V
SWD freq : 4000 KHz
Connect mode: Under Reset
Reset mode : Hardware reset
Device ID : 0x440
Device name : STM32F05x/F030x8
Flash size : 64 KBytes
Device type : MCU
Device CPU : Cortex-M0
Memory Programming ...
Opening and parsing file: ST-LINK_GDB_server_PEkdAh.srec
File : ST-LINK_GDB_server_PEkdAh.srec
Size : 4944 Bytes
Address : 0x08000000
Erasing memory corresponding to segment 0:
Erasing internal memory sectors [0 4]
Download in Progress:
File download complete
Time elapsed during download operation: 00:00:00.627
Verifying ...
Download verified successfully
完整错误:
Break at address "0x1fffecec" with no debug information available, or outside of program code.
这里有两张图片可能会有帮助。正如我提到的,我对此很陌生。所以需要任何其他信息请询问。提前致谢。
Debug View
Disassembly
代码放在0x08000000。 0x1fffece 处没有用户代码。它是系统区域,可能会引导系统引导加载程序。说明BOOTx管脚接错了。
我正忙着用 STM32F030C8 mcu 开发一些新硬件。我正在使用带有 gcc 的 STM32CubeIDE。我对微控制器开发还很陌生,这是我使用 ST 及其工具的第一个项目。
这是一个非常基本的程序,只触发一个 GPIO。其余的都是生成的代码。由于我在这个领域的经验很少,我希望有人能指出我可以查看的位置。我怀疑这可能是配置问题。
这是代码(我删除了所有生成的注释以使其更紧凑):
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_2); //my code 1
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_2); //my code 2
while (1)
{
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_2);
HAL_Delay(1000);
}
}
当我单步执行代码时它会在 "my code 1" 上触发 GPIO 一旦我单步执行到 "my code 2" 就会导致问题。我什至尝试 运行ning 一个没有修改的完全生成的程序,但问题仍然存在。这是一个快速测试,以查看该程序是否确实在 MCU 上执行 运行。它会触发 GPIO。
调试器控制台输出:
Temporary breakpoint 1, main () at ../Core/Src/main.c:74
74 HAL_Init();
Program received signal SIGTRAP, Trace/breakpoint trap.
0x1fffecec in ?? ()
临时断点是程序开始的地方,然后我可以从那里 运行。或单步执行,结果相同。
控制台输出:
Waiting for debugger connection...
Debugger connected
-------------------------------------------------------------------
STM32CubeProgrammer v2.4.0
-------------------------------------------------------------------
ST-LINK SN : 34FF6E065250343816210143
ST-LINK FW : V2J36S7
Voltage : 3.22V
SWD freq : 4000 KHz
Connect mode: Under Reset
Reset mode : Hardware reset
Device ID : 0x440
Device name : STM32F05x/F030x8
Flash size : 64 KBytes
Device type : MCU
Device CPU : Cortex-M0
Memory Programming ...
Opening and parsing file: ST-LINK_GDB_server_PEkdAh.srec
File : ST-LINK_GDB_server_PEkdAh.srec
Size : 4944 Bytes
Address : 0x08000000
Erasing memory corresponding to segment 0:
Erasing internal memory sectors [0 4]
Download in Progress:
File download complete
Time elapsed during download operation: 00:00:00.627
Verifying ...
Download verified successfully
完整错误:
Break at address "0x1fffecec" with no debug information available, or outside of program code.
这里有两张图片可能会有帮助。正如我提到的,我对此很陌生。所以需要任何其他信息请询问。提前致谢。
Debug View Disassembly
代码放在0x08000000。 0x1fffece 处没有用户代码。它是系统区域,可能会引导系统引导加载程序。说明BOOTx管脚接错了。