历史上的今天
返回首页

历史上的今天

今天是:2024年08月28日(星期三)

正在发生

2019年08月28日 | STM32F429之使用FPU和DSP

2019-08-28 来源:eefocus

CMSIS的DSP库提供了一类高级数学处理功能,包括:


  • Basic math functions

  • Fast math functions

  • Complex math functions

  • Filters

  • Matrix functions

  • Transforms

  • Motor control functions

  • Statistical functions

  • Support functions

  • Interpolation functions

该库使用不同的函数来处理8位、16位和32位整型以及32位浮点型数据。


STM32F429具有浮点处理器(FPU),在开启FPU的情况下,浮点数运算性能大大提高,配以DSP库的支持,性能尤其出色。


本文介绍如何在IAR建立的工程中开启FPU并使用DSP库。


欲使用DSP库,需要包含"arm_math.h"文件,该文件在"CMSISinclude"目录下。

#include "arm_math.h"


接下来IAR在编译连接程序时,将会寻找对应的连接库,连接库在"CMSISLibARM"路径下,CMSIS对不同连接库的说明如下:


  • arm_cortexM4lf_math.lib (Little endian and Floating Point Unit on Cortex-M4)

  • arm_cortexM4bf_math.lib (Big endian and Floating Point Unit on Cortex-M4)

  • arm_cortexM4l_math.lib (Little endian on Cortex-M4)

  • arm_cortexM4b_math.lib (Big endian on Cortex-M4)

  • arm_cortexM3l_math.lib (Little endian on Cortex-M3)

  • arm_cortexM3b_math.lib (Big endian on Cortex-M3)

  • arm_cortexM0l_math.lib (Little endian on Cortex-M0)

  • arm_cortexM0b_math.lib (Big endian on Cortex-M3)


由于STM32F429属于小端模式,因此连接到"arm_cortexM4lf_math.lib"文件上。

另外,在"C/C++ Compiler"项的"Preprocessor"选项卡下添加如下预定义符号


  • ARM_MATH_CM4

  • ARM_MATH_MATRIX_CHECK

  • ARM_MATH_ROUNDING

  • __FPU_PRESENT

  • __FPU_USED


如果没有"ARM_MATH_CM4"符号,在编译时将会提示找不到"armcm4.h"文件。这是由于文件中有如下内容:


    #if defined (ARM_MATH_CM4)

    #include "core_cm4.h"

    #elif defined (ARM_MATH_CM3)

    #include "core_cm3.h"

    #elif defined (ARM_MATH_CM0)

    #include "core_cm0.h"

    #define ARM_MATH_CM0_FAMILY

    #elif defined (ARM_MATH_CM0PLUS)

    #include "core_cm0plus.h"

    #define ARM_MATH_CM0_FAMILY

    #else

    #include "ARMCM4.h"

    #warning "Define either ARM_MATH_CM4 OR ARM_MATH_CM3...By Default building on
ARM_MATH_CM4....."

    #endif


如果没有"ARM_MATH_MATRIX_CHECK"、"ARM_MATH_ROUNDING"、"__FPU_PRESENT"和"__FPU_USED"符号将会在连接时提示如下错误:

   
no definition for "__iar_program_start" 

   
no definition for "__iar_data_init3"


推荐阅读

史海拾趣

胜利(VICTOR)公司的发展小趣事

胜利公司深知品牌文化对于提升品牌价值的重要性。因此,公司积极开展文化营销活动,如举办羽毛球文化节、赞助羽毛球赛事等。通过这些活动,公司不仅与消费者建立了深厚的情感联系,还提升了品牌的知名度和美誉度。

以上故事均基于虚构,旨在展示一个品牌成长的可能路径和方式。如有需要,请结合实际情况进行调整和修改。

EEMB Co Ltd公司的发展小趣事

为了适应公司业务的快速发展和满足市场需求的不断增长,EEMB集团于2017年在汉川市修建了新工厂。新工厂占地面积120亩,使用面积达27000平方米,配备了先进的生产设备和技术。一期工程全面投入生产后,公司的产能得到了显著提升,能够更好地满足客户的订单需求。同时,新工厂的建成也进一步提升了公司的生产效率和产品质量。

Electrolube公司的发展小趣事

在电子行业中,电池管理系统(BMS)的可靠性和耐用性一直是制造商关注的焦点。Electrolube公司凭借其在材料科学领域的深厚积累,成功推出了一款名为UVCL的新型UV固化涂层。这款涂层以其独特的特性迅速在市场中脱颖而出。

UVCL涂层采用先进的UV固化技术,能够在几秒钟内完成固化过程,大大提高了生产效率。同时,它还具有高效的湿气引发的二次固化机制,确保即使在阴影区域也能实现完全固化。这一特性对于BMS等复杂电子电路的保护至关重要。

