Easyelectronics.ru

Электроника для всех
Текущее время: 27 сен 2020, 03:12

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: GCC, ar и stm32
СообщениеДобавлено: 08 мар 2012, 19:10 
Старожил
Аватара пользователя

Зарегистрирован: 11 мар 2010, 12:44
Сообщения: 1157
Откуда: Default city
Собираю прошивку для МК STM32
В МК в начале флеша должна идти таблица прерываний. Разработчики чипа поставляют библиотеку, в которой есть асмовый файл с этой таблицой и скрипт линковщика для того, чтобы засунуть её в начало.
Так вот: надоело мне собирать этот файл с проектом, решил засунуть его в библиотеку. Собрал я библиотеку, запаковал ar.

Линкую прошивку:

# arm-none-eabi-gcc -o fw.elf main.o lib/libstm32fw.a -Wl,--gc-sections,-Map=fw/main.map,-cref -T stm32.ld

Нет таблицы. Бинарник пустой.

Думаю, косяк. Вытаскиваю из архива ar -x объектник, содержащий нужную таблицу, и линкую прошивку:

# arm-none-eabi-gcc -o fw.elf main.o lib/startup_stm32f10x_md_vl.o lib/libstm32fw.a -Wl,--gc-sections,-Map=fw/main.map,-cref -T stm32.ld

Всё ок.

Дорогие знатоки, внимание вопрос: какого художника^W почему тако происходит, и как сделать архив так, чтобы линковка была успешной.

_________________
Не дай Бог увидеть нубский ЛУТ, бессмысленный и беспощадный
В МК "на порядок" - это "в два раза"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GCC, ar и stm32
СообщениеДобавлено: 08 мар 2012, 23:59 
Старожил

Зарегистрирован: 01 июл 2010, 15:30
Сообщения: 473
Откуда: Энгельс
А разьве библиотеки не с опцией -l линкуются?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GCC, ar и stm32
СообщениеДобавлено: 09 мар 2012, 00:06 
Старожил
Аватара пользователя

Зарегистрирован: 11 мар 2010, 12:44
Сообщения: 1157
Откуда: Default city
Так ведь кроме ассемблерного блока, все остальное работает. Когда я линкую файл с объектником, вытащенным из библиотеки, прошивка прекрасно работает.

_________________
Не дай Бог увидеть нубский ЛУТ, бессмысленный и беспощадный
В МК "на порядок" - это "в два раза"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GCC, ar и stm32
СообщениеДобавлено: 09 мар 2012, 19:27 
Старожил

Зарегистрирован: 03 мар 2010, 14:10
Сообщения: 1514
Откуда: Беларусь, Минск
Библиотеки должны идти первыми в списке параметров (до объектных файлов). В середину их сувать никак нельзя. И да, лучше их линковать через -l, а путь к библиотеке через -L.

upd.Наоборот (помнил что порядок важен, но какой - забыл), сначало все объектные файлы, а потом все библиотеки
http://tldp.org/HOWTO/Program-Library-H ... aries.html
Цитата:
Be careful about the order of the parameters when using gcc; the -l option is a linker option, and thus needs to be placed AFTER the name of the file to be compiled. This is quite different from the normal option syntax. If you place the -l option before the filename, it may fail to link at all, and you can end up with mysterious errors.
Если одна библиотека зависит от другой, то зависимая должна идти раньше зависящей в списке параметров, так как библиотеки сканируются один раз (как идут в списке параметров). Если две библиотеки зависят друг от друга, то стоит либо пересмотреть их состав, либо упоминать одну из них дважды : -lA -lB -lA.


Последний раз редактировалось amx 10 мар 2012, 11:50, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GCC, ar и stm32
СообщениеДобавлено: 09 мар 2012, 21:01 
Старожил

Зарегистрирован: 10 авг 2011, 19:26
Сообщения: 632
переписал таблицу прерываний и стартап-код на С, проблем с компиляцией/линковкой нет


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GCC, ar и stm32
СообщениеДобавлено: 13 мар 2012, 19:16 
Заглядывает иногда

Зарегистрирован: 12 авг 2010, 01:08
Сообщения: 40
reptile, аналогично, выдрал из ATollic и использую с нативным gcc но есть существенное НО! размер вырос ужасно.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB