单片机技术网| 技术阅读
登录| 注册

您现在的位置是: 单片机技术网 > 技术阅读 > 对STM32浮点运算单元FPU有疑问?给你个实战分析

对STM32浮点运算单元FPU有疑问?给你个实战分析

点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看嵌入式笔记!

有人利用STM32芯片做些DSP处理,在启用FPU单元进行调试、验证过程中可能会遇到些小问题、小困惑,这里通过STM32F4芯片一个具体的应用示例简单分享下,希望顺便能给同仁提供些帮助或提醒。

 

我这里通过调用DSP库里的FFT相关函数实现1024点的FFT运算,样点数据及运算结果均为浮点数。



上图中A区代码是做样点数据准备,B区代码完成FFT运算。我们来一起看看基本的配置以及不启用硬件浮点单元和启用硬件浮点单元执行B区代码的时间上的差别。


程序里要调用一些数学函数,而这些数学函数往往集成在相应的数学函数库里。我们选用ARM公司的DSP数学库,该库系专门针对AMR核芯片及指令系统而组织的代码,相比IDE自带的通用数学函数库会更优化、高效。


目前该DSP数学库包括基本数学函数、复数数学函数、滤波函数、矩阵函数等几大块,详细内容可以去ARM网站阅读比较方便。【可点击左下方原文链接前往】


我们开发时,这些文件具体在哪里呢?在各个编译环境的安装目录下都不难找到。不妨看看ARM keil MDK环境下它们所在位置。



上面我们看到的是DSP库源文件所在目录,在另一个目录存放着基于不同内核、不同存储端格式以及是否支持硬件浮点单元而编译出来的库文件。我们在开发时,直接添加合适的库文件进工程即可,不必逐个查找源文件来添加。下图就是可以用于ARM MDK环境的库文件。【对于不同IDE,库文件名后缀略有差异】



这里以用于M4内核的DSP数学函数库稍作解释,详见下面表格。



从上表可以看出,基于Cortex M4内核芯片进行DSP运算可以能用到的库有四个,但具体到STM32 基于M4内核的芯片可以选用的只有两个,即xxxM4l_math.libxxxM4lf_math.lib,因为STM32芯片的存储设计都是小端模式。所谓小端模式,简单点说就是指多字节数据在内存中存储时,按照低位字节对应地址低位来存放,反之则为大端模式。


在上面截图中,我还截取了对应M0内核可用的DSP数学库,它为什么只有两个?这是因为M0内核没有FPU硬件单元,不存在FPU是否启用的可选情况。


现在就利用STM32F429开发板,基于开篇的截图代码进行测试,并用定时器测量下面执行代码在使用FPU和使用FPU分别所花费的时间,并计算二者的时间比。【注:STM32F429芯片自身是带硬件FPU的】



必要的配置和文件包含及添加,如下表所示:


基于上面条件执行FFT运算代码,不使用FPU和使用FPU的时间比为16

采用相似的条件,基于IAR环境对相同功能代码段进行测试,不使用FPU和使用FPU的时间比为11


关于这个时间比,除了跟是否使用微库、优化等级、浮点精度等有关外,跟你所选取的测试代码也有很大关系,因为有些代码只能靠CPU执行的话,开不开FPU硬件单元对这部分时间是没有影响的。不难理解,被测试代码里只能靠CPU运行的代码占比越多,上面的这个比值就会越小。一般来说,我们不必太过纠结这个值的大小,知道有这个硬件浮点单元,既减轻了CPU负荷,又可以提升计算速度就好。


另外,我们在做DSP相关应用时,注意添加的DSP库既要跟所用芯片匹配,还要跟IDE里的配置匹配。还是以上面测试代码为例,本意是想启用FPU,结果添加的DSP库却是基于不使用FPU硬件的数学库,那会怎么样呢?


本应该添加arm_cortexM4lf_math.h的,结果弄错了。如果按照上面条件构建ARM MDK工程,一路编译下来没有任何警告或错误提示。程序也能流畅运行,FFT运算结果似乎也出来了。



但仔细查看结果,跟之前正确配置的运行结果明显不一样。经验证核对,这次运算结果是错的。为此我特意添加一行计算90°的正弦值代码,它算出来结果竟然是1.5!逆天了。



如果说在不知情的情况下这一路下来,估计要被摧残一顿了。毕竟很多数学函数结果常人是无法一眼能看出对错的,即使看出错了若没未及时想到库问题的话,恐怕还得折腾折腾。


针对这种情形,基于同样代码于IAR环境下测试,情况相比ARM MDK貌似要好点。至少编译时有警告提示,提示引用冲突之类的。计算结果没有MDK的那么具有隐蔽性【至少对于本次测试是这样】,基本是清一色的0,颇有冲击效果!当然,此时让它计算90°的正弦值结果也是明显错的。



感觉上,这种情形下,使用IAR时挖的坑似乎稍微浅些,更容易让人警醒怀疑哪里出问题了。


好,就分享到这里,祝君好运!


=============================

往期话题阅读链接【点击即可阅读】:

1、

2、

3、

4、

5、




推荐文章

玻璃钢生产厂家太原小品系列玻璃钢雕塑公司云南大型玻璃钢雕塑制作商场秋季美陈儿童乐园芜湖玻璃钢雕塑安装柳州玻璃钢浮雕人物山水雕塑十堰玻璃钢考拉雕塑公司昆明市玻璃钢雕塑设计多少钱广东户外商场美陈销售公司淮安商场中秋美陈陕西玻璃钢香蕉雕塑海龟玻璃钢雕塑厂家直销中国台湾玻璃钢雕塑分类浙江超市商场美陈哪家好株洲佛像玻璃钢雕塑荆州定做玻璃钢雕塑保定玻璃钢泡沫雕塑江苏泡沫玻璃钢雕塑批发园林玻璃钢人物雕塑推荐厂家珠海玻璃钢卡通人物雕塑厂家宁波玻璃钢雕塑定制价格广东周年商场美陈费用荆门小区玻璃钢雕塑公司福建超市商场美陈哪里买武汉玻璃钢雕塑定做厂家雕塑玻璃钢能耐多少温度玻璃钢雕塑人物公司玻璃钢主题面具雕塑四川特色商场美陈现价阜阳公园玻璃钢雕塑优势内蒙古商场美陈公司香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化