可以按如下步骤和思路尝试解决:
1、FPU没有正确启用;
在IDE的编译器选项中,看看有木有启用FPU选项配置;
2、时钟配置
如果系统时钟没有正确配置,可能会导致FPU无法正常工作;
3、堆栈对齐
FPU操作好像是需要8字节对齐的;
可以在启动文件startup_gd32f4xx.s中修改:
__initial_sp EQU 0x20020000 & ~0x7 ; 8 字节对齐
4、中断优先级配置;
将PendSV 和 SysTick 的中断优先级设置为最低:
NVIC_SetPriority(PendSV_IRQn, 0xFF);
NVIC_SetPriority(SysTick_IRQn, 0xFF);
以上希望对你有用!
|