N32G455的DSP指令使用
求问各位大佬,N32G455中的浮点运算与DSP指令功能如何使用啊,也没找到官方在这方面的使用资料。这个是ARM Cortex-M4内核自带的特点,和STM32一样的,到网上搜下STM32 m4怎么 配置的一大把 本帖最后由 一周一天班 于 2024-9-9 11:22 编辑
1)找到CMDIS路径,比如C:\Users\90820\AppData\Local\Arm\Packs\ARM\CMSIS\5.0.1\CMSIS\DSP_Lib\Source\ARM
2)该目录下有KEIL项目arm_cortexM_math.uvprojx,打开
3)修改MCU为ARMCM4_FP,c/c++选项中:ARM_MATH_MATRIX_CHECK, ARM_MATH_ROUNDING,ARM_MATH_CM4,__FPU_PRESENT=1
4)如果是NW452蓝牙型号,MISC中加--wchar32,其他不理会
5)Output生产库文件,比如arm_M4LF_math_Wc32
6)编译生成库
6)但这个库不合适直接用,应该会生成比较庞大的应用代码,需要进一步修改.
7)修改后的代码和库见附件,就是从arm_common_tables.c提取表数据,这样生成的应用代码非常小 浮点运算的使用c
#include <math.h>
float addFloats(float a, float b) {
return a + b;
}
int main() {
float result = addFloats(3.14f, 2.71f);
// 后续处理...
} DSP指令的使用示例(使用CMSIS-DSP库)
假设你正在实现一个FIR(有限脉冲响应)滤波器,你可以使用CMSIS-DSP库中的arm_fir_f32()函数。首先,你需要包含CMSIS-DSP库的头文件,并配置滤波器参数,然后调用该函数进行滤波处理。
c
#include "arm_math.h"
// 假设已经定义了滤波器系数和输入信号
float32_t coeffs = { ... };
float32_t inputSignal = { ... };
float32_t outputSignal;
arm_fir_instance_f32 S;
arm_fir_init_f32(&S, numTaps, (float32_t *)&coeffs, &state, blockSize);
arm_fir_f32(&S, inputSignal, outputSignal, blockSize);
// 后续处理... 联系国民技术的技术支持 ARM Cortex-M4内核自带的特点 N32G455中的浮点运算与DSP指令
页:
[1]