Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сборка mspgcc
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
Сергей Борщ
Итак. Оно собралось. Даже компилирует. Пока обнаружил один косяк - gcc не подлинковывает автоматом crt430x261x.o. Для 241х все нормально. Ошибку исправил, пошлю им патч - судя по рассылке там началась некоторая активность. Не нравится, что собирается оно из цыгвина. Если кто имеет опыт легкого перевода сборки из-под цыгвина на MinGW - буду благодарен. Еще не понравилось - все файлы исходников и документации в сборке под винду имеют линуксовые переводы строк. Неплохо бы их конвертить при генерации инсталятора.
-------------------------------------------------
Инструкция, если кому-то захочется собрать тоже.

1) Ставим cygwin (желательно в c:\cygwin, иначе придется править файлы .nsi)
2) Запускаем setup от cygwin, проверяем, что стоят
cvs,
binutils,
gcc,
libintl2 (в ней живет cygintl-2.dll)
diffutils
patch
!!!! Проверяем, что не стоит python(чтобы вызывался python из виндовса, в котором есть py2exe. py2exe под цыгвин не бывает)
3) Ставим под винду:
Python: http://www.python.org/download/
py2exe: http://sourceforge.net/project/py2exe/
pywin32: http://sourceforge.net/projects/pywin32/
NSIS: http://puzzle.dl.sourceforge.net/sourcefor...-2.37-setup.exe
4) Вытягиваем исходники из cvs:
mkdir mspgcc/sf
cd mspgcc/sf

export CVSROOT=:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc
export CVS_RSH=ssh
cvs login (на запрос пароля жмем Enter)
cvs checkout .
5) создаем в цыгвине директорию /opt/mspgcc (не знаю зачем, но так написано в их инструкции)
mkdir /opt/mspgcc
6) (этот шаг пропустить, патчи уже внесены в cvs репозиторий mspgcc) копируем патчи в ~/mspgcc/sf/packages/patches отсюда: http://homepages.inf.ed.ac.uk/mbarnes/msp_patch/
makefile сохраняем в ~/mspgcc/sf/packages
7) скачиваем с сайта и кладем в ~/mspgcc/sf/packaging файлы, которые пока не строятся автоматически:
mspgcc-faq.pdf, mspgcc-manual.pdf.
msp430-gdbproxy.exe
msp430.dll
8) создаем директории:
make folders
9) у меня wget отказался скачивать исходники (я за проксей), поэтому исходники (binutils-2.17.tar.bz2, gcc-core-3.2.3.tar.bz2, gcc-g++-3.2.3.tar.bz2) я скачал с http://ftp.gnu.org/gnu в ~/mspgcc/packages/archives вручную оперой.
gdb-6.0.tar.gz2 лежит на ftp://ftp.sources.redhat.com/pub/gdb/old-releases
10) Если python версии 2.5 или выше, то:
- удаляем в ~/mspgcc/sf/packages/mspgcc-full-install.nsi ссылки на zlib.py
- заменяем ссылки:
python24.dll -> python25.dll (или на соответствующий версии питона)
PyWinTypes24.dll -> PyWinTypes25.dll ( --//-- )
Если cygwin ставили не в c:\cygwin, то правим ссылки на него в mspgcc-base.nsh, mspgcc-full-install.nsi
11) идем в ~/mspgcc/packages и запускаем строительство:
make build-installer
klen
Цитата(Сергей Борщ @ May 16 2008, 20:44) *
.
Если кто имеет опыт легкого перевода сборки из-под цыгвина на MinGW - буду благодарен.

