打印
[N32G45x]

N32G455的DSP指令使用

[复制链接]
261|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tortures|  楼主 | 2024-9-6 10:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求问各位大佬,N32G455中的浮点运算与DSP指令功能如何使用啊,也没找到官方在这方面的使用资料。

使用特权

评论回复
沙发
niceguy| | 2024-9-6 15:25 | 只看该作者
这个是ARM Cortex-M4内核自带的特点,和STM32一样的,到网上搜下STM32 m4怎么 配置的一大把

使用特权

评论回复
板凳
一周一天班| | 2024-9-9 11:20 | 只看该作者
本帖最后由 一周一天班 于 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提取表数据,这样生成的应用代码非常小

CmsisDsp.zip

8.1 MB

N32DSP.FFT

使用特权

评论回复
地板
jcky001| | 2024-9-10 14:59 | 只看该作者
浮点运算的使用c
#include <math.h>  
  
float addFloats(float a, float b) {  
    return a + b;  
}  
  
int main() {  
    float result = addFloats(3.14f, 2.71f);  
    // 后续处理...  
}

使用特权

评论回复
5
jcky001| | 2024-9-10 15:00 | 只看该作者
DSP指令的使用示例(使用CMSIS-DSP库)

假设你正在实现一个FIR(有限脉冲响应)滤波器,你可以使用CMSIS-DSP库中的arm_fir_f32()函数。首先,你需要包含CMSIS-DSP库的头文件,并配置滤波器参数,然后调用该函数进行滤波处理。

c
#include "arm_math.h"  
  
// 假设已经定义了滤波器系数和输入信号  
float32_t coeffs[numTaps] = { ... };  
float32_t inputSignal[blockSize] = { ... };  
float32_t outputSignal[blockSize];  
  
arm_fir_instance_f32 S;  
arm_fir_init_f32(&S, numTaps, (float32_t *)&coeffs[0], &state[0], blockSize);  
  
arm_fir_f32(&S, inputSignal, outputSignal, blockSize);  
  
// 后续处理...

使用特权

评论回复
6
cr315| | 2024-9-10 19:56 | 只看该作者
联系国民技术的技术支持

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