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

 
 
> Вопрос по GCC для ARM926EJ-S
dragigrja
сообщение Jan 13 2009, 10:27
Сообщение #1





Группа: Новичок
Сообщений: 9
Регистрация: 17-03-08
Из: Москва
Пользователь №: 35 969



Здравствуйте.

Какое значение опции -mfpu GCC должно использоваться для полностью аппаратной (и максимально эффективной, без оглядки на совместимость) плавающей точки в ядре ARM926EJ-S?
Что нужно собрать для компиляции кроме gcc и binutils? Поскольку проект использует printf() и проч. нужна ли uClibc?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
amw
сообщение Jan 13 2009, 11:58
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(dragigrja @ Jan 13 2009, 12:27) *
Здравствуйте.

Какое значение опции -mfpu GCC должно использоваться для полностью аппаратной (и максимально эффективной, без оглядки на совместимость) плавающей точки в ядре ARM926EJ-S?
Что нужно собрать для компиляции кроме gcc и binutils? Поскольку проект использует printf() и проч. нужна ли uClibc?

А у него (ARM926EJ-S) точно есть FPU? Если FPU точно есть - то Вы должны знать и его тип.

А ОС будет? Если Linux - то да, uClibc или обычная glibc нужна. Если нет ОС, то можно и самому написать printf.


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
dragigrja
сообщение Jan 13 2009, 17:42
Сообщение #3





Группа: Новичок
Сообщений: 9
Регистрация: 17-03-08
Из: Москва
Пользователь №: 35 969



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
Go to the top of the page
 
+Quote Post
amw
сообщение Jan 14 2009, 12:19
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(dragigrja @ Jan 13 2009, 19:42) *
... оказалось, что в gcc 4.1.1 есть вариант vfp для -mfpu, которого не было в моём 3.4.3.

Опции то есть, а вот есть ли FPU в железе?
Вероятно Вам потребуется libfloat для Вашего конкретного процессора. Обычно они предоставляются производителем. По крайней мере с Интеловским IXP425 у меня именно так и было.
Цитата
ОС не будет, но кроме printf() в проекте есть достаточное количество функций стандартной библиотеки, которые было бы тягостно писать.

http://sourceware.org/newlib/
Цитата
Попробовал собрать тулчейн заново, но наткнулся на ошибки:
...
Это как–нибудь относится к ошибке?

Вроятно да. Не знаю точно, что там именно раскоментировано, но GCC не знает, в Вашем случае, какой FPU использовать для hard-float. Вот в настройках MULTILIB они и задаются.
Сам я никогда не встречал ARM чип с FPU, кроме IXP425 (см выше).


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
vik0
сообщение Jan 14 2009, 18:12
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 381
Регистрация: 27-07-08
Из: теплые края
Пользователь №: 39 233



Цитата(amw @ Jan 14 2009, 14:19) *
ARM чип с FPU, кроме IXP425 (см выше).

LPC3180
Go to the top of the page
 
+Quote Post
amw
сообщение Jan 14 2009, 19:00
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(vik0 @ Jan 14 2009, 20:12) *

Я не правильно выразился.
Не работал с другими чипами с FPU кроме IXP425.
Я не отрицаю существоание таких чипов. И знаю что такие есть. Но точного ответа по обсуждаемому вопросу дать не могу.


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
Andrew2000
сообщение Jan 15 2009, 14:59
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 421
Регистрация: 25-12-04
Пользователь №: 1 675



Цитата(amw @ Jan 14 2009, 22:00) *
...чипами с FPU кроме IXP425.

а разве в IXP425 есть FPU? где это написано?
Go to the top of the page
 
+Quote Post
amw
сообщение Jan 15 2009, 16:19
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(Andrew2000 @ Jan 15 2009, 16:59) *
а разве в IXP425 есть FPU? где это написано?

Чесного (по ARM) нету.
Написано в разделе про DSP.


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post



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

 


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


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