我正在使用 VS2012 Ultimate 在 C 中进行一些嵌入式开发。我使用平台抽象编译代码并在我的 PC 上模拟它。该公司的另一个人使用带有 PPC 抽象层的 CodeWarrior,并在 MPC565 芯片上运行该东西。嵌入式芯片上的任务偶尔会超出 CPU 或时间界限。
代码中有相当多的三角函数。我知道嵌入式芯片上的触发执行很慢。如何夸大在我的 PC 上花在触发代码上的时间?我在想这样的事情:
#define cos(x) ({ while(asiTimeMsec64() % 10 != 0); cos(x);})
#define sin(x) ({ while(asiTimeMsec64() % 10 != 0); sin(x);})
#define tan(x) ({ while(asiTimeMsec64() % 10 != 0); tan(x);})
但是,该代码并不完全有效。我收到关于我的cos
调用没有返回数字的编译器错误。我想要某种自旋锁——不允许其他线程运行的东西。
如何覆盖 math.h 三角函数以使它们人为地变慢?