Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: avr-binutils в ubuntu 12.04 64bit: не могу слинковать .o, сделанный из бинарника
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
LordVader
стоят avr-gcc, avr-binutils и libc-avr.
Делаю из бинарника объектный файл с целью влинковать его:

Код
>avr-objcopy -I binary -O elf32-avr --rename-section .data=.progmem.data,contents,alloc,load,readonly,data --redefine-sym _binary_top_mlz_start=fpga --redefine-sym _binary_top_mlz_end=fpga_end top.mlz top.o

тут всё ок.

далее линкую:
Код
>avr-gcc -mmcu=atmega128 -Wl,-Map=core.map zx.o interrupts.o main.o ps2.o spi.o depacker_dirty.o rs232.o rtc.o atx.o joystick.o version.o tape.o kbmap.o top.o   -o core.elf
/usr/lib/gcc/avr/4.5.3/../../../avr/bin/ld: avr architecture of input file `top.o' is incompatible with avr:51 output
collect2: ld returned 1 exit status


Версии:
Код
>avr-gcc --version
avr-gcc (GCC) 4.5.3
>avr-objcopy --version
GNU objcopy (GNU Binutils) 2.20.1.20100303


ЧСХ, те же версии тулзов в mint 11 64bit линкуют всё на ура.

Я неправ в опциях avr-objcopy или это баг в тулзах?
И (риторическое) что делать? sm.gif
Сергей Борщ
В опциях avr-objcopy надо указать целевую архитектуру (avr:51), но навскидку не скажу как именно, какими ключами это сделать.
LordVader
Цитата(Сергей Борщ @ Oct 7 2012, 21:52) *
В опциях avr-objcopy надо указать целевую архитектуру (avr:51), но навскидку не скажу как именно, какими ключами это сделать.

"-O elf32-avr" -- разве не указание архитектуры?


Прочёл ман и дошло...
Сергей, спасибо за подсказку.
добавил в avr-objcopy "-B avr:51" и всё слинковалось.
alx2
Цитата(LordVader @ Oct 7 2012, 23:01) *
"-O elf32-avr" -- разве не указание архитектуры?
Нет, это указание формата.
-O --output-target <bfdname> Create an output file in format <bfdname>
LordVader
Остаётся вопрос, почему в другом дистрибе ровно те же версии бинутилей всё линковали без -B.
Собраны с разными настройками?
alx2
Цитата(LordVader @ Oct 8 2012, 21:26) *
Остаётся вопрос, почему в другом дистрибе ровно те же версии бинутилей всё линковали без -B.
Собраны с разными настройками?

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