Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сборка GNU toolchains, может кто подсказать?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
Страницы: 1, 2
Krom
Озадачился я самостоятельной сборкой gnu toolchains.

В Линуксе я мягко говоря новичок, поэтому пару недель ушло на поиск и усвоение информации про
что и как делать. Использую дистрибутив Debian Etch 4.0r1, в нем присутствуют свои заморочки,
но в принципе разобрался. Много чего почерпнул на этом форуме, но осталось пару непоняток.
Прошу знающих людей разъяснить, в свою очередь обязуюсь написать подробный манул по сборке,
потому как проити через такое оно конечно и полезно в плане навыков, но времени и нервов на
это уходит масса.

Итак, вопросы.
1. По сборке binutils вопросов нет, разобрался.
2. Далее рекомендуется собрать gcc c опцией --without-headers, потом с помощью собранного gcc
собрать newlib, и уже потом пересобрать gcc заново. Вот здесь я и застопорился. После
двухдневных плясок с бубном gcc-4.3 я собрал:

/usr/local/arm/src/build/gcc-4.3/src/configure --prefix=/usr/local/arm --target=arm-elf --disable-nls
--disable-werror --enable-threads --disable-shared --disable-win32-registry --enable-languages=c
--enable-interwork --enable-multlib --with-float=soft --disable-libssp --with-newlib --without-headers
make
make install

а вот как с его помощью собрать newlib? Пробовал конфигурировать так:

CC=arm-elf-gcc ./configure --target=arm-elf --prefix=/usr/local/arm --enable-interwork --enable-multlib

так ругаецца, говорит, что указанный компиллятор не может создавать исполняемые файлы sad.gif.
Оно вроде бы как и понятно,собран с опцией --target=arm-elf, то есть будет генерировать файлы elf,
но тогда как надо? И нужен ли вообще этот этап?

Таким вот макаром

./configure --target=arm-elf --prefix=/usr/local/arm --enable-interwork --enable-multlib

нормально конфигурится и затем собирается. Но это я так понимаю с помощью системного gcc. Может,
так и надо?
Andy Great
Дык Вы загляньте в Makefile после ./configure. Там написано какой компилер прописывается.
amw
Цитата(Krom @ May 13 2008, 12:05) *
Озадачился я самостоятельной сборкой gnu toolchains.

В Линуксе я мягко говоря новичок, поэтому пару недель ушло на поиск и усвоение информации про
что и как делать. Использую дистрибутив Debian Etch 4.0r1, в нем присутствуют свои заморочки,
но в принципе разобрался. Много чего почерпнул на этом форуме, но осталось пару непоняток.
Прошу знающих людей разъяснить, в свою очередь обязуюсь написать подробный манул по сборке,
потому как проити через такое оно конечно и полезно в плане навыков, но времени и нервов на
это уходит масса.

Вот тут http://electronix.ru/forum/index.php?showt...mp;#entry409582 я выкладывал набор скриптов и патчей для сборки. Я делал ӕто под Debian/Lenny amd64 но не вижу причин, почему бы ӕто не работало в Etch.
Цитата
Итак, вопросы.
1. По сборке binutils вопросов нет, разобрался.
2. Далее рекомендуется собрать gcc c опцией --without-headers, потом с помощью собранного gcc
собрать newlib, и уже потом пересобрать gcc заново. Вот здесь я и застопорился. После
двухдневных плясок с бубном gcc-4.3 я собрал:

Пока могу посоветовать gcc-4.2. С версией 4.3 еще не все в порядке в смысле ARM.
Цитата
/usr/local/arm/src/build/gcc-4.3/src/configure --prefix=/usr/local/arm --target=arm-elf --disable-nls
--disable-werror --enable-threads --disable-shared --disable-win32-registry --enable-languages=c
--enable-interwork --enable-multlib --with-float=soft --disable-libssp --with-newlib --without-headers
make
make install

а вот как с его помощью собрать newlib? Пробовал конфигурировать так:

CC=arm-elf-gcc ./configure --target=arm-elf --prefix=/usr/local/arm --enable-interwork --enable-multlib

так ругаецца, говорит, что указанный компиллятор не может создавать исполняемые файлы sad.gif.
Оно вроде бы как и понятно,собран с опцией --target=arm-elf, то есть будет генерировать файлы elf,
но тогда как надо? И нужен ли вообще этот этап?

По моим наблюдениям - не обязательно в случае arm-elf. Но в общем случае gcc должен "знать" libc и потому во всех случаях настоятельно рекомендуется компилить gcc дважды. Кроме того, если захотите C++ то почти без вариантов.
Цитата
Таким вот макаром

./configure --target=arm-elf --prefix=/usr/local/arm --enable-interwork --enable-multlib

нормально конфигурится и затем собирается. Но это я так понимаю с помощью системного gcc. Может,
так и надо?

Есть такая проблема. Оно пытается пртотестиь на наличие либы, для чего пытается линковать, а newlib еще нет и потому нет ни одного crt0.o. Смотрите там в патчах.
Krom
Цитата(amw @ May 13 2008, 13:18) *
Вот тут http://electronix.ru/forum/index.php?showt...mp;#entry409582 я выкладывал набор скриптов и патчей для сборки. Я делал ӕто под Debian/Lenny amd64 но не вижу причин, почему бы ӕто не работало в Etch.


Спасибо, посмотрю обязательно. Насчет патчей - все исходники я брал из репозитария Дебиан,
там тоже есть какие-то патчи. Указанные Вами патчи все равно надо ставить?

По скриптам: в tools.sh видно, что после binutils собирается промежуточная версия gcc с помощью скрипта gcc_bare.sh, а затем скриптом newlib.sh собираются newlibы. Я посмотрел этот скрипт, и нигде не увидел, где задается, каким gcc они собираются. Ткните носом если не сложно smile.gif

Да, и вопрос - исходники можно таки брать из репозитария Дебиана?
amw
Цитата(Krom @ May 13 2008, 12:50) *
Спасибо, посмотрю обязательно. Насчет патчей - все исходники я брал из репозитария Дебиан,
там тоже есть какие-то патчи. Указанные Вами патчи все равно надо ставить?

