工具与软件:
嗨、团队:
我们有2种状态、一种是活动状态、另一种是休眠状态。 在设置任何优化之前、它是从睡眠模式唤醒到活动模式。 然而、设置优化级别后、我无法从睡眠模式唤醒、无论优化级别是什么。 请帮助我尽快解决此问题。
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.
工具与软件:
嗨、团队:
我们有2种状态、一种是活动状态、另一种是休眠状态。 在设置任何优化之前、它是从睡眠模式唤醒到活动模式。 然而、设置优化级别后、我无法从睡眠模式唤醒、无论优化级别是什么。 请帮助我尽快解决此问题。
您好、Sowmya、
您使用哪种 IDE? 如果您使用 CCS、则可以参考此文档以了解每种编译器优化的具体信息。 默认级别为2、级别为2时您的项目是否可以工作? 有时、当您设置更高的优化级别时、编译器甚至会修改指令的执行顺序。 因此、更好的方法是调试代码、并查看"Disassembly"窗口(即 汇编语句)。
此致、
Janz Bai
如果确实是这样、则表示编译器存在错误。 我建议您在 CCSSTUDIO 论坛上提出这个问题。 在那里他们会要求您发送工作和非工作版本。
在"不稳定"的问题之后,下一个优化风险是程序流中的竞争--优化不会产生这些问题,但会使它们变得更糟。
我假设开关打开某种激励电路、那么当开关准备就绪时、您可以从 ADC 中读取数据、中间的代码恰好发生(没有-O)所需的时间量正确(比如25usec)、但现在(使用-O)所需的时间较少。 然后 delay_cycles()填充间隙。 这到底是发生了什么?
a)您是否有任何指示器可用于判断激励何时准备就绪? 还是纯粹是经过一段时间的东西?
b) 25us (800个时钟)是从哪里来的? 这是有效果的最短时间、还是您尝试了一些设置? 一个励磁源是否可能只需要稍长一点?
我看到过使用计时器输出来(1)触发激励开关[第1个边沿](2)触发 ADC 的代码(已知/可调)晚于[第2个边沿];作为一个额外的好处、它(3)为 ADC 采样提供了固定速率。 这可能比您现在想要做的要多、但这种设计不受优化的影响。