您好!
我将 RM57L843 CCS 12.5.0.00007与 TI V20.2.7.LTS ARM 编译器 LE 一起使用。
我必须调试应用程序、因为我们确定在某些系统级验证测试中没有调用一个看似微不足道的函数。
下面显示了我的函数调用图像。 我将传递一个 U32、U8、U32和一个指针。

我还注意到 CPU 应该分支到我的函数之前的反汇编列表

当我进入 C 语言代码窗口时、函数不会被调用、而我的光标位于调用函数的末尾:

需要注意的是、相关函数似乎是在闪存地址0x60处链接的第一个函数:

我们的测试知道、 目标函数调用内的结构没有更新、因此即使在运行期间(即没有连接调试器)、我们也可以在系统级别看到函数未被调用。
调用函数是在经过一些冗长的栈调用之后输入的、我不确定这是否会导致问题、但具有相同调用方法和调用深度的其他函数可以正常工作。 (通话深度不是太大)

当我进入分解窗口时、使用指令步进模式、CPU 将进入我们的函数

但该函数的实际代码来自另一个模块(上面显示的代码实际上是以太网驱动程序的一部分)、我一进入该目标函数、就好像堆栈消失了或 CPU 丢失了。

链接器堆栈大小为0x3000、当前堆栈指针为0x080023D0、因此我认为不会出现堆栈溢出(也没有理由在函数调用之间传递大量内存)。 我不是在中断上下文中、这是一个成熟的代码库、而且问题是可重复的。
因此、请寻求 TI 的一些帮助、以了解哪些领域可能导致这个问题、而不是在安全 CPU 中。
谢谢!