为了将UVCL涂层推向市场,Electrolube公司的研发团队与客户紧密合作,克服了客户内部没有UV固化设施的难题。他们与信誉良好的供应商合作,提供了完整的解决方案,并成功为客户提供了原型样品单元进行现场测试。测试结果显示,UVCL涂层能够为电子电路提供最高水平的保护,且操作过程简单、应用速度快。

UVCL涂层的成功推出不仅提升了Electrolube公司在电子材料领域的地位,也为公司赢得了众多客户的信赖和好评。

API Technologies公司的发展小趣事

API Technologies一直注重技术创新和研发投入。公司不断引进先进的生产设备和技术人才,加大对新产品、新技术的研发力度。通过不断的技术创新,API Technologies成功推出了一系列具有自主知识产权的高性能产品,不仅提升了公司的核心竞争力,也为公司的持续发展注入了新的动力。

DEMMELPRODUCTS公司的发展小趣事

DEMMELPRODUCTS公司自创立之初,就坚持以技术创新为核心竞争力。在公司的早期阶段,研发团队攻克了一项关键技术难题,成功开发出一款具有高性价比和高可靠性的新型电子元件。这款产品凭借其卓越的性能,迅速在市场上脱颖而出,赢得了客户的广泛认可。随着技术的不断迭代和升级,DEMMELPRODUCTS公司逐渐在电子行业中树立了技术领先的形象。

DZUS公司的发展小趣事

进入XX年代,DZUS公司面临了来自国内外竞争对手的严峻挑战。为了保持市场领先地位,公司加大了对技术创新的投入。研发团队成功开发了一系列新型紧固件,不仅提高了产品的性能和可靠性,还降低了生产成本。这些创新产品帮助DZUS公司巩固了市场地位,并赢得了更多客户的信赖。

问答坊 | AI 解惑

电压不足期间支持电信电源的小电容

本设计实例介绍如何在短暂电压不足期间使电信设备保持正常工作。首先必须了解电信设备专用电源的几个细节。向电信设备馈电的电源的共模电压为-48V,尽管实际电压范围可能是-42.5V ~ -56V、-40V ~ -60V,甚至超出这些范围。公共电源——“砖块”DC/D ...…

查看全部问答>

SABER与控制系统仿真

SABER与控制系统仿真…

查看全部问答>

学生求助CE串口开发问题

大家好,学生以前接触的硬件类比较多,这次需要在2440板子下跑wince,用串口读数据,我找了很多资料,发现都是直接给代码的,学生求助,是在什么环境下编译?PB吗?如果是PB的话,就是改PB里哪里的程序呢???学生很疑惑,学生其实是想用VS2005中 ...…

查看全部问答>

68013A端点EP6OUT的BULK写失败求助,急!!

68013A端点EP6OUT的BULK写失败求助,急!! 易用专业的PCI、USB、LED方案正在对68013A采用slavefifo方式进行bulk读写操作 我用EP2做in端点,1024字节,2从缓冲 用EP6做OUT端点,512字节,4从缓冲 我写好了68013A的固件,用CYPRESS的开发工具 ...…

查看全部问答>

Shell组件的选择问题??

   用PB编制系统镜像,由于用到SHFileOperation复制文件,但是显示进度框上没有取消按钮 别的版本的机器则可以...不知道这个跟什么组件选择还有关系,还有就是ceshell.dll是怎么生成的 新手请教各位大虾!!…

查看全部问答>

电源变压器

本帖最后由 paulhyde 于 2014-9-15 09:34 编辑 …

查看全部问答>

我的新书《ARM Cortex-M0从这里开始》,已经上市

我的新书《ARM Cortex-M0从这里开始》已经出版,即将上市,希望大家多多支持。在这里先谢谢大家了。。。。。。。。。。。。。     前言和目录:     已经上市   北航:http://www.buaapress.com.cn/bookdetai ...…

查看全部问答>

电机控制 - 无刷直流 (BLDC) 电机主推产品

本帖最后由 dontium 于 2015-1-23 13:10 编辑 器件型号:RDK_BLDC                     DRV8312-C2-KIT (电机控制评估套件)    &nbs ...…

查看全部问答>

易電源學習心得

易電源學習心得剛剛參加了玩遊戲,體驗易電源。正如題所示,通過遊戲來體驗易電源的通俗學習方式,通過學習易電源,深深體會IT設計工程師的初衷,特別在介紹個單位器件時詳細說明。遊戲中,大大啓發我們對電子的好奇心。想想原來如此簡單的電路在操 ...…

查看全部问答>

ls -bash: ls: command not found .

原因:在设置环境变量时,编辑profile文件没有写正确,导致在命令行下ls等命令不能够识别。 解决方案: exportPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin…

查看全部问答>