打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【干货连载】编译器强大的库函数你了解多少(3)——高数计算不用愁

对于一些矢量计算的场合,你是如何计算两个矢量的加减乘除的?对于多项式处理的程序代码当中,你是如何处理矩阵的变换呢?在音频处理的控制场合,你是如何编写FFT(快速傅里叶算法)的?


即使对数学和计算机算法特别了解,程序猿们处理这些问题的时候几乎都是一脸懵B的表情,更不用说广大的码农阶级了。当然现在网络发达,这些算法多多少少可以在网上找到,但毕竟是广大网友写得,效率和稳定性是在不敢恭维,更何况代码毕竟不是自己写得,用的时候也并不是那么得心应手。


在这个网络发展迅速、电子行业突飞猛进,学单片机跟学一个玩具似的的社会主义初级阶段,有没有不用自己编写、既稳定又好用的DSP算法库可以供自己使用呢?


那必须有啊,就在我们常用的编译器里边。



说起来年轻的MCU工程师用得第一款编译器差不多都是Keil,其实Keil是一个很强大的编译工具,只不过很多人不知道罢了。在Keil 5的安装目录,打开

“Keil_v5\ARM\Pack\ARM\CMSIS\4.3.0\CMSIS”

目录下的index.html文件,就会弹出一个网页,里边就有DSP相关的函数介绍。仔细翻一下目录你就会发现里边有很多高档的算法,例如:


1. 基本的浮点适量运算(Basic Math Functions);

2. 快速的浮点正弦和开方运算(Fast Math Functions);

3. 复数浮点运算(Complex Math Functions);

4. 滤波算法(Filtering Functions);

5. 矩阵运算(Matrix Functions);

6. 复变函数运算(Transform Functions);

7. 自动化控制函数(Controller Functions);

8. 统计函数(Statistics Functions);

9. 插值函数(Interpolation Functions);

10. 其他函数支持(Support Functions)。



其中关于DSP的函数每一个都有对应的函数详解,用户在使用的时候只要仔细阅读帮助文档里边的内容基本上会用里边的函数。


如何使用编译器的DSP库呢:


1

打开一个工程,在Project里边新建一个文件夹,把“Keil_v5\ARM\Pack\ARM\CMSIS\4.3.0\CMSIS\Lib\ARM”目录里边对应“.lib”文件导入到工程里边,例如,M0系列的MCU可调用“arm_cortexM0l_math.lib”这个Lib文件;


2

打开“Options for Target”界面,在“C/C++窗口上”,在“Define”上写入“ARM_MATH_CM0”的宏定义;

把“Keil_v5\ARM\Pack\ARM\CMSIS\4.3.0\CMSIS\Include”目录下的头文件路径导入到工程里边;


3

在c文件开头调用应用头文件arm_math.h即可在当前的文件里边使用DSP运算函数了。


通过调用编译器自带的DSP函数库,即使你对计算机算法一窍不通,也能做出很高大上的程序出来,特别是在自动控制领域里边,能够做到事半功倍的效果。


至此,《编译器强大的库函数你了解多少》系列到此结束,写这个系列的文章最主要的目的是引导各位程序猿多研究一下编译器,没准在什么时候就能找到特别牛的用法,从而让你的编程生涯更加丰富多彩。




还有一点点

作者有话说

啥也不说了

看图

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
CMSIS-RTOS相关的一些内容
说好的读源码变成了学习教程(无刷银剑固件)
教你如何在STM32中使用DSP指令
SES如何使用数学库arm_math让程序起飞?
CMSIS
【教程】如何用GCC“零汇编”白嫖MDK
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服