У меня проблема с _sbrk. В фазе компоновки ссылок я использую ниже comand для ссылки на мои объекты, и я получаю ссылку undefined на _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/Library/.
Я искал интернет для функции _sbrk, и это какой-то вызов управления памятью, который не включен в стандартные библиотеки C, поскольку он зависит от микропроцессора. Су, мне нужно написать функцию _sbrk самостоятельно? Как мне это сделать? Есть ли у вас пример для arm926ej-s? После написания этой функции я собираюсь скомпилировать ее в объектный файл и связать ее вместе с другими объектами, библиотеками.
С уважением, Зига.
Я решил эту проблему и разместил решение здесь, поэтому я возвращаю распространяемый. Функция _sbrk находится внутри пакета NXP CDL для ARM. пакет доступен для скачивания (ссылка предназначена для всех, кто этого не знает): http://www.lpclinux.com/Downloads/WebHome В подпапке CDL_v005/csps/lpc313x/bsps/ea3131/source вы найдете исходный файл named libnosys_gnu.c, который должен быть добавлен в проект и скомпилирован для объекта файл и после этого связанный с исполняемым файлом вместе с другими объектами и библиотеки.
С наилучшими пожеланиями и большим успехом.