Я всегда беру исходники toolchain с gnu.org
http://ftp.gnu.org/gnu/binutils/
http://ftp.gnu.org/gnu/gcc/
http://ftp.gnu.org/gnu/glibc/
http://ftp.gnu.org/gnu/gdb/
ftp://sources.redhat.com/pub/glibc/releases
http://sourceware.org/newlib/
http://sourceware.org/insight/

Мое любимое зеркало smile.gif
ftp://ftp.heanet.ie/mirrors/ftp.gnu.org/gnu/

Цитата
По скриптам: в tools.sh видно, что после binutils собирается промежуточная версия gcc с помощью скрипта gcc_bare.sh, а затем скриптом newlib.sh собираются newlibы. Я посмотрел этот скрипт, и нигде не увидел, где задается, каким gcc они собираются. Ткните носом если не сложно smile.gif

Ну так в архиве есть папка scripts. Там все и прописано. В tools.sh в начале общие и управляющие переменные.
Обратите внимание на
Код
BINUTILS=0
GCC_BARE=0
NEWLIB=0
GCC=0
GDB=0
INSIGHT=1

Где зачение = 1 тулса собирается, 0 - нет. Ӕто для пошаговой сборки. Сначала я собираю одну тулсу. Пока не соберется правильно, потом 1 перемещаю на следующую тулсу и так пока не соберу все. Потом если надо пересобрать все, везде ставлю 1 и собираю все подряд.
Цитата
Да, и вопрос - исходники можно таки брать из репозитария Дебиана?

См. выше.
Krom
Ok. Буду дальше разбираться. А какие проблемы в gcc-4.3 в части ARM?
amw
Цитата(Krom @ May 13 2008, 13:10) *
Ok. Буду дальше разбираться. А какие проблемы в gcc-4.3 в части ARM?

Видел в списке рассылки arm.linux.org.uk.
Глюки кодогенератора ARM. Code inconsistency в некоторых случаях. Возможно уже исправили, точно не знаю. Знаю только одно - ARM не является первым в списке продвижения компилера по версиям, потому сначала появляется x86 и его вылизывают в основной ветке, а ARM идет отдельной веткой и несколько запаздывает с включением патчей в основную ветку. В принципе новейший GCC способен генрировать код для любой поддерживаемой архитектуры, но как говорится не всегда он может ӕто делать "в корпусе". Посмотрите на http://gcc.gnu.org/gcc-4.3/ архив списка рассылки и инфу о сатусе и еще в списке рассылки arm.linux.org.uk.
Krom
Судя по тому, что поддержка ARMv7 появилась только в этой версии

* Compiler and Library support for Thumb-2 and the ARMv7 architecture has been added.

выбора у меня нет, мне с Cortex M3 надо работать. Так что ничего не поделаешь.
Andy Great
Возьмите CodeSourcery уже скомпилированный.
Krom
Такие вот дела: binutils, gcc и newlib в принципе собрал. Но не совсем так, как хотелось бы sad.gif.
Дело вот чем. Если в файле t-arm-elf перед сборкой откомментировать(я имею в виду--снять символ комментария) только следующие строки:

MULTILIB_OPTIONS += mlittle-endian/mbig-endian
MULTILIB_DIRNAMES += le be
MULTILIB_MATCHES += mbig-endian=mbe mlittle-endian=mle

