STC32F包含了最新的FPMU模块,而且听说加速相当猛。那必须试一下。
顺便,同时开启MDU32,整数和浮点一起加速运算
- if(Key_Short_Function) //P3.2按键短按
- {
- Key_Short_Function = 0; //短按一次P3.2按键,计算一次浮点数运算
- //浮点运算测试
- P01 = 0;
- cfl3 = cfl1*cfl2;
- cfl4 = cfl1/cfl2-cfl3;
- cfl5 = cfl1*cfl2+cfl4;
- cfl6 = cfl1/cfl2*sin(cfl5);
- cfl7 = cfl1/cfl2*cos(cfl6);
- cfl8 = cfl1/cfl2*tan(cfl7);
- cfl9 = cfl1/cfl2*sqrt(cfl8);
- cfl10 = cfl1/cfl2*atan(cfl9);
- P01 = 1;
- //整数运算测试
- P02 = 0;
- c=a+b;
- d=a-b;
- e=a*b;
- f=a/b;
- g=a>>2|b<<3;
- P02 = 1;
- }
复制代码
测试程序使用追风剑开发板,官方程序修改了一下,
P01低电平宽度标识浮点运算的消耗时间,
P02低电平宽度表示整数运算消耗的时间
如下是经过加速的时间
这个是经过加速的浮点运算,
这个是经过加速的整数运算速度
如果通过取消LIB库的Include in Target Build选项,
可以测得原本的运算消耗时间
这个是未经加速的浮点运算时间,
这个是未经加速的整数运算时间
可以简单计算得到,
FPMU加速性能327/27.4=11.93约为12倍,
MDU加速7.51/2.40=3.12约为3倍加速性能,
确实提高了不少。
当然,测试的时候还发现了一个小小的坑,就是在取消了LIB库包含以后,
再点击是深色的对勾
,
这时候
库文件上面是有一个小雪花(星号)的,
这个其实是程序没有调用的意思
想要解决也很简单,把Include in Target Build点成灰色的小对号,
或者点击Defaults就可以恢复了
|