历史上的今天
今天是: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"
史海拾趣
|
本设计实例介绍如何在短暂电压不足期间使电信设备保持正常工作。首先必须了解电信设备专用电源的几个细节。向电信设备馈电的电源的共模电压为-48V,尽管实际电压范围可能是-42.5V ~ -56V、-40V ~ -60V,甚至超出这些范围。公共电源——“砖块”DC/D ...… 查看全部问答> |
|
大家好,学生以前接触的硬件类比较多,这次需要在2440板子下跑wince,用串口读数据,我找了很多资料,发现都是直接给代码的,学生求助,是在什么环境下编译?PB吗?如果是PB的话,就是改PB里哪里的程序呢???学生很疑惑,学生其实是想用VS2005中 ...… 查看全部问答> |
|
68013A端点EP6OUT的BULK写失败求助,急!! 易用专业的PCI、USB、LED方案正在对68013A采用slavefifo方式进行bulk读写操作 我用EP2做in端点,1024字节,2从缓冲 用EP6做OUT端点,512字节,4从缓冲 我写好了68013A的固件,用CYPRESS的开发工具 ...… 查看全部问答> |
|
用PB编制系统镜像,由于用到SHFileOperation复制文件,但是显示进度框上没有取消按钮 别的版本的机器则可以...不知道这个跟什么组件选择还有关系,还有就是ceshell.dll是怎么生成的 新手请教各位大虾!!… 查看全部问答> |
|
我的新书《ARM Cortex-M0从这里开始》已经出版,即将上市,希望大家多多支持。在这里先谢谢大家了。。。。。。。。。。。。。 前言和目录: 已经上市 北航:http://www.buaapress.com.cn/bookdetai ...… 查看全部问答> |
|
本帖最后由 dontium 于 2015-1-23 13:10 编辑 器件型号:RDK_BLDC DRV8312-C2-KIT (电机控制评估套件) &nbs ...… 查看全部问答> |
|
ls -bash: ls: command not found . 原因:在设置环境变量时,编辑profile文件没有写正确,导致在命令行下ls等命令不能够识别。 解决方案: exportPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin… 查看全部问答> |




