Tag: sbrk

未定义的_sbrk引用

我遇到了_sbrk的问题。 在编译的链接阶段,我使用下面的命令链接我的对象,我得到未定义的引用_sbrk。 arm-none-eabi-ld -static -T linkerscript.ld -o exe timer_example.o /home/ziga/projects/cs_lite/arm-none-eabi/lib/libc.a /home/ziga/projects/cs_lite/lib/gcc/arm-none-eabi/4.5.1/libgcc.a 我正在编译arm926ej-s并在ARM模式下,所以我想我选择了正确的multilib(libc.a和libgcc.a),它位于文件夹home / ziga / projects / cs_lite / arm-none-eabi / lib / 。 我一直在网上搜索_sbrk函数,它是某种内存管理调用,它不包含在标准C库中,因为它依赖于微处理器。 所以我必须自己编写_sbrk函数吗? 我该怎么做? 你有arm926ej-s的例子吗? 编写此函数后,我打算将其编译为目标文件,并将其与其他对象库连接在一起。 亲切的问候,Ziga。 我解决了这个问题并将在这里发布解决方案,所以我回馈社区。 函数_sbrk位于ARM的NXP CDL包中。 包可供下载(链接适用于所有不熟悉此function的人): http ://www.lpclinux.com/Downloads/WebHome在子文件夹CDL_v005 / csps / lpc313x / bsps / ea3131 / source中,您将找到命名的源文件libnosys_gnu.c应该添加到项目中并编译到目标文件,之后链接到可执行文件以及其他对象和库。 祝愿和成功。

mmap vs sbrk,性能比较

这些电话中的哪一个平均更快? 我听说mmap对于较小的分配来说速度更快,但我还没有听到过比较。 任何有关这些表现的信息都会很好。