а проблема в чем?
все также
Сергей Борщ
Цитата(klen @ May 17 2008, 11:37) *
а проблема в чем?
все также
Ну например вот:
Код
c:/serzh/MSPGCC/sf/PACKAG~1/build/gcc-3.2.3/gcc/./collect2.c:461: undefined reference to `kill'
c:/serzh/MSPGCC/sf/PACKAG~1/build/gcc-3.2.3/gcc/./collect2.c:461: undefined reference to `kill'
collect2.o: In function `scan_prog_file':
c:/serzh/MSPGCC/sf/PACKAG~1/build/gcc-3.2.3/gcc/./collect2.c:2107: undefined reference to `pipe'
c:/serzh/MSPGCC/sf/PACKAG~1/build/gcc-3.2.3/gcc/./collect2.c:2130: undefined reference to `fork'
MrYuran
Решил повторить этот подвиг.
Вопрос по п.2
Цитата
2) Запускаем setup от cygwin, проверяем, что стоят cvs, binutils, gcc, libintl2 (в ней живет cygintl-2.dll) diffutils patch

Где проверяем и как?
Сорри за тупые вопросы, до меня просто как до жирафа обычно доходит...
А поколупать хочется...
Сергей Борщ
Цитата(MrYuran @ Dec 30 2008, 09:53) *
Решил повторить этот подвиг.
Вопрос по п.2
При запуске setup он предложит выбрать устанавливаемые пакеты. Вот там и убедиться, что названные пакеты установлены. Этот сетап можно запускать сколько угодно раз, добавляя/убирая пакеты.

Вообще, эта инструкция несколько устарела. Сейчас mspgcc собирается не под cygwin, а под msys. Поэтому технология несколько изменилась.
1) Ставите msys, mingw32, python
2) cvs -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc login
3) в TortoiseCVS проходит cvs -z3 -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc co .
3a) с командной строки приходится вытягивать каждый модуль отдельно:
Код
cvs -z3 -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc co packaging
cvs -z3 -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc co gcc
cvs -z3 -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc co msp430-libc
cvs -z3 -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc co docs
cvs -z3 -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc co libraries
cvs -z3 -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc co libmspgcc
cvs -z3 -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc co python

4) в packaging добавляю в makefile в самое начало строчки
Код
WINDIR=1
export WINDIR
MSYSCON=1
export MSYSCON
PWD=$(shell pwd)

5) make folders
6) в создавшуюся packaging/archives копируем binutils-2.18.tar.bz2, gcc-core-3.2.3.tar.bz2, gcc-g++-3.2.3.tar.bz2, gdb-6.8.tar.bz2
7) make build
в packaging/build/installed получается собранный пакет, но без инсталятора. Его можно копировать в нужное место и прописывать в path путь к его папке bin. Или не копировать.
Инсталятор пока не освоил - не смог с налета собрать документацию.
MrYuran
Цитата(Сергей Борщ @ Dec 30 2008, 14:12) *
Вообще, эта инструкция несколько устарела. Сейчас mspgcc собирается не под cygwin, а под msys. Поэтому технология несколько изменилась.
1) Ставите msys, mingw32, python

Откуда такая информация?
Официальная инструкция, датированная февралём 2009, об этом умалчивает. Там правда, предлагается всё скачать с редхэта и гну.орг, может, это оно и есть, я пока в таких тонкостях не ориентируюсь...
Цитата
2) cvs -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc login

Вот что получилось:
Код
C:\Program Files\CVSNT>cvs -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsr
oot/mspgcc login
Logging in to :pserver:anonymous@mspgcc.cvs.sourceforge.net:2401:/cvsroot/mspgcc

CVS Password: <Enter>
cvs [login aborted]: Error reading from server mspgcc.cvs.sourceforge.net: 0: No
such file or directory

C:\Program Files\CVSNT>

У меня подозрение, что сисадмин порты режет...
Насколько я понимаю, нужно открыть порт 2401?
########
Перетёр с админом, картинка поменялась:
Код
CVS Password:
connect to mspgcc.cvs.sourceforge.net:2401 failed: Попытка установить соединение
была безуспешной, т.к. от другого компьютера за требуемое время не получен нужн
ый отклик, или было разорвано уже установленное соединение из-за неверного откли
ка уже подключенного компьютера.
C:\Program Files\CVSNT>


на -z3 такая же реакция.

Ладно, попробую ещё дома. Там сам себе одмин smile.gif
Сергей Борщ
Цитата(MrYuran @ Apr 3 2009, 12:00) *
Откуда такая информация?
Официальная инструкция, датированная февралём 2009, об этом умалчивает. Там правда, предлагается всё скачать с редхэта и гну.орг, может, это оно и есть, я пока в таких тонкостях не ориентируюсь...
Из дистрибутива пропал cygwin.dll, зато появился msys-1.0.dll. В патч binutils для 430x включена правка objdump именно для msys. В глобальном makefile bp packaging есть строки "if MSYSCON". Да и сам я его так собираю.
Цитата(MrYuran @ Apr 3 2009, 12:00) *
Код
connect to mspgcc.cvs.sourceforge.net:2401 failed: Попытка установить соединение


была безуспешной, т.к. от другого компьютера за требуемое время не получен нужн
ый отклик, или было разорвано уже установленное соединение из-за неверного откли
ка уже подключенного компьютера.
C:\Program Files\CVSNT>
А вы не через проксю ходите случайно? У меня аналогичное поведение дома. Через проксю cvs в режиме pserver не работает. Точнее ходят слухи, что работает cvs -d:pserver;proxy=proxyhost;proxyport=8080:username@somedomain.tld: но мне из дома так и не удалось.
MrYuran
Цитата(Сергей Борщ @ Apr 3 2009, 15:19) *
А вы не через проксю ходите случайно? У меня аналогичное поведение дома. Через проксю cvs в режиме pserver не работает. Точнее ходят слухи, что работает cvs -d:pserver;proxy=proxyhost;proxyport=8080:username@somedomain.tld: но мне из дома так и не удалось.

Да, через корпоративную проксю sad.gif
Ну да бог с ним. Дома проверю. Хотя и там наверняка что-нето прикручено (JDSL™)

Ещё вот давно такой вопрос мучает: почему mspgcc "засохло" на версии GCc 3.4 ?
Почему AVR-GCC (и WinAVR) включен в основной состав и шагает в ногу с основным проектом?
Что за дискриминация?
klen
Цитата(MrYuran @ Apr 3 2009, 15:08) *
Ещё вот давно такой вопрос мучает: почему mspgcc "засохло" на версии GCc 3.4 ?
Почему AVR-GCC (и WinAVR) включен в основной состав и шагает в ногу с основным проектом?
Что за дискриминация?


оно не само шагает, это мы c Вами его и шагаем smile.gif, если mspgcc "никто его шагать" нехочет то наверно он не сильно нужен...
Сергей Борщ
Цитата(MrYuran @ Apr 3 2009, 15:08) *
Ещё вот давно такой вопрос мучает: почему mspgcc "засохло" на версии GCc 3.4 ?
Почему AVR-GCC (и WinAVR) включен в основной состав и шагает в ногу с основным проектом?
И с каждым обновлением avr-gcc появляются стоны "проект стал больше". Где-то в рассылке по mspgcc проскакивало обсуждение, резюме было примерно таким - с точки зрения компактности кода gcc 3.x лучше, а поскольку в embedded-устройствах память - весьма ценный ресурс, то переход на 4.x был признан непреспективным.
MrYuran
Цитата(MrYuran @ Apr 3 2009, 16:08) *
Ну да бог с ним. Дома проверю.

Как и предполагалось, дома всё прошло на ура.
Черепашка с точкой вместо имени модуля выкачала из репозитория всё что только можно за минуту.

Ладно, идём далее.
Выдержка из официальной инструкции:
Цитата
tar --bzip2 -xf binutils-2.19.tar.bz2 //Распаковываем?
mkdir build-binutils //Создаём build-binutils
cd binutils-2.10 //Переходим в binutils-2.10 (а откуда оно взялось?)
patch -p1 < ../packaging/patches/binutils-2.19.patch //Чё-то патчим
cd ../build-binutils //Переходим в папку build-binutils (пустую?)
../binutils-2.19/configure --target=msp430 --prefix=/usr/local/msp430 //Не понимаю
make //Чё-то собираем
su //? Я так понял в винде не нужно
make install //Тоже непонятно

Понятно, конечно, что сначала нужно хотя бы бегло ознакомиться с общими понятиями гнушных технологий, но хочется прям вот щас снаскоку пусть даже обезьянкиным пошаговым методом чего-нибудь сотворить, а потом уже методом научных тыков исследовать вглубь и вширь.
Сергей Борщ
Цитата(MrYuran @ Apr 6 2009, 07:37) *
Понятно, конечно, что сначала нужно хотя бы бегло ознакомиться с общими понятиями гнушных технологий, но хочется прям вот щас снаскоку пусть даже обезьянкиным пошаговым методом чего-нибудь сотворить, а потом уже методом научных тыков исследовать вглубь и вширь.
Код
cvs up -r MSP430X
cd packaging
make folders binutils gcc gdb
Получаете построенный инструмент в packaging/build/installed. Поддержка 430Х пока привязана к binutils 2.18, впрочем он должен все необходимое выкачать сам.
mdmitry
Цитата(Сергей Борщ @ Dec 30 2008, 14:12) *
Код
cvs -z3 -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc co libmspgcc

Не находит. При просмотре по веб-интерфейсу не видно такого пакета.
Сергей Борщ
Цитата(mdmitry @ Oct 4 2009, 01:14) *
Не находит. При просмотре по веб-интерфейсу не видно такого пакета.
То ли я ошибся, то ли что-то изменилось, но для строительства libmspgcc используется модуль jtag:
cvs -z3 -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc co jtag
Но он вам скорее всего не нужен - это работа со старыми кристаллами, поддержки новых в обозримом будущем не будет.
mdmitry
Цитата(Сергей Борщ @ Oct 5 2009, 12:38) *
То ли я ошибся, то ли что-то изменилось, но для строительства libmspgcc используется модуль jtag:
cvs -z3 -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc co jtag
Но он вам скорее всего не нужен - это работа со старыми кристаллами, поддержки новых в обозримом будущем не будет.

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