问答

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

21ic问答首页 - GD32E230 heap空间问题

MUC 嵌入式 国产芯片

GD32E230 heap空间问题

mutang19882024-02-19
GD32E230的MCU分配heap空间异常,map文件中堆和栈的地址是相同的,程序调用malloc函数会运行不正常,有人遇到过吗
回答 +关注 1
602人浏览 4人回答问题 分享 举报
4 个回答
  • 查一下启动文件startup_xxx.s,看看是不是配置成同一个地址了
  • 堆分配的 大小是 0x000000 吧!懒得查,就直接  申请一个全局数组,自己控制分配模拟 malloc,原子的例程还可以用。
  • 启动文件里看一下配置
  •     Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08004408, Size: 0x00001468, Max: 0x00002000, ABSOLUTE)

        Exec Addr    Load Addr    Size         Type   Attr      Idx    E Section Name        Object

        0x20000000   0x08004408   0x00000004   Data   RW         1885    .data               mc_p.l(stdout.o)
        0x20000004   0x0800440c   0x00000004   Data   RW         1900    .data               mc_p.l(mvars.o)
        0x20000008   0x08004410   0x00000004   Data   RW         1901    .data               mc_p.l(mvars.o)
        0x2000000c   0x08004414   0x00000008   Data   RW          138    .data..L_MergedGlobals  cjson.o
        0x20000014   0x0800441c   0x00000004   Data   RW         1472    .data.SystemCoreClock  system_gd32e23x.o
        0x20000018        -       0x00000011   Zero   RW           23    .bss..L_MergedGlobals  main.o
        0x20000029   0x08004420   0x00000003   PAD
        0x2000002c        -       0x00000008   Zero   RW           37    .bss..L_MergedGlobals  systick.o
        0x20000034        -       0x0000002c   Zero   RW          215    .bss..L_MergedGlobals  bsp_uart.o
        0x20000060        -       0x00000080   Zero   RW          214    .bss.g_RxBuf2       bsp_uart.o
        0x200000e0        -       0x00000080   Zero   RW          213    .bss.g_TxBuf2       bsp_uart.o
        0x20000160        -       0x00000001   Zero   RW          311    .bss.timer13_timeout_flag  bsp_timer.o
        0x20000161        -       0x00000001   Zero   RW          310    .bss.timer2_timeout_flag  bsp_timer.o
        0x20000162   0x08004420   0x00000006   PAD
        0x20000168        -       0x00000000   Zero   RW         1481    HEAP                startup_gd32e23x.o
        0x20000168        -       0x00001300   Zero   RW         1480    STACK               startup_gd32e23x.o

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