Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ошибка при линковки Freertos
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
Hz!
Не линкуется пример из FreeRTOSV5.4.2. Выдает следующее:
CODE
arm-elf-gcc.exe -IFreeRTOS\include -IFreeRTOS\portable\GCC\ARM7_LPC23xx -IApp -c App\ParTest.c -o obj\Debug\App\ParTest.o
arm-elf-gcc.exe -IFreeRTOS\include -IFreeRTOS\portable\GCC\ARM7_LPC23xx -IApp -c App\boot.s -o obj\Debug\App\boot.o
arm-elf-gcc.exe -IFreeRTOS\include -IFreeRTOS\portable\GCC\ARM7_LPC23xx -IApp -c App\dynamic.c -o obj\Debug\App\dynamic.o
arm-elf-gcc.exe -IFreeRTOS\include -IFreeRTOS\portable\GCC\ARM7_LPC23xx -IApp -c App\main.c -o obj\Debug\App\main.o
arm-elf-gcc.exe -IFreeRTOS\include -IFreeRTOS\portable\GCC\ARM7_LPC23xx -IApp -c FreeRTOS\croutine.c -o obj\Debug\FreeRTOS\croutine.o
arm-elf-gcc.exe -IFreeRTOS\include -IFreeRTOS\portable\GCC\ARM7_LPC23xx -IApp -c FreeRTOS\list.c -o obj\Debug\FreeRTOS\list.o
arm-elf-gcc.exe -IFreeRTOS\include -IFreeRTOS\portable\GCC\ARM7_LPC23xx -IApp -c FreeRTOS\portable\GCC\ARM7_LPC23xx\port.c -o obj\Debug\FreeRTOS\portable\GCC\ARM7_LPC23xx\port.o
arm-elf-gcc.exe -IFreeRTOS\include -IFreeRTOS\portable\GCC\ARM7_LPC23xx -IApp -c FreeRTOS\portable\GCC\ARM7_LPC23xx\portISR.c -o obj\Debug\FreeRTOS\portable\GCC\ARM7_LPC23xx\portISR.o
arm-elf-gcc.exe -IFreeRTOS\include -IFreeRTOS\portable\GCC\ARM7_LPC23xx -IApp -c FreeRTOS\portable\MemMang\heap_2.c -o obj\Debug\FreeRTOS\portable\MemMang\heap_2.o
arm-elf-gcc.exe -IFreeRTOS\include -IFreeRTOS\portable\GCC\ARM7_LPC23xx -IApp -c FreeRTOS\queue.c -o obj\Debug\FreeRTOS\queue.o
arm-elf-gcc.exe -IFreeRTOS\include -IFreeRTOS\portable\GCC\ARM7_LPC23xx -IApp -c FreeRTOS\tasks.c -o obj\Debug\FreeRTOS\tasks.o
arm-elf-gcc.exe obj\Debug\App\ParTest.o obj\Debug\App\boot.o obj\Debug\App\dynamic.o obj\Debug\App\main.o obj\Debug\FreeRTOS\croutine.o obj\Debug\FreeRTOS\list.o obj\Debug\FreeRTOS\portable\GCC\ARM7_LPC23xx\port.o obj\Debug\FreeRTOS\portable\GCC\ARM7_LPC23xx\portISR.o obj\Debug\FreeRTOS\portable\MemMang\heap_2.o obj\Debug\FreeRTOS\queue.o obj\Debug\FreeRTOS\tasks.o -o bin\Debug\Base.elf -Wl,-Map=.\obj/Base.map,--cref -T.\lpc2368.ld -nostartfiles
x:/progs/yagarto20090817/bin/../lib/gcc/arm-elf/4.4.1/../../../../arm-elf/lib\libc.a(lib_a-freer.o): In function `_malloc_trim_r':
C:\msys\1.0\home\yagarto\newlib-build\arm-elf\newlib\libc\stdlib/../../../../../newlib-1.17.0/newlib/libc/stdlib/mallocr.c:3326: undefined reference to `_sbrk_r'
C:\msys\1.0\home\yagarto\newlib-build\arm-elf\newlib\libc\stdlib/../../../../../newlib-1.17.0/newlib/libc/stdlib/mallocr.c:3335: undefined reference to `_sbrk_r'
C:\msys\1.0\home\yagarto\newlib-build\arm-elf\newlib\libc\stdlib/../../../../../newlib-1.17.0/newlib/libc/stdlib/mallocr.c:3340: undefined reference to `_sbrk_r'
x:/progs/yagarto20090817/bin/../lib/gcc/arm-elf/4.4.1/../../../../arm-elf/lib\libc.a(lib_a-mallocr.o): In function `malloc_extend_top':
C:\msys\1.0\home\yagarto\newlib-build\arm-elf\newlib\libc\stdlib/../../../../../newlib-1.17.0/newlib/libc/stdlib/mallocr.c:2160: undefined reference to `_sbrk_r'
C:\msys\1.0\home\yagarto\newlib-build\arm-elf\newlib\libc\stdlib/../../../../../newlib-1.17.0/newlib/libc/stdlib/mallocr.c:2197: undefined reference to `_sbrk_r'
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 7 seconds)
5 errors, 0 warnings

Подскажите, в чем может быть причина.
Прикрепляю проект в Code:Blocks.
TOOLS:
Binutils-2.19.1
Newlib-1.17.0
GCC-4.4.1
GDB-6.8.50-20080308
Insight-6.8.50-20080308
zltigo
Цитата(Hz! @ Sep 11 2009, 09:25) *
Подскажите, в чем может быть причина.

Причина написана пять раз английским по белому. Что конкретно не понятно? Как написать заглушку для платформенно зависимой функции? Ну, например, так:
Код
caddr_t _sbrk_r( struct _reent *r,  int incr )
{
    (void)r;
    (void)incr;
    
    return( 0 );
}
Hz!
Спасибо, все собралось.
Могли бы вы пояснить откуда взялась эта платформенно зависимая функция?
zltigo
Цитата(Hz! @ Sep 11 2009, 10:11) *
Могли бы вы пояснить откуда взялась эта платформенно зависимая функция?

Авторы гнусной newlib захотели воспользоваться системным вызовом. За подробностями к ним.
Hz!
Спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.