TMS320F28335 FPU 使用

[复制链接]
1786|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

粉丝
快速回复 在线客服 返回列表 返回顶部