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

 
 
 
Reply to this topicStart new topic
> Как правильно передать компилятору скрипт линкера?
allsettingsdone
сообщение Feb 28 2016, 12:43
Сообщение #1


Участник
*

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



Мой первый опыт с MSP430. Перед написанием makefile я решил просто проверить/поиграться с платой MSP430 Launchpad (f5529).
В одной папке лежат следующие файлы:
- blink.c
- msp430f5529.ld

Я пытаюсь выполнить в этой папке в командной строке:
msp430-gcc -mmcu=msp430f5529 -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

Как я понял, линкер пытается найти линкер скрипт у себя в папках компилятора и не принимает линкер скрипт который я ему передаю. Как это правильно сделать?

Сообщение отредактировал allsettingsdone - Feb 28 2016, 12:43
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 28 2016, 13:09
Сообщение #2


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

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



Это флаг линкера. Чтобы gcc передал его линкеру, попробуйте его указать через "-Wl," :
-Wl,-Tmsp430f5529.ld


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
allsettingsdone
сообщение Feb 28 2016, 17:17
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 28 2016, 19:03
Сообщение #4


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

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



Цитата(allsettingsdone @ Feb 28 2016, 22:17) *
cannot find (x86)/sublimetext/msp430-gcc/bin/../lib/gcc/../../msp430/lib/ldscripts/msp430f5529/: No such file or directory

А, у вас с путями нелады. Поставьте кавычки вокруг путей с пробелами. Хотя вам некуда. Тогда переставьте всё в путь без пробелов.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
allsettingsdone
сообщение Feb 28 2016, 20:04
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 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
Прикрепленные файлы
Прикрепленный файл  msp430f5529.zip ( 4.42 килобайт ) Кол-во скачиваний: 20
 
Go to the top of the page
 
+Quote Post
allsettingsdone
сообщение Feb 28 2016, 21:35
Сообщение #6


Участник
*

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



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

Почему между ними такая разница и какой тулчейн следует использовать и где его лучше взять?
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 29 2016, 04:00
Сообщение #7


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

Группа: Свой
Сообщений: 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.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
allsettingsdone
сообщение Mar 5 2016, 10:05
Сообщение #8


Участник
*

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



Цитата(AHTOXA @ Feb 29 2016, 07:00) *
Он не скрипт не находит, а что-то своё. Видимо, где-то внутри не учтена возможность наличия пробелов в пути.


Потому и ругается. В crt0 есть такая секция, а складывать её некуда. Либо сделайте в своём скрипте такую секцию, либо не линкуйте стандартный стартовый код (придётся написать свой).


Тут не подскажу, давно не работал с msp430.


Антоха, спасибо тебе за помощь.
Можно у тебя поинтересоваться, откуда у тебя такой богатый опыт во встраиваемых системах? Ты постоянно с этим работаешь на работе или это хобби?
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Mar 5 2016, 12:06
Сообщение #9


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

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



И работа, и хобби. На работе я чисто программист, а в качестве хобби делаю простенькие электронные устройства.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
allsettingsdone
сообщение Mar 5 2016, 16:53
Сообщение #10


Участник
*

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



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

Понятно. Просто за последние пол года вы несколько раз мне очень помогли тут. И дело тут не в этом, я стараюсь всегда найти ответ сам и пишу тут только в крайних случаях. Но вы просто мой пример для подражания и кумир. Спасибо вам за всё.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Mar 5 2016, 19:47
Сообщение #11


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

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



И вам спасибо за добрые слова.


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

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

 


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


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