gpt4 book ai didi

我可以为了分析目的人为地减慢 C trig 函数吗?

转载 作者:太空宇宙 更新时间:2023-11-04 01:33:27 25 4
gpt4 key购买 nike

我正在使用 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 trig 函数以人为地减慢它们的速度?

最佳答案

我不确定你的宏观想法是否会给你有用的结果,但这就是你如何让它发挥作用的方法:

void slowup( )
{
while(asiTimeMsec64() % 10 != 0);
}

#define cos(x) (slowup(),cos(x))
...

或者,使用函数指针:

double slowup( double (*trig)( double ), double val )
{
while(asiTimeMsec64() % 10 != 0);
return (*trig)( val );
}

#define cos(x) slowup(cos, x)
...

关于我可以为了分析目的人为地减慢 C trig 函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19037521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com