|
|
  |
Как правильно передать компилятору скрипт линкера? |
|
|
|
Feb 28 2016, 17:17
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 22-01-13
Пользователь №: 75 284

|
Цитата(AHTOXA @ Feb 28 2016, 16:09)  Это флаг линкера. Чтобы gcc передал его линкеру, попробуйте его указать через "-Wl," : -Wl,-Tmsp430f5529.ld То же самое: msp430-gcc -mmcu=msp430f5529 -Wl,-Tmsp430f5529.ld -o blink.elf blink.c c:/program files (x86)/sublimetext/msp430-gcc/bin/../lib/gcc/msp430/4.6.3/../../../../msp430/bin/ld.exe: cannot find files: No such file or directory c:/program files (x86)/sublimetext/msp430-gcc/bin/../lib/gcc/msp430/4.6.3/../../../../msp430/bin/ld.exe: cannot find (x86)/sublimetext/msp430-gcc/bin/../lib/gcc/../../msp430/lib/ldscripts/msp430f5529/: No such file or directory collect2: ld returned 1 exit status А вот без запятой: msp430-gcc -mmcu=msp430f5529 -Wl -Tmsp430f5529.ld -o blink.elf blink.c cc1.exe: error: unrecognized command line option '-Wl'
Сообщение отредактировал allsettingsdone - Feb 28 2016, 17:18
|
|
|
|
|
Feb 28 2016, 20:04
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 22-01-13
Пользователь №: 75 284

|
Цитата(AHTOXA @ Feb 28 2016, 22:03)  А, у вас с путями нелады. Поставьте кавычки вокруг путей с пробелами. Хотя вам некуда. Тогда переставьте всё в путь без пробелов. Я не пойму почему он лезет в по этому пути, ведь файл с линкер скриптом лежит рядом с makefile (( Цитата(AHTOXA @ Feb 28 2016, 22:03)  А, у вас с путями нелады. Поставьте кавычки вокруг путей с пробелами. Хотя вам некуда. Тогда переставьте всё в путь без пробелов. Сделал так как вы советовали, теперь в выводе линковщик ругается так: msp430-gcc -mmcu=msp430f5529 -Tmsp430f5529.ld -o blink.elf blink.c f:/soft/sublimetext/msp430-gcc/bin/../lib/gcc/msp430/4.6.3/../../../../msp430/bin/ld.exe: error: no memory region specified for loadable section `.noinit.crt0' collect2: ld returned 1 exit status Но в линкер скрипте, который я хочу подключить, нет такой секции ".noinit.crt0". Я взял стандартный линкер скрипт с сайта ti. (скрипт во вложении)
Сообщение отредактировал allsettingsdone - Feb 28 2016, 20:07
|
|
|
|
|
Feb 28 2016, 21:35
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 22-01-13
Пользователь №: 75 284

|
Мне удалось нормально собрать проект с линкер файлом, но с использованием другого тулчейна (GCC с сайта ti). В этом тулчейне экзешники названы по типу "msp-elf-gcc" или "msp-elf-as" и он весит около 520 МБ. В то же время в другом тулчейне они называются "msp-gcc" или "msp-as" и он весит около 125 МБ.
Почему между ними такая разница и какой тулчейн следует использовать и где его лучше взять?
|
|
|
|
|
Feb 29 2016, 04:00
|

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

|
Цитата(allsettingsdone @ Feb 29 2016, 01:04)  Я не пойму почему он лезет в по этому пути, ведь файл с линкер скриптом лежит рядом с makefile (( Он не скрипт не находит, а что-то своё. Видимо, где-то внутри не учтена возможность наличия пробелов в пути. Цитата(allsettingsdone @ Feb 29 2016, 01:04)  Сделал так как вы советовали, теперь в выводе линковщик ругается так:
msp430-gcc -mmcu=msp430f5529 -Tmsp430f5529.ld -o blink.elf blink.c f:/soft/sublimetext/msp430-gcc/bin/../lib/gcc/msp430/4.6.3/../../../../msp430/bin/ld.exe: error: no memory region specified for loadable section `.noinit.crt0' collect2: ld returned 1 exit status
Но в линкер скрипте, который я хочу подключить, нет такой секции ".noinit.crt0". Я взял стандартный линкер скрипт с сайта ti. (скрипт во вложении) Потому и ругается. В crt0 есть такая секция, а складывать её некуда. Либо сделайте в своём скрипте такую секцию, либо не линкуйте стандартный стартовый код (придётся написать свой). Цитата(allsettingsdone @ Feb 29 2016, 02:35)  Почему между ними такая разница и какой тулчейн следует использовать и где его лучше взять? Тут не подскажу, давно не работал с msp430.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Mar 5 2016, 10:05
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 22-01-13
Пользователь №: 75 284

|
Цитата(AHTOXA @ Feb 29 2016, 07:00)  Он не скрипт не находит, а что-то своё. Видимо, где-то внутри не учтена возможность наличия пробелов в пути.
Потому и ругается. В crt0 есть такая секция, а складывать её некуда. Либо сделайте в своём скрипте такую секцию, либо не линкуйте стандартный стартовый код (придётся написать свой).
Тут не подскажу, давно не работал с msp430. Антоха, спасибо тебе за помощь. Можно у тебя поинтересоваться, откуда у тебя такой богатый опыт во встраиваемых системах? Ты постоянно с этим работаешь на работе или это хобби?
|
|
|
|
|
Mar 5 2016, 16:53
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 22-01-13
Пользователь №: 75 284

|
Цитата(AHTOXA @ Mar 5 2016, 15:06)  И работа, и хобби. На работе я чисто программист, а в качестве хобби делаю простенькие электронные устройства. Понятно. Просто за последние пол года вы несколько раз мне очень помогли тут. И дело тут не в этом, я стараюсь всегда найти ответ сам и пишу тут только в крайних случаях. Но вы просто мой пример для подражания и кумир. Спасибо вам за всё.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|