打印

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

[复制链接]
6817|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
最近看Embeded Builder更新了GD32F303CC的,就把IAR的一个项目移植到Embedded Builder上,编译都很成功。新版本的Embedded Builder的debug里面好像选不了除gdlink其他的,我就用jlink把它编译好的文件烧录到单片机,然后程序能够运行,但反应很慢,比如有个屏幕显示,比原来IAR的慢了几倍,控制电机(代码里的目标转速完全没改过)转速也只有原来的30%左右,想请问下这是什么情况?

使用特权

评论回复
沙发
八个细胞|  楼主 | 2024-7-12 10:57 | 只看该作者
拿串口打印了一下两个程序的系统时钟,也是一样的:

使用特权

评论回复
板凳
地瓜patch| | 2024-7-12 20:41 | 只看该作者
软件的配置会不会有问题,比如其用了内部时钟,或者时钟的优先级问题

使用特权

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

使用特权

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

进入硬件错误的话注意一下数组是否越界

使用特权

评论回复
6
八个细胞|  楼主 | 2024-7-25 11:10 | 只看该作者
解决了,fpu是选错了选项,Cotex-M4得选vfpv4-sp-d16。然后再调了一下gcc的优化等级为O2,目前看起来能正常速度跑了,电机也能正常运作不会降速(至少看着跟IAR的一样)。

使用特权

评论回复
评论
八个细胞 2024-7-25 11:11 回复TA
不过需要调优化等级还是有点后怕,IAR优化等级设置的None也没啥问题,不知道是不是gcc的问题。 
7
shenxiaolin| | 2024-7-29 22:15 | 只看该作者
感谢分享

使用特权

评论回复
8
小小蚂蚁举千斤| | 2024-7-31 22:07 | 只看该作者
电机速度慢,可能是不匹配导致的

使用特权

评论回复
9
亚瑟| | 2024-7-31 22:39 | 只看该作者
是不是驱动不同啊

使用特权

评论回复
10
cr315| | 2024-8-10 18:28 | 只看该作者
检查并确认FPU是否已正确配置,并在需要时启用FPU支持。

使用特权

评论回复
11
两只袜子| | 2024-8-10 20:26 | 只看该作者
尝试提高编译器的优化等级

使用特权

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

本版积分规则

2

主题

7

帖子

0

粉丝