MULTILIB_OPTIONS += mhard-float/msoft-float
MULTILIB_DIRNAMES += fpu soft
MULTILIB_EXCEPTIONS += *mthumb/*mhard-float*

MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork
MULTILIB_DIRNAMES += normal interwork


то newlib впоследстии собирается без проблем.

Если же вдобавок к ним откомментировать еще и следующие строки
MULTILIB_OPTIONS += march=armv7
MULTILIB_DIRNAMES += thumb2
MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7*
#MULTILIB_MATCHES += march?armv7=march?armv7-a
#MULTILIB_MATCHES += march?armv7=march?armv7-r
#MULTILIB_MATCHES += march?armv7=march?armv7-m
#MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8
#MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4
MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3

то при сборке newlib выдает следующую ошибку:

make[9]: Entering directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/thumb/thumb2/newlib/libc/machine/arm'
arm-elf-gcc -B/usr/local/arm/src/build/newlib-1.16.0/arm-elf/thumb/thumb2/newlib/ -isystem /usr/local/arm/src/build/newlib-1.16.0/arm-elf/thumb/thumb2/newlib/targ-include -isystem /usr/local/arm/src/build/newlib-1.16.0/src/newlib/libc/include -B/usr/local/arm/src/build/newlib-1.16.0/arm-elf/thumb/thumb2/libgloss/arm -L/usr/local/arm/src/build/newlib-1.16.0/arm-elf/thumb/thumb2/libgloss/libnosys -L/usr/local/arm/src/build/newlib-1.16.0/src/libgloss/arm -mthumb -march=armv7 -O2 -DNO_FLOATING_POINT -DARM_RDI_MONITOR -fno-builtin -mthumb -march=armv7 -c -o lib_a-setjmp.o `test -f 'setjmp.S' || echo '../../../../../../.././src/newlib/libc/machine/arm/'`setjmp.S
../../../../../../.././src/newlib/libc/machine/arm/setjmp.S: Assembler messages:
../../../../../../.././src/newlib/libc/machine/arm/setjmp.S:123: Error: SP not allowed in register list -- `stmea a1!,{v1-v7,fp,ip,sp,lr}'
../../../../../../.././src/newlib/libc/machine/arm/setjmp.S:145: Error: SP not allowed in register list -- `ldmfd a1!,{v1-v7,fp,ip,sp,lr}'
make[9]: *** [lib_a-setjmp.o] Ошибка 1
make[9]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/thumb/thumb2/newlib/libc/machine/arm'
make[8]: *** [all-recursive] Ошибка 1
make[8]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/thumb/thumb2/newlib/libc/machine'
make[7]: *** [all-recursive] Ошибка 1
make[7]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/thumb/thumb2/newlib/libc'
make[6]: *** [all-recursive] Ошибка 1
make[6]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/thumb/thumb2/newlib'
make[5]: *** [all] Ошибка 2
make[5]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/thumb/thumb2/newlib'
make[4]: *** [multi-do] Ошибка 1
make[4]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/newlib'
make[3]: *** [all-multi] Ошибка 2
make[3]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/newlib'
make[2]: *** [all] Ошибка 2
make[2]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/newlib'
make[1]: *** [all-target-newlib] Ошибка 2
make[1]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0'
make: *** [all] Ошибка 2
krom-nix:/usr/local/arm/src/build/newlib-1.16.0#


Что за фигня? Сырые newlib? Или еще надо чего-то надо включить? Я использовал newlib-1.16.0-2 из репозитария Дебиан. Может, патчи уже какие были?
zltigo
Цитата(Krom @ May 13 2008, 11:05) *
Озадачился я самостоятельной сборкой gnu toolchains.

Moderator:
Просьба правильно выбирать раздел для постов. Тема перенесена.
amw
Цитата(Krom @ May 14 2008, 17:00) *
Если же вдобавок к ним откомментировать еще и следующие строки
[i]MULTILIB_OPTIONS += march=armv7
MULTILIB_DIRNAMES += thumb2

А newlib уже дружит с Cortex-ами?
Andy Great
klen делает дистрибутивы, так что, похоже, дружит.
Krom
Цитата(amw @ May 15 2008, 11:30) *
А newlib уже дружит с Cortex-ами?

По идее дружит, только вот собираться никак не хочет sad.gif Пляски с бубном продолжаются...
klen
Цитата(Krom @ May 15 2008, 16:34) *
По идее дружит, только вот собираться никак не хочет sad.gif Пляски с бубном продолжаются...


ниче страшного, попляшем и перестанем!
в чем пролема? пошагово соберем!
Krom
О, на вас вся надежда! help.gif
Повторюсь немного:
1. Собрал binutils. Вроде как без проблем.
2. Собираю gcc. Eсли в t-arm-elf раскомментировать строки (я правда не знаю еще, необходимо ли это, но так как работать будет нужно сэтой архитектурой, решил что нужно)
MULTILIB_OPTIONS += march=armv7
MULTILIB_DIRNAMES += thumb2
MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7*
MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3

то newlib потом отказываются собираться с ошибкой:

../../../../../../.././src/newlib/libc/machine/arm/setjmp.S: Assembler messages:
../../../../../../.././src/newlib/libc/machine/arm/setjmp.S:123: Error: SP not allowed in register list -- `stmea a1!,{v1-v7,fp,ip,sp,lr}'
../../../../../../.././src/newlib/libc/machine/arm/setjmp.S:145: Error: SP not allowed in register list -- `ldmfd a1!,{v1-v7,fp,ip,sp,lr}'
make[9]: *** [lib_a-setjmp.o] Ошибка 1
make[9]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/thumb/thumb2/newlib/libc/machine/arm'
make[8]: *** [all-recursive] Ошибка 1
make[8]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/thumb/thumb2/newlib/libc/machine'
make[7]: *** [all-recursive] Ошибка 1
make[7]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/thumb/thumb2/newlib/libc'
make[6]: *** [all-recursive] Ошибка 1
make[6]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/thumb/thumb2/newlib'
make[5]: *** [all] Ошибка 2
make[5]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/thumb/thumb2/newlib'
make[4]: *** [multi-do] Ошибка 1
make[4]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/newlib'
make[3]: *** [all-multi] Ошибка 2
make[3]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/newlib'
make[2]: *** [all] Ошибка 2
make[2]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0/arm-elf/newlib'
make[1]: *** [all-target-newlib] Ошибка 2
make[1]: Leaving directory `/usr/local/arm/src/build/newlib-1.16.0'
make: *** [all] Ошибка 2

если те строки оставить закомментаренными, собираются нормально sad.gif. Косяк я так понимаю в libc, создаваемой при сборке gcc-4.3.1, но как с этим боротся - нихт ферштеен sad.gif
Все исходники с патчами брал из репозитария Дебиан.
Может, подробнее расписать, с какими опциями собирал?
amw
Цитата(Krom @ May 15 2008, 18:12) *
Все исходники с патчами брал из репозитария Дебиан.

Тут у меня крамольная мысл появилась smile.gif
Если все с и в Дебиан, то может вот это поможет?
http://buildd.emdebian.org/
Это не совсем то, что нужно, но мало ли.
Правда сам я не пробовал.
klen
Все прально не собираецца! не должен

нада подправить ручками код функций setjmp longjmp :

Код
/* --------------------------------------------------------------------
                 int setjmp (jmp_buf);
   -------------------------------------------------------------------- */
    
    FUNC_START setjmp

    /* сохраняем по разному в armv4 и armv7  */
#ifdef __thumb2__
    stmea        a1!, { v1-v7, fp, ip, lr }
            /* сохраняем указатель стека, и тд */
    str        sp, [a1],#+4    
#else
    stmea        a1!, { v1-v7, fp, ip, sp, lr }
#endif
    
#if 0    /* Simulator does not cope with FP instructions yet.  */
#ifndef __SOFTFP__
    /* Save the floating point registers.  */
    sfmea        f4, 4, [a1]
#endif
#endif        
    /* When setting up the jump buffer return 0.  */
    mov        a1, #0

    FUNC_END setjmp
    
/* --------------------------------------------------------------------
        volatile void longjmp (jmp_buf, int);
   -------------------------------------------------------------------- */
    
    FUNC_START longjmp

    /* If we have stack extension code it ought to be handled here.  */
    
    /* Restore the registers, retrieving the state when setjmp() was called.  */
#ifdef __thumb2__
    ldmfd        a1!, { v1-v7, fp, ip, lr }
    ldr        sp, [a1],#+4
#else
    ldmfd        a1!, { v1-v7, fp, ip, sp, lr }
#endif
    
