首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

DSP视频教程第13期:汇编浮点库qfplib性能媲美IQmath和硬件浮点,强于C库math和ARM DSP库,适用M0和M3

  本期专题视频给大家分享一个qfplib浮点库,这个库早期周报给大家分享过,后来部分网友测试非常给力,所以我们DSP视频教程也给大家分享一期。

【视频】

B站地址:

【简介】

  代码采用汇编实现,qflib的性能媲美TI的IQmath和硬件FPU,强于C库的math和ARM DSP库。并且易于使用,不需要用户手动做浮点转定点,定点转浮点之类的操作。

1、ARM DSP库的三角函数浮点是直接调用的C库实现,所以性能一般,并没有加速作用。

2、M3的qfplib和MDK的C库,IAR的C库以及GoFast库的比较,可以看到速度优势比较明显。单位时钟周期数。

3、M0的qflib库和TI IQmath的浮点运算比较

  如果是单纯的qflib浮点和IQmath定点比较,IQmath有优势,如果是直接操作浮点数值,IQmath就没有优势了(甚至强于IQmath,后面专门实测下),因为要做浮点转定点,定点转浮点处理函数,时间就比较长了。

  而且从应用的角度来说,使用浮点库qflib操作更加便捷,不需要额外调用API做定点转浮点和浮点转定点,用户全程浮点数据操作即可

X = _IQ24(1.0f);Y = _IQ24(1.0f);Z = _IQ24atan2(Y, X);

W = _IQ24toF(Z);

4、从时钟周期上来看,媲美硬件FPU浮点计算

5、同时还提供了一个M0 tiny版的库,适合Flash容量比较小的M0内核芯片使用

【移植】

1、这个库只有一个.h头文件和一个.s汇编文件。所以移植比较简单,添加工程工程即可。

2、有问题的地方是汇编库的兼容问题,这个汇编库在GCC上使用直接添加就可以正常编译,如果是MDK上使用,请使用AC6,并在汇编Option的ASM汇编选项里面设置选择ARMCLANG AUTO

【参考资料】

1、参考案例下载(见论坛)

2、官方地址

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O_nrb4onGzwcDNR3qh5vOiOg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券