硬汉嵌入式论坛

 找回密码
 立即注册
查看: 335|回复: 2
收起左侧

[有问必答] GD32E230运行速度问题

[复制链接]

1

主题

8

回帖

11

积分

新手上路

积分
11
发表于 2023-8-13 13:38:04 | 显示全部楼层 |阅读模式
老哥们帮忙瞅瞅这是啥情况,STM32F0和GD32E230两个一样的点灯程序,怎么速度差别这么大
STM32:

[C] 纯文本查看 复制代码
while(1)
{
    HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
    for(DelayNumX=10000;DelayNumX;DelayNumX--);
}


GD32:
[C] 纯文本查看 复制代码
while(1)
{
    for(mdel = 10000;mdel;mdel--);
    gpio_bit_toggle(GPIOB,GPIO_PIN_1);
}


示波器抓取的LED引脚波形:

QQ图片20230813132528.png
QQ图片20230813132534.png


回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2023-8-13 15:55:35 | 显示全部楼层
找到原因了,GD32E203用的AC6,优化等级给的-O0,给别的优化等级,for(xxx;xxx;xxx);这种延时语句直接给优化掉了,换NOP延时测试,同为内部8M模式下,两者速度基本一样
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2023-8-13 16:03:08 | 显示全部楼层
将STM32F030也改成AC6,优化等级也设置成-O0,LED翻转时间就达到了4.1ms
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-28 06:06 , Processed in 0.163469 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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