allsettingsdone 0 28 февраля, 2016 Опубликовано 28 февраля, 2016 (изменено) · Жалоба Мой первый опыт с 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 Как я понял, линкер пытается найти линкер скрипт у себя в папках компилятора и не принимает линкер скрипт который я ему передаю. Как это правильно сделать? Изменено 28 февраля, 2016 пользователем allsettingsdone Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 14 28 февраля, 2016 Опубликовано 28 февраля, 2016 · Жалоба Это флаг линкера. Чтобы gcc передал его линкеру, попробуйте его указать через "-Wl," : -Wl,-Tmsp430f5529.ld Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
allsettingsdone 0 28 февраля, 2016 Опубликовано 28 февраля, 2016 (изменено) · Жалоба Это флаг линкера. Чтобы 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' Изменено 28 февраля, 2016 пользователем allsettingsdone Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 14 28 февраля, 2016 Опубликовано 28 февраля, 2016 · Жалоба cannot find (x86)/sublimetext/msp430-gcc/bin/../lib/gcc/../../msp430/lib/ldscripts/msp430f5529/: No such file or directory А, у вас с путями нелады. Поставьте кавычки вокруг путей с пробелами. Хотя вам некуда. Тогда переставьте всё в путь без пробелов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
allsettingsdone 0 28 февраля, 2016 Опубликовано 28 февраля, 2016 (изменено) · Жалоба А, у вас с путями нелады. Поставьте кавычки вокруг путей с пробелами. Хотя вам некуда. Тогда переставьте всё в путь без пробелов. Я не пойму почему он лезет в по этому пути, ведь файл с линкер скриптом лежит рядом с makefile (( А, у вас с путями нелады. Поставьте кавычки вокруг путей с пробелами. Хотя вам некуда. Тогда переставьте всё в путь без пробелов. Сделал так как вы советовали, теперь в выводе линковщик ругается так: 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. (скрипт во вложении) msp430f5529.zip Изменено 28 февраля, 2016 пользователем allsettingsdone Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
allsettingsdone 0 28 февраля, 2016 Опубликовано 28 февраля, 2016 · Жалоба Мне удалось нормально собрать проект с линкер файлом, но с использованием другого тулчейна (GCC с сайта ti). В этом тулчейне экзешники названы по типу "msp-elf-gcc" или "msp-elf-as" и он весит около 520 МБ. В то же время в другом тулчейне они называются "msp-gcc" или "msp-as" и он весит около 125 МБ. Почему между ними такая разница и какой тулчейн следует использовать и где его лучше взять? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 14 29 февраля, 2016 Опубликовано 29 февраля, 2016 · Жалоба Я не пойму почему он лезет в по этому пути, ведь файл с линкер скриптом лежит рядом с makefile (( Он не скрипт не находит, а что-то своё. Видимо, где-то внутри не учтена возможность наличия пробелов в пути. Сделал так как вы советовали, теперь в выводе линковщик ругается так: 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 есть такая секция, а складывать её некуда. Либо сделайте в своём скрипте такую секцию, либо не линкуйте стандартный стартовый код (придётся написать свой). Почему между ними такая разница и какой тулчейн следует использовать и где его лучше взять? Тут не подскажу, давно не работал с msp430. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
allsettingsdone 0 5 марта, 2016 Опубликовано 5 марта, 2016 · Жалоба Он не скрипт не находит, а что-то своё. Видимо, где-то внутри не учтена возможность наличия пробелов в пути. Потому и ругается. В crt0 есть такая секция, а складывать её некуда. Либо сделайте в своём скрипте такую секцию, либо не линкуйте стандартный стартовый код (придётся написать свой). Тут не подскажу, давно не работал с msp430. Антоха, спасибо тебе за помощь. Можно у тебя поинтересоваться, откуда у тебя такой богатый опыт во встраиваемых системах? Ты постоянно с этим работаешь на работе или это хобби? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 14 5 марта, 2016 Опубликовано 5 марта, 2016 · Жалоба И работа, и хобби. На работе я чисто программист, а в качестве хобби делаю простенькие электронные устройства. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
allsettingsdone 0 5 марта, 2016 Опубликовано 5 марта, 2016 · Жалоба И работа, и хобби. На работе я чисто программист, а в качестве хобби делаю простенькие электронные устройства. Понятно. Просто за последние пол года вы несколько раз мне очень помогли тут. И дело тут не в этом, я стараюсь всегда найти ответ сам и пишу тут только в крайних случаях. Но вы просто мой пример для подражания и кумир. Спасибо вам за всё. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 14 5 марта, 2016 Опубликовано 5 марта, 2016 · Жалоба И вам спасибо за добрые слова. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться