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

 
 
> Проблема с переносом проекта на GCC
igorenja
сообщение Jun 30 2011, 15:38
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 130
Регистрация: 8-08-08
Из: Новосибирск
Пользователь №: 39 488



Доброе время суток!
Возникла необходимость переноса проекта написанного под IAR на CodeSourcery.
Написал Makefile все вроде бы компилируется но с ликером проблема.

Код
arm-none-eabi-g++ -nostartfiles -mcpu=cortex-m0 -mthumb -Wl,--gc-sections -T lpc1xxx/memory.ld -o release/Exe/mtv.elf release/Obj/temperature.o release/Obj/ccanopenobjectdictionary.o release/Obj/cgpio.o release/Obj/cwatchdog.o release/Obj/tools.o release/Obj/main.o release/Obj/csdoserver.o release/Obj/cuart.o release/Obj/csysticktimer.o release/Obj/system.o release/Obj/ccriticalsection.o release/Obj/cadc.o release/Obj/cspi.o release/Obj/ccan.o release/Obj/cflashat25.o release/Obj/cresult.o release/Obj/cstorage.o release/Obj/ccanopen.o release/Obj/cflashcopier.o release/Obj/LPC11xx_handlers.o release/Obj/LPC1xxx_startup.o
/opt/arm-2011.03/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/lib/armv6-m/libc.a(lib_a-abort.o): In function `abort':
abort.c:(.text+0xa): undefined reference to `_exit'
/opt/arm-2011.03/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/lib/armv6-m/libc.a(lib_a-fstatr.o): In function `_fstat_r':
fstatr.c:(.text+0xe): undefined reference to `_fstat'
/opt/arm-2011.03/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/lib/armv6-m/libc.a(lib_a-sbrkr.o): In function `_sbrk_r':
sbrkr.c:(.text+0xc): undefined reference to `_sbrk'
/opt/arm-2011.03/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/lib/armv6-m/libc.a(lib_a-signalr.o): In function `_kill_r':
signalr.c:(.text+0xe): undefined reference to `_kill'
/opt/arm-2011.03/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/lib/armv6-m/libc.a(lib_a-signalr.o): In function `_getpid_r':
signalr.c:(.text+0x2a): undefined reference to `_getpid'
/opt/arm-2011.03/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/lib/armv6-m/libc.a(lib_a-writer.o): In function `_write_r':
writer.c:(.text+0x10): undefined reference to `_write'
/opt/arm-2011.03/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/lib/armv6-m/libc.a(lib_a-closer.o): In function `_close_r':
closer.c:(.text+0xc): undefined reference to `_close'
/opt/arm-2011.03/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/lib/armv6-m/libc.a(lib_a-isattyr.o): In function `_isatty_r':
isattyr.c:(.text+0xc): undefined reference to `_isatty'
/opt/arm-2011.03/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/lib/armv6-m/libc.a(lib_a-lseekr.o): In function `_lseek_r':
lseekr.c:(.text+0x10): undefined reference to `_lseek'
/opt/arm-2011.03/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/lib/armv6-m/libc.a(lib_a-readr.o): In function `_read_r':
readr.c:(.text+0x10): undefined reference to `_read'
collect2: ld returned 1 exit status
make: *** [all] Error 1


Когда линкер запускается без стартапа выше обозначенных ошибок нет.
Стартап и скрипт линкера во вложении

Всем откликнувшимся заранее спасибо


Прикрепленные файлы
Прикрепленный файл  lpc1xxx.zip ( 5.38 килобайт ) Кол-во скачиваний: 16
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AHTOXA
сообщение Jun 30 2011, 16:48
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



http://electronix.ru/forum/index.php?showt...st&p=651990


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
igorenja
сообщение Jul 1 2011, 10:10
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 130
Регистрация: 8-08-08
Из: Новосибирск
Пользователь №: 39 488



Цитата(AHTOXA @ Jun 30 2011, 23:48) *


Спасибо огромное. Подложил файл, скомпилировал, сборка прошла успешно. Но есть одно "НО" Размер бинарника 120кБ. У меня памяти без начального загрузчика осталось 24кБ. Может быть подскажете чем может быть вызвано такое разростание прошивки (В iar бинарник был 17кБ)

Опции компилятора:
Код
arm-none-eabi-g++ -ffunction-sections -fdata-sections -fmessage-length=0 -DTARGET=LPC11xx -fno-builtin -Wall -O2 -c -mcpu=cortex-m0 -mthumb  -I. -I./io -I./wlib -I./system ccan.cpp -o release/Obj/ccan.o
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 1 2011, 13:22
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (igorenja @ Jul 1 2011, 13:10) *
Размер бинарника 120кБ.
(s)printf?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
igorenja
сообщение Jul 1 2011, 14:38
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 130
Регистрация: 8-08-08
Из: Новосибирск
Пользователь №: 39 488



Цитата(Сергей Борщ @ Jul 1 2011, 20:22) *
(s)printf?


нет там такого добра


Цитата(AHTOXA @ Jul 1 2011, 20:42) *
Да, это такой у arm-gcc printf. Он тянет за собой malloc и кучу всего прочего. Замените его чем-нибудь попроще.



Не забыли к ключам компилятора -ffunction-sections -fdata-sections добавить ключ линкера -Wl,--gc-sections ?


Единственное что я использую из библиотек это memove strcmp memset memcpy... ключ линкера есть
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jul 1 2011, 15:06
Сообщение #6


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(igorenja @ Jul 1 2011, 20:38) *
Единственное что я использую из библиотек это memove strcmp memset memcpy... ключ линкера есть

ftoa/dtoa? Чисто виртуальные функции? Исключения?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
igorenja
сообщение Jul 1 2011, 15:21
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 130
Регистрация: 8-08-08
Из: Новосибирск
Пользователь №: 39 488



Цитата(AHTOXA @ Jul 1 2011, 22:06) *
ftoa/dtoa? Исключения?


Нет

Цитата(AHTOXA @ Jul 1 2011, 22:06) *
Чисто виртуальные функции?


Есть... А что с ними не в порядке?
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jul 1 2011, 15:29
Сообщение #8


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(igorenja @ Jul 1 2011, 21:21) *
Есть... А что с ними не в порядке?

Они тоже много чего за собой тянут. Решение - тут.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post



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

 


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


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