реклама на сайте
подробности

 
 
> Ошибка при линковки Freertos
Hz!
сообщение Sep 11 2009, 07:25
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 5-05-06
Из: Минск
Пользователь №: 16 792



Не линкуется пример из 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
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
zltigo
сообщение Sep 11 2009, 07:55
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Hz! @ Sep 11 2009, 09:25) *
Подскажите, в чем может быть причина.

Причина написана пять раз английским по белому. Что конкретно не понятно? Как написать заглушку для платформенно зависимой функции? Ну, например, так:
Код
caddr_t _sbrk_r( struct _reent *r,  int incr )
{
    (void)r;
    (void)incr;
    
    return( 0 );
}


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Hz!
сообщение Sep 11 2009, 08:11
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 5-05-06
Из: Минск
Пользователь №: 16 792



Спасибо, все собралось.
Могли бы вы пояснить откуда взялась эта платформенно зависимая функция?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 11 2009, 08:15
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Hz! @ Sep 11 2009, 10:11) *
Могли бы вы пояснить откуда взялась эта платформенно зависимая функция?

Авторы гнусной newlib захотели воспользоваться системным вызовом. За подробностями к ним.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Hz!
сообщение Sep 11 2009, 08:27
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 5-05-06
Из: Минск
Пользователь №: 16 792



Спасибо.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 09:17
Рейтинг@Mail.ru


Страница сгенерированна за 0.01373 секунд с 7
ELECTRONIX ©2004-2016