野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 865|回复: 3

[rt-thread] RT_Thread中开启FPU的操作方式

[复制链接]
发表于 2023-12-2 11:37:07 | 显示全部楼层 |阅读模式
操作步骤:
在C/C++构建--->设置---->Target Processor--->Float ABI中,选择FP instruction(hard)
需要注意的是:
  1、FPU开启时由编译器自动产生浮点指令,没有开启时编译器会用整数操作指令来模拟
  2、arm_math.h是CMIC DSP中的数学库头文件,区别在于它是提供源码的,并且可以方便编译器使用SIMD指令进行优化,比如可以进行并行加减法。
  3、math.h引用的是编译工具链带的数学库头文件,由编译器自动进行链接,编译器会根据彼得FPU类型选择取链接数学库中的不同函数。






开启FPU的操作

开启FPU的操作
回复

使用道具 举报

 楼主| 发表于 2023-12-27 14:45:09 | 显示全部楼层
FPU是硬件单精度浮点数运算,并启用CMSIS封装的STM32的DSP静态库。
FPU:Float Point Unit。全称是浮点计算单元,用于浮点计算的协处理器;
CMSIS DSP软件库是一套用于基于Cortex-M和Cortex-A处理器的设备的常用信号处理功能。该库涵盖以下类别的功能:
基本的数学功能
快速的数学功能
复杂的数学函数
过滤功能
矩阵函数
转换功能
电机控制功能
统计功能
支持功能
插值功能
支持向量机功能(SVM)
贝叶斯分类器功能
距离功能
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-27 16:37:57 | 显示全部楼层
BasicMathFunctions
提供浮点数的各种基本运算函数,如加减乘除等运算。对于M0/M3只能用Q运算,即文件夹下以_q7、_q15和_q31结尾的文件;而M4F能直接硬件浮点计算,属于文件夹下以_f32结尾的文件。
CommonTables
arm_common_tables.c文件提供位翻转或相关参数表。
ComplexMathFunctions
复述数学功能,如向量处理,求模运算的。
ControllerFunctions
控制功能,主要为PID控制函数。arm_sin_cos_f32/-q31.c函数提供360点正余弦函数表和任意角度的正余弦函数值计算功能。
FastMathFunctions
快速数学功能函数,提供256点正余弦函数表和任意任意角度的正余弦函数值计算功能,和Q值开平方运算:
Arm_cos_f32/_q15/_q31.c:提供256点余弦函数表和任意角度余弦值计算功能。
Arm_sin_f32/_q15/_q31.c:提供256点正弦函数表和任意角度正弦值计算功能。
Arm_sqrt_q15/q31.c:提供迭代法计算平方根的函数。对于M4F的平方根运算,通过执行VSQRT指令完成。
FilteringFunctions
滤波函数功能,主要为FIR和LMS(最小均方根)滤波函数。
MatrixFunctions
矩阵处理函数。
StatisticsFunctions
统计功能函数,如求平均值、计算RMS、计算方差/标准差等。
SupportFunctions
支持功能函数,如数据拷贝,Q格式和浮点格式相互转换,Q任意格式相互转换。
TransformFunctions
变换功能。包括复数FFT(CFFT)/复数FFT逆运算(CIFFT)、实数FFT(RFFT)/实数FFT逆运算(RIFFT)、和DCT(离散余弦变换)和配套的初始化函数。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-27 18:00:26 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-1 06:54 , Processed in 0.114819 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表