#if 0    /* Simulator does not cope with FP instructions yet.  */
#ifndef __SOFTFP__
    /* Restore floating point registers as well.  */
    lfmfd        f4, 4, [a1]
#endif
#endif    
    /* Put the return value into the integer result register.
       But if it is zero then return 1 instead.  */    
    movs        a1, a2
#ifdef __thumb2__
    it        eq
#endif
    moveq        a1, #1
amw
Цитата(Krom @ May 15 2008, 18:12) *
MULTILIB_OPTIONS += march=armv7
MULTILIB_DIRNAMES += thumb2
MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7*
MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3

то newlib потом отказываются собираться с ошибкой:

../../../../../../.././src/newlib/libc/machine/arm/setjmp.S: Assembler messages:
../../../../../../.././src/newlib/libc/machine/arm/setjmp.S:123: Error: SP not allowed in register list -- `stmea a1!,{v1-v7,fp,ip,sp,lr}'

Педварительное вскрытие показало что
1. Файл newlib/libc/machine/arm/setjmp.S содержит строку
Код
    /* Save all the callee-preserved registers into the jump buffer.  */
    stmea        a1!, { v1-v7, fp, ip, sp, lr }

Видно, что это не генерируемая, просто набранная "в лоб" срока и от архитектуры эта строка не зависит.
2. DDI0405B_arm_v7m_architecture_app_level_reference_manual.pdf
Цитата
STM{IA|EA}<c><q> <Rn>{!}, <registers>
where:
<c><q> See Standard assembler syntax fields on page A6-7.
<Rn> Specifies the base register. This register is allowed to be the SP.
! Causes the instruction to write a modified value back to <Rn>. If ! is omitted, the instruction
does not change <Rn>.
<registers>
Is a list of one or more registers, separated by commas and surrounded by { and }. It specifies
the set of registers to be stored. The registers are stored with the lowest-numbered register
to the lowest memory address, through to the highest-numbered register to the highest
memory address.
Encoding T2 does not support a list containing only one register. If an STMIA instruction with
just one register <Rt> in the list is assembled to Thumb and encoding T1 is not available, it
is assembled to the equivalent STR<c><q> <Rt>,[<Rn>]{,#-4} instruction.
The SP and PC cannot be in the list.

То биш на cortex-m3 SP не может быть в списке сохраняемых регистров.

Однако этот файл не, а точнее эта команда, записана в чистом виде а не генерируется, или иным способом (не)зависит от конкретной архитектуры.
А должна зависеть, по моему.

Вывод - нужно обращаться за разъяснениями в http://sourceware.org/newlib/

2klen: У Вас действительно это компилится и работает для cortex? Можно подробней про процесс сборки?

Я пробовал на
binutils-2.18
gcc-core-4.3.0
nelib-1.16.0
Все взято с gnu.org и sourceware.org/newlib/
Скрипт и патчи прилагаю.
klen
извиняюсь - забыл укаать, ессесено функции лежат в конце файла
newlib/libc/machine/arm/setjmp.S

все компилируется.
тестировалось 2 способами
1. купили мы с другом тамагочи на STM32 - заливали туда - работало вроде.
2. гонял под софт-симулятором-отладчиком на CrossWorks-тоже работало юез подозрений.

я это сделал месяцев 7 назад и всем объявил - ну поробуйте на реальных задачах. Ну с тех пор все мои сборки кортех м3 поддерживают. я думал что вопросов просто нет по этому поводу.

КСТАТЕ, БРАТЬЯ КЛУБНИ!!
ЭТО Я ВАС ДОЛЖЕН СПРАШИВАТЬ -РАБОТАЕТ ТУЛЧЕЙН ИЛИ НЕТ!!
я ж не имею всего железа и все глюки не обнаружу даже тестированием.
я тока на реальных довольно сложных вычислительных задачах проверюю всею инфраструктуру средств разработки (всключая и сам микросхем) толко для LPC2103 LPC2148 Mega48/88/168/323/64/128 Cirrus EP9312. Кстате надеюсь в контексте разговора mips64 в тихую освоить.
Krom
Огромное всем спасибо, счас буду пробовать, ежели что - не обессудьте, опять приставать буду smile.gif
Железа у меня до фига всякого, правда все для ARM7 и Cortex M3, закончим со сборкой начнем тестить.
О, сразу вопрос - а insight для чего нужно и нужно ли вообще? Если нужно, с какими опциями собирать?
Смотрел,в сборках у уважаемого klen эти библиотеки отсутствуют...

Цитата(amw @ May 15 2008, 23:47) *
Скрипт и патчи прилагаю.

А расшифруйте мне, плиз, значение следующих строк из патча gcc-cortex.diff
-#MULTILIB_OPTIONS += march=armv7
-#MULTILIB_DIRNAMES += thumb2
-#MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7*
+MULTILIB_OPTIONS += march=armv7
+MULTILIB_DIRNAMES += thumb2

В принципе строчка с "+" вначале понятна, а что значит -#MULTILIB_OPTIONS += march=armv7?
Удалить строку?
Сорри за чаниковские вопросы, но в Линуксе я пока чайник и есть. Но учусь smile.gif

emdebian я смотрел, но там какой-то совсем уж debian-way способ сборки, по которому, как мне кажется, и проконсультироваться-то будет не у кого. Позже будем разбираться.
Andy Great
Цитата(Krom @ May 16 2008, 09:03) *
-#MULTILIB_OPTIONS += march=armv7
-#MULTILIB_DIRNAMES += thumb2
-#MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7*
+MULTILIB_OPTIONS += march=armv7
+MULTILIB_DIRNAMES += thumb2

В принципе строчка с "+" вначале понятна, а что значит -#MULTILIB_OPTIONS += march=armv7?
Удалить строку?

Не обращайте внимания - патчи генерятся автоматом, из диффов. Ниже она же добавляется.

ЗЫ: Пардон, не доглядел. Строки так раскомментариваются.
amw
Цитата(Krom @ May 16 2008, 09:03) *
А расшифруйте мне, плиз, значение следующих строк из патча gcc-cortex.diff
-#MULTILIB_OPTIONS += march=armv7
-#MULTILIB_DIRNAMES += thumb2
-#MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7*
+MULTILIB_OPTIONS += march=armv7
+MULTILIB_DIRNAMES += thumb2

Патчи генеряться программой diff и накладываются программой patch.
В результате работы diff получаем файл, в котором указано как из старого сделать новое.
Строки помеченные минусом впереди означают что их нужно удалить из старого, а помеченные плюсом - добавить в старое. И после такого удаления и добавления получается новое.
Для изменяемых строк (удаляемых и добавляемых) diff добавляет в начале минус или плюс, для неизменных - пробел.
При накладывании патча программой patch она по неизменяемым строкам и доп инфе начинающейся с @ находит в старом нужное место, те строки, которые помечены минусом удаляет, а те что плюсом - добавляет. И пробелы и минусы и плюсы не вносятся в результирующий файл.

2klen: Ну так вот тестирование и началось smile.gif
Так все таки не ясно как у Вас newlib собралось и действительно ли его сборка поддерживает cortex. Мож тута какя собака порылась smile.gif. У меня в этом setjmp.S тоже ошибка и она естественна, потому как процессор не поддерживает такой операции, а в newlib сие не проверяется. Может патч какой был специфический?
klen
Цитата(amw @ May 16 2008, 11:53) *
Может патч какой был специфический?


да небыло никакого пача.
1. несобрался setjmp.s
2. грусно...
3. смотру код - ага! видно где ошибка.
4. читаю доку на Cortex M3 и вижу что SP нада запихывать иным от armv4
способом
5. правим файл - добавляем "иной способ" - ветка под дефайном __thumb2
5. собираем ... о! собралось!!!
6. компилирием код и шъем - смотрим (у меня ВРОДЕБЫ РАБОТАЛО на STM Primer - рекламный тамагочи от STM c STM32)
7. Дополнительно симулируем код в симуляторе

2amw: ну и как, работает?
Krom
Итак, промежуточные результаты.
С помощью шаманского бубна, такой-то матери, и, главное, с вашей помощью beer.gif
на текущий момент удалось собрать:
binutils-2.18.1 (2.18.50 не захотели собираться, ну и фиг с ними пока)
gcc-4.3.1
newlib-1.16.0 (только с помощью ручной правки, предложенной klen)

Застопорился на сборке gdb-6.8. Собираю с опциями
--prefix=/usr/local/arm --target=arm-elf --enable-interwork --enable-multlib

при сборке выдает следующую ошибку:
\configure: error: no termcap library found
make[1]: *** [configure-gdb] Ошибка 1
make[1]: Leaving directory `/usr/local/arm/src/build/gdb-6.8'
make: *** [all] Ошибка 2


