Перейти к содержанию
    

свежак KGP win32/arm/avr/mips/m68k

Сергей, а KGP-ARM по идее поддерживает VFP в ARM926EJ-S в отличии от CodeSourcery Lite? Я что-то ни одной готовой тулчейн с поддержкой vfp не нашел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вопрос к klen : на какую папку настроена ваша сборка avr-gcc ?

при запуске avr-gcc выдает сообщение что не находит сс1.

при добавлении пути к сс1 в %PATH% ругается что не находит какой-то библиотечный .o файл. в сборках WinAVR этого не было.

хм, заработало после создания сист.переменных GCC_EXEC_PREFIX (путь к сс1), LIBRARY_PATH (пути к lib, lib/gcc/avr/4..).

gcc вроде должен находить сам, нет ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

хм, заработало после создания сист.переменных GCC_EXEC_PREFIX (путь к сс1), LIBRARY_PATH (пути к lib, lib/gcc/avr/4..).

gcc вроде должен находить сам, нет ?

Это зависит от установщика пакета. Прописывает ли он автоматически все нужные пути и переменные. Не все установщики это делают.

Кроме того пользователь может установить тулчейны для разных платформ. Как быть в таком случае?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кроме того пользователь может установить тулчейны для разных платформ. Как быть в таком случае?

у меня так и сделано - на флешке тулчейны для AVR,ARM,Win32.

так вот некоторым версиям достаточно добавить путь к папке bin нужного тулчейна в начале скрипта компиляции. В новых это не проходит - ругается что не находит cc1, crt*.o и т.п. Если дополнительно прописать пути к этим файлам в переменные GCC_EXEC_PREFIX, LIBRARY_PATH в скрипте, то компилирует нормально. Непонятно почему gcc не может находить эти пути самостоятельно ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кроме того пользователь может установить тулчейны для разных платформ. Как быть в таком случае?
В таком случае все действия делают через вызов <имя_платформы>-gcc.exe, а уже он находит необходимые as, cc1, ld и библиотеки. Ищет как по некоторым абсолютным путям, так и по относительным путям от того места, где лежит сам. По-моему так. Можно запустить его на компиляцию с ключем -v и он расскажет где что искал и где что нашел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ищет как по некоторым абсолютным путям, так и по относительным путям от того места, где лежит сам
так вот вопрос - почему не ищет и не находит ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

так вот вопрос - почему не ищет и не находит ?
Так покажите, что пишет -v, подумаем. Попробуйте для WinAVR и сборки klen-а, сравним.
echo int main() {return 0;} > test.c && gcc -v test.c >log.txt 2>&1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я давно порпавил код чтоб ничего прописывать не надобыло. вся путевая адресация относительно корневой директории пакетка.

это какой то глюк давайте разбиратся.

покажите что напишет сс1 -v

 

 

на выходных пересоберу все - еще раз проверим все. все работало уде давно и долго - я и проверять престал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

о, собралось.

не знаю что за глюк был.

 

запуск компилятора :

set PATH=%GCC_ROOT%\avr_kgp\bin;%PATH%

avr-gcc -v main.c >1.txt 2>2.txt

 

pause

 

 

вывод :

Using built-in specs.

Target: avr-kgp-elf

Configured with: ../../src/gcc-4.4-20081107/configure --prefix=/kgp_avr --target=avr-kgp-elf --disable-nls --enable-languages=c,c++ -v

Thread model: single

gcc version 4.4.0 20081107 (experimental) (GCC)

Klen's GCC package (KGP) for 8-bit AVR/elf platform

see latest build in www.klen.orgCOLLECT_GCC_OPTIONS='-v'

e:/work/tools/prg/lng/c/gcc/avr_kgp/libexec/gcc/avr-kgp-elf/4.4.0/cc1.exe -quiet -v -iprefix e:\work\tools\prg\lng\c\gcc\avr_kgp\bin\../lib/gcc/avr-kgp-elf/4.4.0/ main.c -quiet -dumpbase main.c -auxbase main -version -o c:\windows\Temp/cco66buf.s

ignoring nonexistent directory "e:/work/tools/prg/lng/c/gcc/avr_kgp/avr-kgp-elf/sys-include"

#include "..." search starts here:

#include <...> search starts here:

e:/work/tools/prg/lng/c/gcc/avr_kgp/lib/gcc/avr-kgp-elf/4.4.0/include

e:/work/tools/prg/lng/c/gcc/avr_kgp/lib/gcc/avr-kgp-elf/4.4.0/include-fixed

e:/work/tools/prg/lng/c/gcc/avr_kgp/avr-kgp-elf/include

End of search list.

GNU C (GCC) version 4.4.0 20081107 (experimental) (avr-kgp-elf)

compiled by GNU C version 4.3.2, GMP version 4.2.4, MPFR version 2.3.2.

GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096

Compiler executable checksum: ecd85a928d73c60df54246d38c43bb7a

COLLECT_GCC_OPTIONS='-v'

e:/work/tools/prg/lng/c/gcc/avr_kgp/lib/gcc/avr-kgp-elf/4.4.0/../../../../avr-kgp-elf/bin/as.exe -o c:\windows\Temp/ccgV11Cj.o c:\windows\Temp/cco66buf.s

