Embedded ChibiOS中对_sbrk的未定义引用

Embedded ChibiOS中对_sbrk的未定义引用,embedded,sbrk,chibios,Embedded,Sbrk,Chibios,我正在使用ChibiOS 3.x编写一个嵌入式应用程序。编译/链接它时,我遇到如下错误消息: /usr/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7e-m/libg.a(lib_a-sbrkr.o): In function `_sbrk_r': sbrkr.c:(.text._sbrk_r+0xc): undefined reference to `_sbrk' 哪里定义了\u sbrk以及如何解

我正在使用ChibiOS 3.x编写一个嵌入式应用程序。编译/链接它时,我遇到如下错误消息:

/usr/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7e-m/libg.a(lib_a-sbrkr.o): In function `_sbrk_r':
sbrkr.c:(.text._sbrk_r+0xc): undefined reference to `_sbrk'

哪里定义了
\u sbrk
以及如何解决此问题?

\u sbrk
是在
os/variable/syscalls.c
中定义的,因此请确保此文件已正确编译和链接

请注意,
\u sbrk
当且仅当
CH\u CFG\u USE\u MEMCORE==TRUE
(您可以在
chconf.h
中更改它)时才能正常工作。否则,
malloc()。有关
ENOMEM
问题的更全面解释,请参见


还要注意的是,对于嵌入式应用程序,尤其是针对高可靠性的应用程序,可能根本不建议使用动态内存分配(其中
\u sbrk
是其中的一部分)(请参阅
\u sbrk
os/variable/syscalls.c
中定义,因此请确保正确编译和链接此文件

请注意,
\u sbrk
当且仅当
CH\u CFG\u USE\u MEMCORE==TRUE
(您可以在
chconf.h
中更改它)时才能正常工作。否则,
malloc()。有关
ENOMEM
问题的更全面解释,请参见

还要注意的是,对于嵌入式应用程序,尤其是针对高可靠性的应用程序,可能根本不建议使用动态内存分配(其中
\u sbrk
是其中的一部分)(请参见在我的Makefile中
$(CHIBIOS)/os/variable/syscalls.c\
添加到
CSRC
(CHIBIOS)/os/Variable/syscalls.c\
到我的Makefile中的CSRC