工具/软件:TI C/C++编译器
您好 、专家、
我的客户希望将优化级别设置为1、但对于某些函数、他们希望将优化级别设置为 OFF、他们使用如下命令:
但发现实际上没有效果、优化级别1也适用于此函数、对此有何建议?
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.
工具/软件:TI C/C++编译器
您好 、专家、
我的客户希望将优化级别设置为1、但对于某些函数、他们希望将优化级别设置为 OFF、他们使用如下命令:
但发现实际上没有效果、优化级别1也适用于此函数、对此有何建议?
您好、Ajay、
与您的问题不直接相关、但我想知道他们为什么要禁用某些函数的优化-这是因为这些函数具有一些严格的计时要求、并且他们希望该函数采用固定数量的周期吗?
--> 禁用某些函数优化的原因是,在进行优化时,以下 e2e 中发布的 I2C 函数会出现问题,并且 在进行优化时,执行周期会受到影响,并会减少某些函数之间的延迟。 对于此问题、添加 delay 函数以增加一点延迟可以解决此问题、 但以其他方式、禁用该函数的优化也应该可以解决此问题、但实际上它没有解决。
强、
当 命令行上启用大于-opt_level=off 的任何优化级别时、不能使用 FUNCTION_OPTIONS pragma 在每个函数基础上关闭优化(-opt_level=off)。 使用 FUNCTION_OPTIONS pragma 只能使用--opt_level=0或更高版本。 《TMS320C28x 优化 C/C++编译器用户指南》中的"FUNCTION_OPTIONS pragma "部分将更新以记录此限制。
编译器使用--opt_level=0和--opt_level=1为该函数生成类似的代码-这就是您在所生成的汇编代码中看不到差异的原因。 最好的方法是将函数移动到单独的文件中并使用--opt_level=off 进行编译。
此外、从另一个线程看、如果需要延迟、最好使用循环使其在代码中显式、而不是在编译器中使用--opt_level=off。 这将确保延迟仅在必要时出现、并避免在使用--opt_level=off 编译的其余代码中降低性能。
Ajay