GD的Embedded Builder编译后的文件,能跑运行很缓慢,为什么?

[复制链接]
8047|13
 楼主| 八个细胞 发表于 2024-7-11 14:48 | 显示全部楼层 |阅读模式
最近看Embeded Builder更新了GD32F303CC的,就把IAR的一个项目移植到Embedded Builder上,编译都很成功。新版本的Embedded Builder的debug里面好像选不了除gdlink其他的,我就用jlink把它编译好的文件烧录到单片机,然后程序能够运行,但反应很慢,比如有个屏幕显示,比原来IAR的慢了几倍,控制电机(代码里的目标转速完全没改过)转速也只有原来的30%左右,想请问下这是什么情况?
 楼主| 八个细胞 发表于 2024-7-12 10:57 | 显示全部楼层
拿串口打印了一下两个程序的系统时钟,也是一样的:
9613066909b8a0b2d2.png
地瓜patch 发表于 2024-7-12 20:41 来自手机 | 显示全部楼层
软件的配置会不会有问题,比如其用了内部时钟,或者时钟的优先级问题

评论

改了一下gcc的编译优化等级,屏幕显示变快了一些,电机控制还是很慢。这样的话应该是是FPU没开的原因。然后打开FPU后程序一上电直接进HardFault了,不知道为什么,还在找原因。。。  发表于 2024-7-15 09:46
zchong 发表于 2024-7-13 12:37 | 显示全部楼层
打印出来的不一定是真实的,还是从代码入手,一步一步看看哪里分频或者倍频不一致吧

评论

改了一下gcc的编译优化等级,屏幕显示变快了一些,电机控制还是很慢。这样的话应该是是FPU没开的原因。然后打开FPU后程序一上电直接进HardFault了,不知道为什么,还在找原因。。。  发表于 2024-7-15 09:47
地瓜patch 发表于 2024-7-16 08:22 | 显示全部楼层
八个细胞 发表于 2024-7-12 10:57
拿串口打印了一下两个程序的系统时钟,也是一样的:

进入硬件错误的话注意一下数组是否越界
 楼主| 八个细胞 发表于 2024-7-25 11:10 | 显示全部楼层
解决了,fpu是选错了选项,Cotex-M4得选vfpv4-sp-d16。然后再调了一下gcc的优化等级为O2,目前看起来能正常速度跑了,电机也能正常运作不会降速(至少看着跟IAR的一样)。

评论

不过需要调优化等级还是有点后怕,IAR优化等级设置的None也没啥问题,不知道是不是gcc的问题。  发表于 2024-7-25 11:11
shenxiaolin 发表于 2024-7-29 22:15 | 显示全部楼层
感谢分享
小小蚂蚁举千斤 发表于 2024-7-31 22:07 | 显示全部楼层
电机速度慢,可能是不匹配导致的
亚瑟 发表于 2024-7-31 22:39 | 显示全部楼层
是不是驱动不同啊
cr315 发表于 2024-8-10 18:28 | 显示全部楼层
检查并确认FPU是否已正确配置,并在需要时启用FPU支持。
两只袜子 发表于 2024-8-10 20:26 | 显示全部楼层
尝试提高编译器的优化等级
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

7

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部