Чего это он? Попробовал поиском, действительно - нет такой библиотеки, тока win32-termcap.c. Это оно?

Пока попробую собрать 6.7. Попробовал. Результат тот же. Что за termcap такая? Где ее взять? help.gif
Cyber_RAT
* sys-libs/libtermcap-compat
Homepage: http://www.catb.org/~esr/terminfo/
Description: Compatibility package for old termcap-based programs
может этой библиотечки не хватает?
Krom
да библиотека есть, как ее только подсунуть... и куда...
Собираться она не хочет, требует altgcc.
Скачанный бинарный пакет с этой библиотекой тоже не устанавливается из-за зависимостей. Наверное, должен быть другой путь, люди же (/me посматривает в сторону более опытных товарищей smile.gif ) как-то собирают
amw
Цитата(klen @ May 16 2008, 12:10) *
2amw: ну и как, работает?

Нет. Этого оказалось недостаточно.
Код
arm-elf-gcc -B/home/amw/devel/ARM/arm-elf-cortex/tools/build/newlib/arm-elf/newlib/ -isystem /home/amw/devel/ARM/arm-elf-cortex/tools/build/newlib/arm-elf/newlib/targ-include -isystem /home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/newlib/libc/include -B/home/amw/devel/ARM/arm-elf-cortex/tools/build/newlib/arm-elf/libgloss/arm -L/home/amw/devel/ARM/arm-elf-cortex/tools/build/newlib/arm-elf/libgloss/libnosys -L/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm -O2 -g -g -O2   -I. -I/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/.. -O2 -g -g -O2    -mthumb -march=armv7 -c /home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S
/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S: Assembler messages:
/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:85: Error: thumb conditional instrunction not in IT block
/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:91: Error: selected processor does not support requested special purpose register %x -- `mrs r2,CPSR'
/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:94: Error: Thumb encoding does not support an immediate here -- `msr CPSR_c,#0xD1'
/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:99: Error: Thumb encoding does not support an immediate here -- `msr CPSR_c,#0xD7'
/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:103: Error: Thumb encoding does not support an immediate here -- `msr CPSR_c,#0xDB'
/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:107: Error: Thumb encoding does not support an immediate here -- `msr CPSR_c,#0xD2'
/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:111: Error: Thumb encoding does not support an immediate here -- `msr CPSR_c,#0xD3'
/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:118: Error: Thumb load/store multiple does not support {reglist}^ -- `ldmdb r3,{sp}^'
/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:121: Error: selected processor does not support requested special purpose register -- `msr CPSR_c,r2'
make[5]: *** [crt0.o] Помилка 1

На счет работает - нескажу, нет кортекса. А вот перекомпилить это могем smile.gif. Правда пока безуспешно.

Цитата(Krom @ May 16 2008, 14:08) *
да библиотека есть, как ее только подсунуть... и куда...
Собираться она не хочет, требует altgcc.
Скачанный бинарный пакет с этой библиотекой тоже не устанавливается из-за зависимостей. Наверное, должен быть другой путь, люди же (/me посматривает в сторону более опытных товарищей smile.gif ) как-то собирают

Это в дебиан?
тогда
apt-get install ncurses
Krom
Цитата(amw @ May 16 2008, 15:20) *
тогда
apt-get install ncurses


установка libncurses5-dev помогла.

