Embedded ChibiOS中对_sbrk的未定义引用
我正在使用ChibiOS 3.x编写一个嵌入式应用程序。编译/链接它时,我遇到如下错误消息: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以及如何解
/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