Other Parts Discussed in Thread: C2000WARE
部件号: TMS320F28379D
主题: C2000WARE 中讨论的其他器件
尊敬的 TI 支持团队:
在 F28379D C2000 芯片的 CPU1 上启用优化器级别 0 时、我会遇到堆栈溢出。 禁用 优化器时、栈使用量为 2K 栈的~5%。 启用优化器时、堆栈使用量会跳至~104%、从而产生 ITRAP。 我用模式“A5A5"填“填充栈、并注意到只使用了栈的前几个字节、然后 SP(栈指针)向下跳到栈末尾附近并开始使用栈末尾、这样就有一个很大的未使用栈区域、如“A5A5"所“所述。
我已经在我这边排除了静态内联函数、尽管 C2000ware 使用了静态内联函数、因此堆栈上下文帧可能很大、并且留下一个很大的堆栈存储器区域未使用?
通过“Stack Usage“窗口、我可以看到每个函数的栈使用情况、没有什么值得我关注的地方。
我在栈末尾设置一个硬件观察点、并不断点击 SCIB RX 中断。 但是、我认为本身不是 SCI B RX 中断导致问题、因为我有两种模式可以利用 SCI B RX 中断、其中一种模式会导致栈溢出、而另一种模式不会。 导致栈溢出的模式更多地是数学/CPU 密集型、因此我想知道是否有东西导致溢出、但我觉得很奇怪的是、栈指针会跳过这么大的栈内存区域并利用栈末尾附近的东西。
任何关于如何找出根本原因的指示都是很好的。
谢谢!