То есть на текущий момент собрано практически все. Сегодня буду прикручивать к Эклипсу, ну а потом пробовать на железке - у меня STM3210B-EVAL (это в первую очередь пойдет), STR710-EVAL и LPC2468 OEM Boad. Бум тестить smile.gif.

Мануал, как и обещал, за мной. Думаю, лишним на форуме не будет.

Да, еще вопрос. insight - нужны будут при работе в Eclipse-GDB-...?
Если да, то как их собирать?
amw
Цитата(Krom @ May 16 2008, 14:59) *
установка libncurses5-dev помогла.

То есть на текущий момент собрано практически все. Сегодня буду прикручивать к Эклипсу, ну а потом пробовать на железке - у меня STM3210B-EVAL (это в первую очередь пойдет), STR710-EVAL и LPC2468 OEM Boad. Бум тестить smile.gif.

Мануал, как и обещал, за мной. Думаю, лишним на форуме не будет.

Да, еще вопрос. insight - нужны будут при работе в Eclipse-GDB-...?
Если да, то как их собирать?

insight это как бы "графический gdb". Для работы с eclipse он не нужен. Для eclipse нужен какраз gdb.
После сборки insight появится его собственный arm-elf-gdb. Хотя по чесному он не его собственный, а пропатченный и включенный в insight "просто" gdb.
Krom
Цитата(amw @ May 16 2008, 16:10) *
Для работы с eclipse он не нужен. Для eclipse нужен какраз gdb.

Спасибо, понял. Это радует, а то бы еще на них день-два потратить пришлось.
amw
Нашел вот это
http://www.nabble.com/arm-elf-thumb-2-issu...td16732137.html
Будем проверять.

Это не роверял.
Но взял исходник с CVS. Собралось.
Есть мультилиб на thumb2.
Проверить не могу - нет cortex. Есть инфа, что тут еще не все в порядке.
http://sourceware.org/cgi-bin/cvsweb.cgi/s...0.S?cvsroot=src
Как бы его проверить.
Патчей на этот исходник не накладывал, компилил тем же скриптом, что и приводил выше только без патчей.
Krom
А примера makefile для STM32 под рукой ни у кого нет случаем? Или простенького тестового примерчика. Железка есть, я бы проверил.
amw
Цитата(Krom @ May 16 2008, 16:42) *
А примера makefile для STM32 под рукой ни у кого нет случаем? Или простенького тестового примерчика. Железка есть, я бы проверил.

Примера нет. Но насколько я могу судить нужно указать -mthumb2 -mcpu=cortex-m3.
А собственно пример по идее за Вами smile.gif.
Krom
Всем привет! Снова вопросы sad.gif
Никак не могу прикрутить к Элипсу Zylin CDT.
На сайте http://www.zylin.com/embeddedcdt.html ссылка в 3м пункте неактивна, если перейти по ней вручную, возвращает на исходную страницу:

Download & installation
1. Install Eclipse 3.3 or newer. We recommend the Eclipse Classic 3.x package
http://www.eclipse.org
2. Eclipse CDT 4.x or newer
http://www.eclipse.org/cdt
3. Install Zylin-embedded CDT using, the update site
http://www.zylin.com/zylincdt

If you are unfamiliar with Eclipse update sites, Subclipse provides helpful instructions. page:
http://subclipse.tigris.org/install.html

Выполняю инструкции по сcылке http://subclipse.tigris.org/install.html - собственно Zylin CDT (или все-таки embedded-cdt?) найти не могу. Я конечно понимаю, что туплю с жуткой силой, но все-таки...
Пните, плиз в нужном направлении, или где чего почитать подскажите...
Leen
Ну вообще-то subclipse.tigris.org - это плагин subversion, а никак не zylin или embedded cdt:).
Мдя... Короче, они выложили апдейт прямо на указанный адрес...
Его нельзя скачать, а потом тупо распаковать.
Надо делать так: Eclipse->help->Soft updates->find & install.
В появившемся диалоге: установить новые, след: добавляем урл зилина (http://www.zylin.com/zylincdt), если его не было, финиш...
Приплыли, блин: Zylin Embedded CDT (4.2.1) requires feature "org.eclipse.cdt (4.0.1.200709241202)", or later version.... Короче, обновляться, обновляться и еще раз обновляться...
Могу выложить зилин цдт версии zylincdt4.0-20070830 (100 к), правда к нему идет еще и embeddedcdt4.0-20070830 (21 М)....
PS: кстати, давеча обсуждали косяк зилина 4.1.17, так что советую посмотреть на bug fix, если найдете. Меня пока старый устраивает, менять буду все разом smile.gif
Krom
Цитата(Leen @ May 19 2008, 16:05) *
Ну вообще-то subclipse.tigris.org - это плагин subversion, а никак не zylin или embedded cdt:).

Да это-то я понял... Я имел в виду, как после того, как проставили subversion, проставить собсно zylin cdt. Сорри, что сразу вопросы не формулирую точно - пух тополиный полетел, аллергия бьет с жуткой силой, сижу как в тумане sad.gif
И зачем он собственно нужен? Чтоб arm-elf подключить?

