|
|
  |
свежак KGP win32/arm/avr/mips/m68k, GNU tools chain |
|
|
|
Dec 8 2008, 11:29
|
Группа: Новичок
Сообщений: 4
Регистрация: 23-12-04
Пользователь №: 1 637

|
Сергей, а KGP-ARM по идее поддерживает VFP в ARM926EJ-S в отличии от CodeSourcery Lite? Я что-то ни одной готовой тулчейн с поддержкой vfp не нашел.
|
|
|
|
|
Dec 12 2008, 09:36
|
Профессионал
    
Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347

|
Цитата вопрос к klen : на какую папку настроена ваша сборка avr-gcc ? при запуске avr-gcc выдает сообщение что не находит сс1. при добавлении пути к сс1 в %PATH% ругается что не находит какой-то библиотечный .o файл. в сборках WinAVR этого не было. хм, заработало после создания сист.переменных GCC_EXEC_PREFIX (путь к сс1), LIBRARY_PATH (пути к lib, lib/gcc/avr/4..). gcc вроде должен находить сам, нет ?
|
|
|
|
|
Dec 12 2008, 11:41
|
Профессионал
    
Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347

|
Цитата Кроме того пользователь может установить тулчейны для разных платформ. Как быть в таком случае? у меня так и сделано - на флешке тулчейны для AVR,ARM,Win32. так вот некоторым версиям достаточно добавить путь к папке bin нужного тулчейна в начале скрипта компиляции. В новых это не проходит - ругается что не находит cc1, crt*.o и т.п. Если дополнительно прописать пути к этим файлам в переменные GCC_EXEC_PREFIX, LIBRARY_PATH в скрипте, то компилирует нормально. Непонятно почему gcc не может находить эти пути самостоятельно ?
|
|
|
|
|
Dec 12 2008, 14:18
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(ukpyr @ Dec 12 2008, 16:05)  так вот вопрос - почему не ищет и не находит ? Так покажите, что пишет -v, подумаем. Попробуйте для WinAVR и сборки klen-а, сравним. Код echo int main() {return 0;} > test.c && gcc -v test.c >log.txt 2>&1
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Dec 12 2008, 18:10
|
Профессионал
    
Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347

|
о, собралось. не знаю что за глюк был. запуск компилятора : Цитата 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 проверю на других таргетах.
|
|
|
|
|
Dec 14 2008, 16:11
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 10-04-08
Пользователь №: 36 633

|
Цитата(klen @ Dec 13 2008, 11:43)  вопрос не понял. Ну вообще меня интересовало будет ли 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.
|
|
|
|
|
Dec 15 2008, 09:44
|

бессмертным стать можно тремя способами
    
Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912

|
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
|
|
|
|
|
Dec 15 2008, 11:08
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 10-04-08
Пользователь №: 36 633

|
Цитата(klen @ Dec 15 2008, 12:44)  2_KanKan
.......
оно? все инструкции начинающиеся с "f" относятся ксопроцессору VFP Ну да, вроде оно! Народ на других форумах правда упоминает некотрые странности/баги gcc-шного кода для VFP, но это уже баги gcc а не конкретной сборки, да и к томуже старых версий. Спасибо. Я сам пока разбираюсь с армами на примере ARM7 и Cortex-M3, до 9-го и сопроцессора еще не добрался, но уже давно лежит плата на lpc3180 которую надо запустить с поддержкой vfp для одного хобби-проекта.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|