amw:
Цитата
А у него (ARM926EJ-S) точно есть FPU? Если FPU точно есть - то Вы должны знать и его тип.
Спасибо за ответ, оказалось, что в gcc 4.1.1 есть вариант
vfp для
-mfpu, которого не было в моём 3.4.3.
Цитата
А ОС будет? Если Linux - то да, uClibc или обычная glibc нужна. Если нет ОС, то можно и самому написать printf.
ОС не будет, но кроме
printf() в проекте есть достаточное количество функций стандартной библиотеки, которые было бы тягостно писать.
Попробовал собрать тулчейн заново, но наткнулся на ошибки, итак:
архитектура ARMv5TEJ, ядро — ARM926EJ-S
хост: i686-pc-linux-gnu, gcc-4.3.2
задача: собрать тулчейн, генерирующий по возможности полностью использующий аппаратные возможности код (например, встроенный векторный FPU)
1.
binutils-2.19: ./configure --target=arm-elf --prefix=/tmp/arm-elf --with-float=hard --enable-interwork --enable-multilib --disable-nls
– собрано успешно, собранные бинарники были добавлены в $PATH
2.
gcc-4.1.2: ./configure --target=arm-elf --with-arch=armv5te --with-cpu=arm926ej-s --with-fpu=vfp --with-float=hard --enable-interwork --disable-nls --prefix=$PREFIX --enable-languages=c --disable-libssp --with-newlib --disable-multilib --disable-tls --disable-mudflap --disable-shared --disable-threads
– выдаёт ошибку:
Код
make[4]: Entering directory `/<...>/gcc-4.1.2/host-i686-pc-linux-gnu/gcc'
/<..>/gcc-4.1.2/host-i686-pc-linux-gnu/gcc/xgcc -B/<...>/gcc-4.1.2/host-i686-pc-linux-gnu/gcc/ -B$PREFIX/arm-elf/bin/ -B$PREFIX/arm-elf/lib/ -isystem $PREFIX/arm-elf/include -isystem $PREFIX/arm-elf/sys-include -O2 -O2 -g -O2 -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -I. -I. -I../.././gcc -I../.././gcc/. -I../.././gcc/../include -I../.././gcc/../libcpp/include -g0 -finhibit-size-directive -fno-inline-functions -fno-exceptions -fno-zero-initialized-in-bss -fno-unit-at-a-time -Dinhibit_libc \
-c ../.././gcc/crtstuff.c -DCRT_BEGIN \
-o crtbegin.o
../.././gcc/crtstuff.c:1: sorry, unimplemented: -mfloat-abi=hard and VFP
При этом, в
документации к этой версии gcc есть следующее:
Цитата
-mfpu=name
-mfpe=number
-mfp=number
This specifies what floating point hardware (or hardware emulation) is available on the target. Permissible names are: `fpa', `fpe2', `fpe3', `maverick', `vfp'. -mfp and -mfpe are synonyms for -mfpu=`fpe'number, for compatibility with older versions of GCC.
If -msoft-float is specified this specifies the format of floating point values.
Проект
gnuarm прилагает для самостоятельной сборки исправленный файл
gcc-4.1.2/gcc/config/arm/t-arm-elf, в котором раскоментировано большое количество строк с опциями MULTILIB. Это как–нибудь относится к ошибке?
Заранее спасибо.
Сообщение отредактировал dragigrja - Jan 13 2009, 17:43