ST意法半导体
直播中

李涛

8年用户 1459经验值
私信 关注
[问答]

如何查找STM32CubeMX被中断的函数?

我曾经在 IAR 工作过。
在 IAR 调用堆栈中,如果您闯入 ISR,调用堆栈会显示在 ISR 触发之前您在“主”代码中的位置。
现在,使用STM32Cube MX,调用堆栈只显示自根ISR函数以来的调用堆栈,但我们不知道哪个函数被中断了。
如何阅读此信息?










回帖(1)

孙燕冉

2023-1-12 11:06:44
这是一个已知的问题。我们很久以前就与 Arm 讨论过这个问题,但当时是在 TZEN=1 的背景下。这个问题似乎与 TZEN=0 相似,我认为这对我们来说是个新闻。
从您的屏幕截图中我们可以看到您运行的是 2018 年的 gcc-7。我们现在还提供 2020 年的 gcc-9,但我们认为该问题尚未解决。
问题的根本原因是 GDB 在堆栈展开方面尚不支持 cortex-m33。0xffffffa8 是 GDB 不理解的神奇模式 (EXC_RETURN)。因此它不能正确地进行堆栈展开。如果您稍后使用 TZEN=1,我在上一篇文章中描述的问题将适用。
所以,抱歉,我看不到 CubeIDE 和捆绑工具链的当前版本可用。我唯一能说的是,我们有这方面的问题,并已向 Arm 请求修复。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分