COMPILER_PATH=e:/work/tools/prg/lng/c/gcc/avr_kgp/libexec/gcc/avr-kgp-elf/4.4.0/;e:/work/tools/prg/lng/c/gcc/avr_kgp/libexec/gcc/;e:/work/tools/prg/lng/c/gcc/avr_kgp/lib/gcc/avr-kgp-elf/4.4.0/../../../../avr-kgp-elf/bin/

LIBRARY_PATH=e:/work/tools/prg/lng/c/gcc/avr_kgp/lib/gcc/avr-kgp-elf/4.4.0/;e:/work/tools/prg/lng/c/gcc/avr_kgp/lib/gcc/;e:/work/tools/prg/lng/c/gcc/avr_kgp/lib/gcc/avr-kgp-elf/4.4.0/../../../../avr-kgp-elf/lib/

COLLECT_GCC_OPTIONS='-v'

e:/work/tools/prg/lng/c/gcc/avr_kgp/lib/gcc/avr-kgp-elf/4.4.0/../../../../avr-kgp-elf/bin/ld.exe -m avr2 e:/work/tools/prg/lng/c/gcc/avr_kgp/lib/gcc/avr-kgp-elf/4.4.0/../../../../avr-kgp-elf/lib/crts8515.o -Le:/work/tools/prg/lng/c/gcc/avr_kgp/lib/gcc/avr-kgp-elf/4.4.0 -Le:/work/tools/prg/lng/c/gcc/avr_kgp/lib/gcc -Le:/work/tools/prg/lng/c/gcc/avr_kgp/lib/gcc/avr-kgp-elf/4.4.0/../../../../avr-kgp-elf/lib c:\windows\Temp/ccgV11Cj.o -lgcc -lc -lgcc

 

проверю на других таргетах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сергей, а KGP-ARM по идее поддерживает VFP в ARM926EJ-S в отличии от CodeSourcery Lite? Я что-то ни одной готовой тулчейн с поддержкой vfp не нашел.

вопрос не понял.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вопрос не понял.

 

Ну вообще меня интересовало будет ли gcc генерить hardware VFP/FPU код для LPC3180 при использовании -mfpu=vfp. Как я понял, в LPC3180 есть "стандартный" армовский сопроцессор VFP9-S (VFPv2).

 

Я вроде-бы где-то читал что халявная Codesourcery Lite не генерит hardware vfp код. Мол только платные версии это могут.

Хотя теперь уже сомневаюсь... Может имелись ввиду старые версии codesourcery с GCC до 4.0 которые не поддерживали VFP вообще. А может писали про то что библиотеки в Lite версиях собраны без поддержки VFP а а новые Pro версии включают newlib которая"optimized for vfp".

Меня интересует возможность использования сопроцессора в своем (не библиотечном) C-коде.

 

Извиняюсь за непонятность вопроса :) Для меня это все несколько в новинку - что ARM что GNU toolchain.

 

PS: задавая вопрос случайно зашел под старым (забытым) ником mikel.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2_KanKan

 

код test.c

double D(double a , double b)
{
  return (a - b) + 0.5*(a-b)*(a-b) + 0.25*(a-b)*(a-b)*(a-b);
}

 

$ arm-kgp-elf-gcc -S test.c -mfloat-abi=softfp -mfpu=vfp

 

    .file    "test.c"
    .text
    .align    2
    .global    D
    .type    D, %function
D:
    @ args = 0, pretend = 0, frame = 0
    @ frame_needed = 0, uses_anonymous_args = 0
    @ link register save eliminated.
    fmdrr    d4, r0, r1
    fmdrr    d5, r2, r3
    fsubd    d7, d4, d5
    fldd    d6, .L3
    fldd    d5, .L3+8
    fmuld    d6, d7, d6
    fmuld    d5, d7, d5
    fcpyd    d4, d7
    fmuld    d5, d7, d5
    fmacd    d4, d7, d6
    fmacd    d4, d7, d5
    fmrrd    r0, r1, d4
    bx    lr
.L4:
    .align    2
.L3:
    .word    0
    .word    1071644672
    .word    0
    .word    1070596096
    .size    D, .-D
    .comm    z,8,4
    .ident    "GCC: (GNU) 4.4.0 20081003 (experimental)"

 

оно? все инструкции начинающиеся с "f" относятся ксопроцессору VFP

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2_KanKan

 

.......

 

оно? все инструкции начинающиеся с "f" относятся ксопроцессору VFP

 

Ну да, вроде оно!

Народ на других форумах правда упоминает некотрые странности/баги gcc-шного кода для VFP, но это уже баги gcc а не конкретной сборки, да и к томуже старых версий.

Спасибо. Я сам пока разбираюсь с армами на примере ARM7 и Cortex-M3, до 9-го и сопроцессора еще не добрался, но уже давно лежит плата на lpc3180 которую надо запустить с поддержкой vfp для одного хобби-проекта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ошибка в файле avr/wdt.h:133:5: error: operator '||' has no left operand :

#if || defined(__AVR_ATxmega64A1__) \
|| defined(__AVR_ATxmega64A3__) \
|| defined(__AVR_ATxmega128A1__) \
|| defined(__AVR_ATxmega128A3__) \
|| defined(__AVR_ATxmega256A3__) \
|| defined(__AVR_ATxmega256A3B__)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...