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

 
 
> Вопрос по 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
Ответов
dragigrja
сообщение Jan 18 2009, 08:15
Сообщение #2





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



Снова здравствуйте.

В деле появился некоторый прогресс.
С FPU вопрос решился банальным гуглением: (в прошлый раз я умудрился пропустить эту страницу)
Цитата
Generating VFP Instructions
Question
How do I get the compiler to generate VFP instructions?

Answer
Use the options -mfpu=vfp -mfloat-abi=softfp to enable VFP instructions.

If you have a VFPv3 you may use -mfpu=vfp3 -mfloat-abi=softfp to enable VFPv3 instructions.

The compiler then assumes that your target hardware has VFP and generates appropriate code. GCC still uses the same ABI used on non-VFP processors, so your program will work fine if part of your code is compiled with software floating-point and other parts are compiled with the options given above.

Do not use -mfloat-abi=hard, which is not yet implemented. When this option is implemented it will generate code that is incompatible with the supplied runtime libraries.

Благодаря сообщению Harbour удалось установить gcc-4.3.2: вместо make all, компилирующего всё, что есть, нужно было сделать make all-gcc, собирающего только сам компилятор. Плюс, configure нужно было передать -mfpu=vfp -mfloat-abi=softfp.

Следующая проблема состоит в том, что arm-elf-ld не находит crti.o (которого нет в $PREFIX/arm-elf). Я собирал gcc с --disable-multilib, и потому подправил gcc-4.3.2/gcc/config/arm/t-arm-elf:
было:
Код
EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crti.o crtn.o

# If EXTRA_MULTILIB_PARTS is not defined above then define EXTRA_PARTS here
# EXTRA_PARTS = crtbegin.o crtend.o crti.o crtn.o

стало:
Код
# EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crti.o crtn.o

# If EXTRA_MULTILIB_PARTS is not defined above then define EXTRA_PARTS here
EXTRA_PARTS = crtbegin.o crtend.o crti.o crtn.o

Увы, crti.o так и не появился.

Сообщение отредактировал dragigrja - Jan 18 2009, 08:17
Go to the top of the page
 
+Quote Post



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

 


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


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