打印

TMS320F28335 FPU 使用

[复制链接]
1815|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Varus|  楼主 | 2016-9-15 20:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
需要加载 头文件 math.h 库文件使用 rts2800_fpu32.lib
       一个32位乘法
       cpu运算需要2079个CPU周期 2079*6.67ns=13866.93ns=13.86us
       FPU运算需要75个CPU周期 75*6.67ns=500.25ns=0.5us
       FPU运算一个浮点的sin函数 73*6.67=486.91ns=0.486us (sin函数无法输出180°到360°的负值)
       FPU运算一个浮点的sin函数 71*6.67=473.57ns=0.473us
       71这个数字是有浮动的。
       相差两位数啊!

value=sin(1.57)*2+cos(0.5)*2;//147 cpu cycles
ESTOP0;
value=cos(0.5);// 70 cpu cycles
ESTOP0;//software breakpoint
value=2*value+3;// 5 cpu cycles
ESTOP0;
value=value*0.5;// 3 cpu cycles
ESTOP0;
value=value/2;//155 cpu cycles===1us
ESTOP0;
复制代码

       由此可以看出来,在计算除法的时候尽量把除法化为乘法计算,乘法比除法速度快的太多了。

相关帖子

沙发
shenmu2012| | 2016-9-16 10:46 | 只看该作者
这个运算时间的计算非常有必要的,,就告诉我们优化程序的方向了

使用特权

评论回复
板凳
smilingangel| | 2016-9-16 12:44 | 只看该作者
这个正弦余弦函数的尽量少用的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

155

主题

703

帖子

1

粉丝