IAR EWARM编译器和其他厂家的C编译器相比非常高效,但是当程序里面包含对时序要求比较严格的代码的时候,IAR常常会把这些代码过渡优化,破坏了时序的要求,造成程序错误,在程序代码比较紧的时候又必须优化,
这是可以在包含时序要求比较严格的代码的函数前面,用#pragma optimize=none不进行优化或者#pragma optimize=low进行低级优化,
例如
#pragma optimize=none
void A()
{
}
指示不对A()函数优化
本文介绍如何在使用IAR EWARM编译器时针对特定函数禁用或降低优化级别,以避免对时序敏感的代码被过度优化,从而确保程序的正确执行。

被折叠的 条评论
为什么被折叠?