Я бы даже еще упростил вопрос: как все-же прикрутить свой тулчейн к эклипсу? Перечитал скудный эклипсовский хэлп по непомню уже какому разу, облазил все менюшки... Linux GCC и хоть ты тресни...
Может, я эклипс не тот проставил? Я сейчас ковыряюсь с Eclipse IDE for C/C++ Developers...
Или ищу не там?
Leen
Я делал так:
- собрал свой тулчейн (binutils/gcc/gdb для arm-elf), можно не собирать, а взять, благо, уважаемый klen компилит;
- распаковал eclipse с плагинами: embedded cdt, zylin cdt, subclipse; (вроде все) - распаковал в смысле я качал не инсталлеры, а зипы, а потом ручками все копировал. Делов-то вывести линк и привязать к нему хоткей smile.gif.
- запретил родной цдт (он разрешен по дефолту), разрешил эмбеддед, они внешне не различаются ничем, кроме версии; сделать это можно меню help->software update->manage configuration. Открывается окно, в нем перечислено все, что есть из активных (разрешенных) плагинов. Третья слева наверху кнопка - show disabled features. Ну а там, запрещаем один Eclipse C/C++ development tool, разрешаем второй.
- а дальше все решается через настройку проекта.
Должен быть прописан путь до /bin тулчейна;
В проекте на вкладке project properties->c/c++ build->tool settings->settings прописываем gcc assembler arm-elf-as, gcc compiler arm-elf-gcc -mcpu=arm7tdmi (сразу говорим, какое у нас ядро), gcc linker arm-elf-gcc; на вкладке build artifact меняем расширение exe - elf, из binary parsers я оставил только gnu elf parser. Этот пункт неплохо описан в атмеловском мануале, я где-то раньше давал в этой теме ссылку.
После этого простейшая printf("hello") у меня скомпилилась.
Дебаг.
Тут собсно и начинаются отличия родного цдт от эмбедного.
Только вот у мну глюк - не добавляется ни одна отладочная конфигурация, кроме отладки эклипс, но надо-то не оно.... Так что пока помочь не могу. Такое уже было, как-то справился, а как - не запомнил sad.gif. Короче, если вечером глюк уйдет спать - продолжу.
Krom
Цитата(Leen @ May 20 2008, 01:37) *
- распаковал eclipse с плагинами: embedded cdt, zylin cdt, subclipse; (вроде все) - распаковал в смысле я качал не инсталлеры, а зипы, а потом ручками все копировал. Делов-то вывести линк и привязать к нему хоткей smile.gif.

В этом-то и дело! smile.gif Не могу получить embedded cdt, zylin cdt.
Subclipse проставил по инструкции на www.zylin.com, далее как я понимаю откуда-то (откуда? на zylin.com нифига не нашел, откуда) надо получить перечисленные сабжи через Help->Software Updates->Find and Instal. Но где искать - не могу разобраться sad.gif

Блин, торможу не по детски... Все оказалось настолько просто, что проще некуда sad.gif Мну стыдно sad.gif
Help->Software Updates->Find and Install, выбираем Search for new features for install, жмем кнопку Next,
далее кнопку New Remote Site, в поле Name вводим типа Zylin CDT, в поле URL строку http://www.zylin.com/zylincdt и все.

Тока вот embedded-cdt там нету. Только Zylin Embedded CDT 4.2.1
Krom
Цитата(Leen @ May 20 2008, 01:37) *
- а дальше все решается через настройку проекта.
Должен быть прописан путь до /bin тулчейна;
В проекте на вкладке project properties->c/c++ build->tool settings->settings прописываем gcc assembler arm-elf-as, gcc compiler arm-elf-gcc -mcpu=arm7tdmi (сразу говорим, какое у нас ядро), gcc linker arm-elf-gcc; на вкладке build artifact меняем расширение exe - elf, из binary parsers я оставил только gnu elf parser. Этот пункт неплохо описан в атмеловском мануале, я где-то раньше давал в этой теме ссылку.
После этого простейшая printf("hello") у меня скомпилилась.

Вот этого никак не могу найти sad.gif. Все описанное выше проделал: тулчейн собран, эклипс установлен, Zylin Embedded CDT 4.2.1 скачан и установлен, Eclipse C/C++ Developvent Tools SDK отключен, дальше - глухо.
1. Устанавливаю перспективу C/C++ (пробовал и Debug - результат тот же)
2. Создаю новый проект (С Project) - в Toolchains только Linux GCC. Не, если убрать галку ... supported on the platform появляются и другие, но Цигвин и МинГВ - не наш случай. Ладно, забиваем на все, выбираем Linux GCC, вводим имя проекта.
3. В следующем окне предлагаются две конфигурации - Debug и Release. Жмем кнопку Advanced и в следующем окне в Properties for Test2 вроде как есть Tool Chain Editor, но по кнопке Select Tools предлагается все что угодно, только не то, что мне надо (Цигвины, МакТулс и прочее), где можно было бы указать путь к моему тулчейну - ни фига не вижу crying.gif
Но в тех же Properties есть пункт Settings, вот там похожие настройки есть. Для GCC C Compiler задаю путь /usr/local/arm/arm-elf/bin/gcc - задается, а вот для линкера и асма не хочет. Оно по умолчанию их будет брать из той же директории, что компилер? И вообще, там ли я копаю?
Все нашел, правда пришлось переставить эклипс и Zylin CDT. Почему первый раз так сглючило так и не понял, но там было подвисание Эклипса при отключении стандартного CDT, возможно в этом все дело.
Leen
Цитата(Krom @ May 20 2008, 21:33) *
1. Устанавливаю перспективу C/C++ (пробовал и Debug - результат тот же)
Ну дык... Перспективы - это просто сохраненный набор окошек, расположенный удобным для выполнения той или иной задачи. Например, В С/С++ перспективе, окно кода подольше и по центру, в дебаге - поменьше и слева, а в перспективе просмотра SVn его и ваще нет - а нафик оно там?

Цитата
3. В следующем окне предлагаются две конфигурации - Debug и Release. Жмем кнопку Advanced и в следующем окне в Properties for Test2 вроде как есть Tool Chain Editor, но по кнопке Select Tools предлагается все что угодно, только не то, что мне надо (Цигвины, МакТулс и прочее), где можно было бы указать путь к моему тулчейну - ни фига не вижу crying.gif
Странно, у меня есть следующие платформы:
- Solaris GCC;
- MinGW GCC;
- Cygwin (собсна, активен) GCC;
- Linux GCC;
- MacOSX GCC;
Цитата
Но в тех же Properties есть пункт Settings, вот там похожие настройки есть.
Именно там и устанавливаются имена ассемблера, компилера и линкера.
Цитата
Для GCC C Compiler задаю путь /usr/local/arm/arm-elf/bin/gcc - задается, а вот для линкера и асма не хочет. Оно по умолчанию их будет брать из той же директории, что компилер? И вообще, там ли я копаю?
А накой так извращаться??? Путь до исполняемых файлов тулчейна должен быть по определению в системной переменной PATH, иначе имхо будут глюки. Возможно, что эклипс не хочет брать пути - это оно и есть - не нужны они среде. Среда просто вызывает
Код
arm-elf-gcc -c main.c -o main.o
и остальное ее не волнует - о том, где кто лежит, ось должна думать. Вот.
Да, кстати, неверно, наверно, что Вы пытаетесь накормить эклипс файлами из $(prefix)/arm-elf/bin. Путь должен быть до $(prefix)/bin - там лежат arm-elf-as, arm-elf-gcc и тд, т.е. то, что нужно для сборки именно этой цели.
Krom
Цитата(Leen @ May 20 2008, 15:12) *
о том, где кто лежит, ось должна думать. Вот. ...
Путь до исполняемых файлов тулчейна должен быть по определению в системной переменной PATH

