找回密码
 立即注册
搜索
热搜: 星闪 最新 活动
查看: 493|回复: 0

如何使用带FPU和DSP功能的GD32 MCU来为复杂计算提速?

[复制链接]

7

主题

0

回帖

79

积分

注册会员

积分
79
发表于 2025-6-13 10:58:33 | 显示全部楼层 |阅读模式
本帖最后由 qn_zd 于 2025-6-13 11:15 编辑

在数字电源、电机控制等行业,MCU程序中对复杂计算的速度要求比较高,可以选用带FPU和DSP功能的GD32 MCU(如M4内核的GD32F307VCT6,M33内核的GD32E505RBT6)来实现计算提速。
一、如何开启FPU功能
1.在KEIL工程配置中的浮点硬件:选择单精度浮点


2.在预编译宏中,添加这两个宏:__TARGET_FPU_VFP,__FPU_PRESENT


3.经过上面两步,FPU功能就打开了,如何证明已经打开了呢?
进入debug仿真模式,观察Memery地址 0xE000ED88的内容如已变成0000F000,说明 FPU 已经开启,如果是 00000000,说明 FPU 没有开启。

4.开启FPU的效果

用逻辑分析仪抓取PA1的波形,查看浮点运算的时间,未开启FPU,耗时3230ns;开启FPU,耗时280ns,速度提高了十多倍!


5.在前面开启FPU功能的基础上,如何开启DSP?

5.1 添加arm math lib库文件到工程:arm_cortexM4lf_math.lib


5.2 在需要使用浮点库函数的.c 文件中添加 #include "arm_math.h" (这个头文件中包含所有的函数接口).

5.3 在工程设置中添加预编译宏 ARM_MATH_CM4

5.4 用逻辑分析仪抓取PA1的波形,查看浮点运算的时间,未使用DSP库,耗时42us;使用DSP库,耗时1.24us,速度提高了40多倍!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

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

本版积分规则

Archiver|手机版|小黑屋|【淇诺科技】技术论坛 ( 粤ICP备14010465号-1|粤ICP备14010465号-1 )

GMT+8, 2026-4-2 17:32 , Processed in 0.136854 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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