Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Тулчейн для ARM926EJ-S с поддержкой VFP
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
alex_ott
Здравствуйте!

Появилась проблема при сборке тулчейна для ARM926EJ-S с поддержкой встроенного сопроцессора для работы с ПЗ (VFP).
Собирал по шагам из http://www.gnuarm.com/support.html, с ихним t-arm-elf. Исходные данные: Linux, gcc-4.4.1, binutils-2.19, newlib-1.17.0.

Попробовал протестировать. Как указано в http://gcc.gnu.org/onlinedocs/gcc-4.4.1/gc...tml#ARM-Options, для использования аппаратной точки (в случае с сопроцессором типа VFP) нужно вписать -mfloat-abi=softfp и -mfpu=vfp, при этом линкер вываливается со словами:
Цитата
bash: arm-elf-gcc -mcpu=arm926ej-s -mfloat-abi=softfp -mfpu=vfp float_test.c -o float_test
SNIP
toolchain/arm/lib/gcc/arm-elf/4.4.1/../../../../arm-elf/bin/ld: ERROR: toolchain/arm/lib/gcc/arm-elf/4.4.1/../../../../arm-elf/lib/libc.a(lib_a-reent.o) uses FPA instructions, whereas float_test does not
toolchain/arm/lib/gcc/arm-elf/4.4.1/../../../../arm-elf/bin/ld: ERROR: toolchain/arm/lib/gcc/arm-elf/4.4.1/../../../../arm-elf/lib/libc.a(lib_a-reent.o) uses hardware FP, whereas float_test uses software FP
SNIP
toolchain/arm/lib/gcc/arm-elf/4.4.1/../../../../arm-elf/bin/ld: ERROR: toolchain/arm/lib/gcc/arm-elf/4.4.1/crtn.o uses FPA instructions, whereas float_test does not
toolchain/arm/lib/gcc/arm-elf/4.4.1/../../../../arm-elf/bin/ld: ERROR: toolchain/arm/lib/gcc/arm-elf/4.4.1/crtn.o uses hardware FP, whereas float_test uses software FP
toolchain/arm/lib/gcc/arm-elf/4.4.1/../../../../arm-elf/bin/ld: failed to merge target specific data of file toolchain/arm/lib/gcc/arm-elf/4.4.1/crtn.o

Собственно вопрос: почему части тулчейна и gcc в особенности собраны только с поддержкой FPA, хотя configure gcc не принимает аргументы -mcpu, -mfloat-abi и т.д.? Проблема в multilib?

Заранее спасибо.
klen
1. линкер ругается на то что флаги "тип таргета" для float_test.o библиотечных файлов - что и должно быть.
убедится в этом Вы можете так
arm-elf-objdump -p crt0.o
arm-elf-objdump -p float_test.o
Вы увидите что различаются флаги. Едем далее - а почему????
Потому что компиллерy нпри сборке нада было указать -mfloat-abi=softfp и -mfpu=vfp в "в аппаратной " ветке мультилиба (или добавить свою аппаратную ветку). тогда б он либы с нужными флагам собрал.

2. если у Вас не получистся могу попробывать собрать тулчей "тока для -mcpu=arm926ej-s -mfloat-abi=softfp -mfpu=vfp"
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.