打印

TMS320F28335 FPU 使用

[复制链接]
1396|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
米尔豪斯|  楼主 | 2016-9-26 21:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  需要加载 头文件 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;
复制代码

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

相关帖子

沙发
豆腐块| | 2016-9-26 21:38 | 只看该作者
本帖最后由 豆腐块 于 2016-9-26 21:53 编辑

浮点数运算常常是用特别的总线传输的。在早期的没有中断机制的大尺度架构(的处理器)中,浮点运算有时与整数运算独立传输

使用特权

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

本版积分规则

150

主题

731

帖子

1

粉丝