|
|
本帖最后由 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多倍!
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|