【发布时间】:2017-04-18 10:17:09
【问题描述】:
我有一个用 C 语言编写的应用程序,它在 Coldfire 处理器上运行。
我需要强制它为所有局部变量(在函数中声明)使用 RAM,而不是使用寄存器;为了正确调试应用程序。
我该怎么做?
编辑以获取更多信息
有时,在主应用程序中,由于函数的返回值错误,我会收到错误消息。这种情况很少发生,我在返回指令之前放置了一个检查和一个断点,但是许多变量使用相同的寄存器,我无法清楚地了解错误发生时的情况。如果我在函数的开头移动程序计数器并逐步执行结果是正确的。可能是寄存器管理有问题,我想知道是什么。
提前谢谢你,问候。
【问题讨论】:
-
不是简单地打开调试开关就可以工作吗?也可以试试
volatile关键字。 -
XY 问题。无需将所有本地变量存储在 RAM 中以进行正确调试(以及这对操作员如何工作?)。它也会大大降低你的代码速度。
-
有时,在主应用程序中,由于函数返回值错误,我会收到错误消息。这种情况很少发生,我在返回指令之前放置了一个检查和一个断点,但是许多变量使用相同的寄存器,我无法清楚地了解错误发生时的情况。如果我在函数的开头移动程序计数器并逐步执行结果是正确的。可能是寄存器管理有问题,我想知道是什么。