问答

汇集网友智慧,解决技术难题

21ic问答首页 - 请问GD32的上电启动速度有没有优化空间?

请问GD32的上电启动速度有没有优化空间?

7035309762026-03-20
MCU型号:GD32E230K8T6
工具:Keil5
问题:上电时需要PA15脚一直输出高电平,目前从上电到PA15输出到高电平,时间大概在12ms左右,请问还有没有优化的空间。使用的是内部晶振,72MHz。尝试了一些措施,调整keil优化等级、前移PA15初始化代码、基本没有改善。

这些是在main函数之前的,不知道还有没有优化的空间。







回答 +关注 1
1262人浏览 7人回答问题 分享 举报
7 个回答
  • 还是上拉电阻比较靠谱,快
  • 703530976 发表于 2026-3-23 09:01
    先尝试能否软件解决

    我看了原厂的SDK。还得修改启动的汇编代码。得把汇编启动代码中的内存初始化功能移到SystemInit 函数去。
    这样才能加快。
    1. Reset_Handler
    2.                 LDR     R0, =0x1FFFF7E0
    3.                 LDR     R2, [R0]
    4.                 LDR     R0, = 0xFFFF0000
    5.                 ANDS    R2, R2, R0
    6.                 LSRS    R2, R2, #16
    7.                 LSLS    R2, R2, #10
    8.                 LDR     R1, =0x20000000
    9.                 MOV     R0, #0x00
    10. SRAM_INIT       STM     R1!, {R0}
    11.                 SUBS    R2, R2, #4
    12.                 CMP     R2, #0x00
    13.                 BNE     SRAM_INIT

    把这段删了,在SystemInit 函数之中补上内存清零工作。noinit 变量部分注意绕开。SystemInit 函数一开始就设置PA15,然后内存清零,然后就是其他后续代码了。
    xch 2026-3-23 10:09 回复TA
    内存清零之前应当避免有关堆栈操作的代码,如函数调用等。 
  • 703530976 发表于 2026-3-23 09:01
    先尝试能否软件解决

    BOOT0 脚接地。在启动代码中最前面插入GPIO PA15的设置。应该是最快的了。
  • xch 发表于 2026-3-20 18:52
    PA15外加个上拉电阻不行吗?

    先尝试能否软件解决
  • 1、参考启动代码,时钟系统初始化耗时较长,可考虑在system_gd32xxxx.c中想办法。
    2、上拉电阻。
  • PA15外加个上拉电阻不行吗?
  • 本帖最后由 dffzh 于 2026-3-20 16:37 编辑

    你是在哪里操作PA15输出高电平的?
    可以在初始化PA15端口后立即输出高电平啊,类似下面的操作,然后看下时间:
    4763169bd0728341ae.png
    703530976 2026-3-23 08:28 回复TA
    应该只能在main函数之前的SystemInit()里面想办法 
    703530976 2026-3-23 08:23 回复TA
    已经放在最前面了,开启GPIO时钟后,立马就初始化了PA15,然后设置输出高电平。 

您需要登录后才可以回复 登录 | 注册