This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
我使用28P550 controlCARD 开发程序。 在中断服务例程开始时、我会设置 GPIO、在退出中断之前、我会清除 GPIO。 我使用这种方法来测量中断执行时间。 但是、我发现直接对 MCU 进行编程与通过 CCS 连接到 MCU 以执行程序之间的中断执行时间有显著差异。 当在 CCS 中连接到 MCU 时、中断服务程序的执行时间要长得多、几乎是原来的十倍。 这可能是什么原因呢?
抱歉、我说错了。 同一程序在 CCS 中的运行速度快得多、而在直接对 MCU 进行编程并上电后、中断执行时间几乎延长了十倍。 此处的潜在问题可能是什么?
您好、Randy、
很抱歉耽误了一些时间。 在 CCS 中使用什么优化级别? 您在执行什么外设中断?
此致、
Allison
您好、Allison、
我尝试了优化级别0至2、结果是相同的。 我正在使用ADCB1_INT
。 在 CCS 调试模式下运行相同代码时、中断执行时间要短得多。 但是、当使用 Uniflash 对 MCU 进行编程并从冷启动中运行时、中断执行时间明显更长。
我发现如果我将整个中断代码放置在ramfunc
中、无论运行在 CCS 调试模式下还是从闪存引导、执行时间都保持一致。 造成这种差异的原因是什么?
此致、
Randy
您好、Randy、
是的、正如您所建议的、这必须与 使用闪存与 RAM 时需要考虑的一些差异相关。 有关这方面的更多信息和建议、请参阅以下资源:
如果您遇到更多困惑、请随时在此处添加、或者在出现新主题时创建新主题。
此致、
Allison
哇、信息太多了
我们使用相同的测试方法、在280039C/280049C 的 controlCARD 上没有遇到任何问题。 在 CCS 中、无论是在调试模式下还是在启动时直接刷写、中断执行时间都是相同的。 我们对使用最新的 MCU 28p55x/28p65x 为何会出现该问题感到困惑。 之前、我们还注意到280039和28p55x 之间计算相同 CRC 代码所用的时间存在显著差异。 280039只花了100ms、而28p55x 花了600ms。 后来、我们使用了 ramfuc、它将600ms 减少到200ms。 这暂时解决了我们的问题、但我们仍然对造成这种差异的原因感到非常困惑...?