【问题标题】:sbrk.c not seeing linker variable endsbrk.c 没有看到链接器变量结束
【发布时间】:2022-07-21 16:17:43
【问题描述】:

我正在 SAM3X8E 上进行开发,我正在使用 GCC C++ 编译器和 atmel studio 7。我正在尝试包含 stdio 库,但我不断收到错误消息:

sbrk 中的“未定义的结束引用”

关注这篇文章:

https://community.atmel.com/forum/how-solve-linker-error-sbrkc11-error-undefined-reference-end

我通过在堆部分的链接描述文件的堆部分显式添加 end,

end = 羊;

我不确定发生了什么,sbrk 应该看到链接器变量。

【问题讨论】:

    标签: cortex-m atmel cortex-m3 atmelstudio


    【解决方案1】:

    我解决了这个问题。 添加_sbrk函数。

    extern int _sheap;

    caddr_t _sbrk(int incr)

    {

    static unsigned char *heap = NULL;
    unsigned char *prev_heap;
    
    if (heap == NULL) {
        heap = (unsigned char *) &(_sheap);
    }
    prev_heap = heap;
    heap += incr;
    
    return (caddr_t) prev_heap;
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-12
      • 2014-08-03
      • 2014-11-27
      • 1970-01-01
      • 1970-01-01
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多