А где эту переменную задавать? Хотя, я уже догадался, где - в параметре Directories.

Цитата(Leen @ May 20 2008, 15:12) *
Да, кстати, неверно, наверно, что Вы пытаетесь накормить эклипс файлами из $(prefix)/arm-elf/bin. Путь должен быть до $(prefix)/bin - там лежат arm-elf-as, arm-elf-gcc и тд, т.е. то, что нужно для сборки именно этой цели.

Зависит от сборки. Я собирал в /usr/local/arm. Я так думаю, это связано и с путями до исполняемых файлов. Но я нашел, как это решать. Там есть параметр Directories, в нем и задается путь к директорию с исполняемыми файлами.

Не, нифига. Лезет гад в /usr/bin/sh
Ладно, сегодня надо убегать, завтра буду дальше копать
Leen
Цитата(Krom @ May 20 2008, 22:46) *
А где эту переменную задавать?
Ээээ, в линухе - не помню sad.gif А вообще, это - _системная_ переменная. Соответственно, задавать ее надо не в эклипсе. Хотя тоже вариант, наверно...
Цитата
Зависит от сборки. Я собирал в /usr/local/arm.
Не, не зависит... В Вашем случае префикс как раз /usr/local/arm. Зачем создается папка $(prefix)/arm-elf/bin и в нее кладутся исполняемые без так называемого program-prefix (arm-elf- в данном случае) - as, ld, gcc и пр., могут объяснить корифеи, если спросите. Вообще же лучше пользоваться утилами с програм-префиксом, сваленными в одну папку $(prefix)/bin - там могут лежать (и спокойно лежат, не мешая друг другу - у меня и у других) наборы для разных камней. Мой цигвин откомпилен для армов и х86, подумываю присоединить еще и авровый набор. Вдруг понадобится. И все это в /usr/bin. И в виндовом пути до всех компилеров одна строчка - c:\cygwin\bin. А уже в проектах указываю просто gcc или arm-elf-gcc по мере необходимости.
Krom
На самом деле все просто: там же, где определяются GCC и прочее, есть пунктик Enviroment, вот там создаем новую переменную PATH и прописываем все нужные пути.
Счас вот собрал OpenOCD, как разберусь, напишу кратенькие мануальчеги по результатам.
Krom
C тулчейном и средой в принципе разобрался. Застрял на примере.
При сборке выдает следующее:
Invoking: GCC C Linker
arm-elf-gcc -o"cortex-m3-test.elf" ./cortexm3_macro.o ./main.o ./stm32f10x_flash.o ./stm32f10x_gpio.o ./stm32f10x_it.o ./stm32f10x_lib.o ./stm32f10x_nvic.o ./stm32f10x_rcc.o
/usr/local/arm/lib/gcc/arm-elf/4.3.1/../../../../arm-elf/bin/ld: ERROR: ./cortexm3_macro.o uses hardware FP, whereas cortex-m3-test.elf uses software FP
/usr/local/arm/lib/gcc/arm-elf/4.3.1/../../../../arm-elf/bin/ld: failed to merge target specific data of file ./cortexm3_macro.o
/usr/local/arm/lib/gcc/arm-elf/4.3.1/../../../../arm-elf/bin/ld: ./main.o(main): warning: interworking not enabled.
first occurrence: /usr/local/arm/lib/gcc/arm-elf/4.3.1/../../../../arm-elf/lib/crt0.o: arm call to thumb
collect2: ld returned 1 exit status
make: *** [cortex-m3-test.elf] Ошибка 1


В асм-файле cortexm3_macro.s имеем следующую строку:
.cpu cortex-m3
.fpu softvfp
.syntax unified
.thumb


Чего там писать-то, чтоб не ругалось? Перерыл весь инет, перебробовал кучу вариантов, не могу ладу дать sad.gif. Если закоментарить эту строчку, то результат тот же sad.gif
Andy Great
Код
.fpu softfpa
Может так?
Krom
Цитата(Andy Great @ May 26 2008, 17:26) *
Код
.fpu softfpa
Может так?

Спасибо, именно так. А что в .gdbinit должно быть для Кортекса?
COMA
Добрый день,

никто не пробовал собирать GNU toolchains для ARM под cygwin?
klen
Цитата(COMA @ Oct 22 2008, 11:07) *
Добрый день,

никто не пробовал собирать GNU toolchains для ARM под cygwin?


пробывал - собирается, тока мне не понравилось
COMA
Можно поподробнее? Почему не понравилось?

Просто стоит задача собрать toolchains для работы с ecos, а ecos требуется cygwin.

P.S. Попробовал собрать , на GCC выскакивает ошибка:

Цитата
checking for correct version of gmp.h... yes
checking for correct version of mpfr.h... no
configure: error: Building GCC requires GMP 4.1+ and MPFR 2.3.0+.
Try the --with-gmp and/or --with-mpfr options to specify their locations.
Copies of these libraries' source code can be found at their respective
hosting sites as well as at ftp://gcc.gnu.org/pub/gcc/infrastructure/.
See also http://gcc.gnu.org/install/prerequisites.html for additional info.
If you obtained GMP and/or MPFR from a vendor distribution package, make
sure that you have installed both the libraries and the header files.
They may be located in separate packages.


Получается GCC требует GMP и MPFR ?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.