|
свежак KGP win32/arm/avr/mips/m68k, GNU tools chain |
|
|
|
Jan 19 2008, 21:36
|

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

|
Всем привет. В ознаменовение нового года и открытия раздела выкладывается свежак. binutils-2.18.50-20080115 gcc-4.3.0-20080111 avrlibc-20080116 newlib-20080115 gdb-20080117 все зажато в формат 7z бросаете распакованное в любую папку, прописываете PATH папка/bin далее должно быть все бкз проблем, хидеры и либы должны сами находится и линковатся без дополнительных гимороев. Win32: KGP Win32здесь все, включая нидеры и либы, это то чем я собираю ВСЕ остальноя, включая драйверы для масдая. ~18Mb работает, мин нет. MIPS: KGP MIPSне тестировалось, нет платы. m68k/ColdFire: KGP m68kсобрал первый раз, возможны ошибки для m51qe, собирал ручками. Проверяйте, найдете неправильную кодогенерацию пишите поправлю компилер. Для остальных возможна ошибочная генерация в код FP инструкций(для тех которые не имеют FP), нада пробывать. Evgeny_CD так сказать инициировал интерес к данной сборке, ему и карты в руки. avr: KGP 8bit AVRТут как обычно, работает тоже без мин, я веду рабочий проект на mega1280, девайсы не жужжат. Новое - добавлена подархитектура avr35(usb82,usb162), поддерживается avr6 (m256x) arm: KGP ARMтоде самое, веду проект, все скомпиленное работает. спасиба за внимание.
|
|
|
|
85 страниц
1 2 3 > »
|
 |
Ответов
(1 - 99)
|
Jan 22 2008, 15:52
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 10-10-05
Пользователь №: 9 463

|
2 Klen -  Спасибо. Тут меня на работе спросили (сам пользуюсь pn+make) как прикрутить Вашу сборку к AVR Studio вместо WinAVR - я предложил просто заменить файлы в папке WinAVR. Правильно ли это? И еще - бывает ли GNU компилятор для 16 пиков?
|
|
|
|
|
Jan 22 2008, 18:49
|

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

|
Цитата(oll @ Jan 22 2008, 17:52)  И еще - бывает ли GNU компилятор для 16 пиков? Не из семейства GCC, но тоже под GPL - SDCC Брать не релиз (который 2.7.0) - в нем нет библиотек для PIC18Fxxx, а snapshot (в нем еще и некоторые ошибки поправлены). Еще потребуются gputils, искать на sourceforge.net
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jan 22 2008, 19:09
|

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

|
Цитата(oll @ Jan 22 2008, 18:52)  2 Klen -  Спасибо. Тут меня на работе спросили (сам пользуюсь pn+make) как прикрутить Вашу сборку к AVR Studio вместо WinAVR - я предложил просто заменить файлы в папке WinAVR. Правильно ли это? И еще - бывает ли GNU компилятор для 16 пиков? 1. Затирать не надо, просто слейте все в любую папку. 2. Из переменной PATH перенаправте путь из ......WinAVR/bin в ....kgp/bin. в таком случае Вы сможете переключать изспользуемые версии тулсов. Можно записать в PATH оба пути к bin , использоватся будет та которая первей стоить. Цитата(Kirill Trusov @ Jan 22 2008, 22:05)  а для чаво эта сборка ? т.е винавр хуже или в чем причина WinAVR ядро avr35(usb82,usb162) поддерживает?
|
|
|
|
|
Feb 9 2008, 20:02
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Привет! Замечательная идея, собрать всё вместе. А то у меня MinGW, WinAVR, WinARm и msp-gcc стоят все порознь, и иногда между собой дерутся:-) Скачал: - KGP Win32
- KGP 8bit AVR
- KGP ARM
Создал папку kgp, распаковал всё туда. При распаковке оказалось, что файл lib/libiberty.a есть в каждом архиве, причём вроде разные. Это нормально? Не нашёл make и пр.. Взял из winavr, закинул в bin. Собрал проект на avr - размер прошивки ещё немного подрос :-( На arm тоже собрал, работает:-) Вот бы ещё и msp-gcc туда влить, а то он теперь у меня как белая ворона, да ещё и цыгвиновский:-) Короче, респект за проделанную работу:-)
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Mar 7 2008, 11:54
|

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

|
Всем привет очередно свежак для arm-elf. binutils-2.18.50-cvs-20080307 gcc-4.4.0-snapshot-20080229 собрано для всех вариантов(multilib) кроме реализаций без умножителя newlib-cvs-20080306 gdb-cvs-200800307 openocd-svn-20080307 формат 7z бросаете распакованное в любую папку, прописываете PATH папка/bin далее должно быть все бкз проблем, хидеры и либы должны сами находится и линковатся без дополнительных гимороев. arm: KGP arm-elfнедолго тестил вроде бы FreeRTOS+lpc2148 задач под завязку- не жалуется, работает. gdb и openocd тоже работает, тестил с Eclipse я наверно сюда сборки буду кидать, чтоб веток не плодить. еще готово свежее для mingw, если кому срочно-интересно, то выложу
|
|
|
|
|
Apr 25 2008, 06:37
|
Знающий
   
Группа: Свой
Сообщений: 793
Регистрация: 5-11-04
Из: Краматорск, Украина
Пользователь №: 1 057

|
Цитата(klen @ Apr 24 2008, 20:22)  можна и закрепить. на выходных попробую все пресобрать, а то чето пауза кокая то - работет типо все и так  ... А можно ли попросить Вас сделать на сайте хотя бы просмотр каталога с тулчейнами? А то недавно срочно понадобилось проверить кое-что, Электроникс лег (тьфу-тьфу), пришлось ждать сутки.
|
|
|
|
|
Apr 25 2008, 16:50
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(klen @ Apr 24 2008, 23:22)  можна и закрепить. на выходных попробую все пресобрать, а то чето пауза кокая то - работет типо все и так  ... У меня тоже пожелание:-) openocd.exe там есть, а вот openocd-pp.exe - нету. Хотя это не очень важно:-) А насчёт присоединить mspgcc пока никак?
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Apr 28 2008, 04:33
|

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

|
собрал свежак bu 2.18.50.20080422 gcc 4.3.1.20080424 avr-libc1.6.2 newlib 20080424 gdb 6.8 openocd 20080428 (собрал наскоро с поддержкой d2xx чтоб проверить весь тулчейн, можно если надо по полной собрать) AVR: bu2.18.50.20080422_gcc4.3.1.20080424_avr-libc1.6.2.7zARM: http://klen.org/Files/DevTools/kgp_arm-bu2...nocd20080428.7zсобраны все конфигурации(точнее их перемножество ) be le fpu interwork thumb thumb2 пробуйте. арм сборка собрала мой проект, он заработал. авр не пробывал, нет под рукой платки. дайте телнет на машину с 1 гигом для сборки и числом процессоров от 8 штук, а? если есть у кого не жалко? сборка для арм на двух процах дома занимает аж 6 часов - нервы портятся...
|
|
|
|
|
Apr 28 2008, 17:52
|
Знающий
   
Группа: Свой
Сообщений: 851
Регистрация: 28-08-04
Пользователь №: 559

|
на работе есть две машины работают круглосуточно. на одном коре дуо 2 ггц и 4 г озу на втором коре дуо 1.8 ггц и 1 г озу. больше ничего нет
|
|
|
|
|
Apr 28 2008, 18:21
|

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

|
Цитата(COMA @ Apr 28 2008, 21:52)  на работе есть две машины работают круглосуточно. на одном коре дуо 2 ггц и 4 г озу на втором коре дуо 1.8 ггц и 1 г озу. больше ничего нет  да неа, спасиба, я у себя дома сам через distcc могу запряч 6 ядер в сумме - всеравно это крохи. хочется попробывать найти многопроцесорную машину, чтоб все процы на одной шине были ..... ну ниче, пока так поживем
|
|
|
|
|
Apr 29 2008, 09:09
|

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

|
сегодняшний OpenOCD версии Open On-Chip Debugger 1.0 (2008-04-29-09:06) собран с ключами --prefix= --enable-parport --enable-dummy --enable-ft2232_ftd2xx --enable-amtjtagaccel --enable-ep93xx --enable-at91rm9200 --enable-gw16012 --enable-ecosboard --enable-presto_ftd2xx --enable--oocd_trace http://klen.org/Files/DevTools/openocd.exe
|
|
|
|
|
May 22 2008, 19:15
|

Знающий
   
Группа: Свой
Сообщений: 779
Регистрация: 9-10-04
Из: Россия, Пермь
Пользователь №: 828

|
Цитата(klen @ May 22 2008, 13:09)  свежак для ARM bu2.18.50.20080521_gcc4.4.0-20080516_newlib20080521_gdb6.8.7zполный мультилиб, be/fpu/interwork/thumb/thumb2(для кортексов) тестирую на lpc2148/FreeRTOS/12 задачек, динамическое выделение памяти и тд - работает без сбоев. к выходным будет планируется всежак под mips64, avr, mingw32 А для MC68000/Coldfire не планируется?
|
|
|
|
|
May 23 2008, 07:10
|
Частый гость
 
Группа: Свой
Сообщений: 107
Регистрация: 27-06-05
Из: Россия
Пользователь №: 6 324

|
Цитата(klen @ May 22 2008, 18:13)  с BU давно никаких проблем нет, руками не трогаю. Что именно не компиляется/несобирается Конфигурирую со следующими опциями: --prefix=${PREFIX} --target=${TARGET} --disable-nls --disable-shared --with-gnu-ld --with-gnu-as --enable-interwork --enable-multlib --with-float=soft При сборке выдает следущее: arlex.l: In function ‘yylex’: arlex.l:44: error: ‘ADDLIB’ undeclared (first use in this function) arlex.l:44: error: (Each undeclared identifier is reported only once arlex.l:44: error: for each function it appears in.) arlex.l:45: error: ‘ADDMOD’ undeclared (first use in this function) arlex.l:46: error: ‘CLEAR’ undeclared (first use in this function) arlex.l:47: error: ‘CREATE’ undeclared (first use in this function) arlex.l:48: error: ‘DELETE’ undeclared (first use in this function) arlex.l:49: error: ‘DIRECTORY’ undeclared (first use in this function) arlex.l:50: error: ‘END’ undeclared (first use in this function) arlex.l:51: error: ‘EXTRACT’ undeclared (first use in this function) arlex.l:52: error: ‘FULLDIR’ undeclared (first use in this function) arlex.l:53: error: ‘HELP’ undeclared (first use in this function) arlex.l:54: error: ‘LIST’ undeclared (first use in this function) arlex.l:55: error: ‘OPEN’ undeclared (first use in this function) arlex.l:56: error: ‘REPLACE’ undeclared (first use in this function) arlex.l:57: error: ‘VERBOSE’ undeclared (first use in this function) arlex.l:58: error: ‘SAVE’ undeclared (first use in this function) arlex.l:79: error: ‘yylval’ undeclared (first use in this function) arlex.l:80: error: ‘FILENAME’ undeclared (first use in this function) arlex.l:85: error: ‘NEWLINE’ undeclared (first use in this function) arlex.c: At top level: arlex.c:1856: warning: no previous prototype for ‘yyget_lineno’ arlex.c:1865: warning: no previous prototype for ‘yyget_in’ arlex.c:1873: warning: no previous prototype for ‘yyget_out’ arlex.c:1881: warning: no previous prototype for ‘yyget_leng’ arlex.c:1890: warning: no previous prototype for ‘yyget_text’ arlex.c:1899: warning: no previous prototype for ‘yyset_lineno’ arlex.c:1911: warning: no previous prototype for ‘yyset_in’ arlex.c:1916: warning: no previous prototype for ‘yyset_out’ arlex.c:1921: warning: no previous prototype for ‘yyget_debug’ arlex.c:1926: warning: no previous prototype for ‘yyset_debug’ arlex.c:1960: warning: no previous prototype for ‘yylex_destroy’ make[4]: *** [arlex.o] Ошибка 1 make[4]: Leaving directory `/usr/local/arm/src/build/binutils-2.18.50/binutils' make[3]: *** [all-recursive] Ошибка 1 make[3]: Leaving directory `/usr/local/arm/src/build/binutils-2.18.50/binutils' make[2]: *** [all] Ошибка 2 make[2]: Leaving directory `/usr/local/arm/src/build/binutils-2.18.50/binutils' make[1]: *** [all-binutils] Ошибка 2 make[1]: Leaving directory `/usr/local/arm/src/build/binutils-2.18.50' make: *** [all] Ошибка 2 Все тоже самое с binutils-2.18-1 проходит на ура
|
|
|
|
|
May 23 2008, 13:52
|
Частый гость
 
Группа: Свой
Сообщений: 107
Регистрация: 27-06-05
Из: Россия
Пользователь №: 6 324

|
Цитата(klen @ May 23 2008, 17:34)  какойто рецидив... нипанятно че произошло. вытяните исходники через CVS и попробуйте еще раз. Да я вообще-то исходники с дебиана брал, может они там чего наворочали.
|
|
|
|
|
May 26 2008, 07:42
|
Знающий
   
Группа: Свой
Сообщений: 793
Регистрация: 5-11-04
Из: Краматорск, Украина
Пользователь №: 1 057

|
Цитата(klen @ May 24 2008, 12:40)  свежий OpenOCD сегодняшний сконфигурен --enable-parport --enable-dummy --enable-ft2232_ftd2xx --enable-amtjtagaccel --enable-ep -93xx --enable-ecosboard --enable-at91rm9200 --enable-gw16012 --enable-presto_ftd2xx http://www.klen.org/Files/DevTools/openocd.exeА поддержку JLink не проверяли?
|
|
|
|
|
Jul 3 2008, 10:38
|
Группа: Новичок
Сообщений: 5
Регистрация: 30-06-08
Пользователь №: 38 657

|
To klen У Вас так легко все получается пересобрать что аж дух захватывает  . А у меня при работе с mega2561 под WinAVR проблема которую Eric B. Weddington не хочет решать (пока). Я уже описывал ее в другой ветке но вкратце вот в чем вопрос: это касается поддержкой ядер AVR с размером памяти 256к. При обращении к библиотечным функциям с переменным числом параметров (например fprint) компилятор встраивает вызовы к встроенным макросам __prologue_saves__ / __epilogue_restores__ из библиотеки libgcc.a. Данные для этих макросов, которые готовятся на этапе вызова функций, совершенно не учитывают размера памяти больше чем 128к (64к слов), то есть, инициализируются регистры Z (ZH,ZL), а в макросах используеться инструкция EIJMP, для полноценной работы которой надо еще установить регистр EIND. Вот и получается, что если библиотечные функции с переменным числов параметров располагаються в адресах выше чем 128к, то вся програма перестает работать. А в Ваших сборках для AVR поддержка avr6 коректная? А если нет, то нельзя ли исправить?
|
|
|
|
|
Aug 20 2008, 08:09
|

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

|
Цитата(Andy Great @ Aug 20 2008, 10:09)  ОФФ: вчера читал такого типа инструкцию для желающих смотреть сат ТВ на ПК. Сильно сомневаюсь в возможности удовлетворения всех "а почему у меня...". Проще (да и полезнее) делать как klen Не соглашусь. Собирал mspgcc, ибо имевшаяся сборка устарела и надо было кое-что добавить (конструкторы, кое-что в инициализации). Набил некоторое количество шишек. Написал для себя инструкцию (где-то здесь выкладывал). Через некоторое время вышла официальная сборка с моими добавлениями. Снес все, что относилось к своей сборке. Теперь понадобилось добавить поддержку ядра MSP430X. Достал ту инструкцию, нашел в ней несколько пунктов, которые уже забыл и если бы она не сохранилась - наступил бы на те же грабли. klen, безусловно, делает полезное дело. Но если кто-то "подсядет" на его сборки, а завтра klen решит (тьфу, тьфу, тьфу) оставить электронику (как Bill), то эти кто-то окажутся в тупике.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Sep 3 2008, 07:28
|

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

|
Цитата(haker_fox @ Sep 3 2008, 02:21)  Упс. А что случилось? Я-то и думаю, куда пропал этот человек? Насколько я понял - кого-то из близких с того света вытащили и это на него сильно повлияло. P.S. Вот, нашел его прощальное письмо на телесисах.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Sep 3 2008, 13:13
|

Знающий
   
Группа: Свой
Сообщений: 779
Регистрация: 9-10-04
Из: Россия, Пермь
Пользователь №: 828

|
Цитата(Сергей Борщ @ Sep 3 2008, 10:28)  Насколько я понял - кого-то из близких с того света вытащили и это на него сильно повлияло. P.S. Вот, нашел его прощальное письмо на телесисах. Да жаль, и SM то же видимо по тем же причинам перестал появляться на конфах. Жаль, время идет...
|
|
|
|
|
Sep 4 2008, 16:03
|

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

|
свежак для AVR bu cvs 20080903 gcc 4.3.2 релиз avrlibc 1.6.2 gdb6.8 cvs 20080904 - для сильных мужчин & моих соседей по палате make sh rm - для подержки AVRStudio http://klen.org/Files/DevTools/kgp_avr-elf...6.8.20080904.7zчуток потестировал, вроде без косяков. распаковываете куданить, тыкаете настроками проекта к avr-gcc и make. далее вы должны по идее забить про компиллер. тем кто не вкурсе (или я ужо давно отстал) AVRS 4.14.589 AvrPluginavrgccplugin1.0.0.9 имеют косяк. Если вы используете float то разумно всегда подлинковывать libm, это позволяет ускорить скрость * операций до 144 а / до ~440 тактов для float. так вот AVRS не позволяет это сделать  как опцию -lm. точнее можно в опциях линкера но это ничего не даст, -lm должен быть к помандной строке после списка объектников приложения, таковы правила линковки LD. Я руками правлю xml файл проекта. явно указывать libm.a некашерно потому что компиллер сам должен выбрать ее правильную версию... если это все лечится прще - раскажите мне.
|
|
|
|
|
Sep 25 2008, 21:55
|
Участник

Группа: Свой
Сообщений: 46
Регистрация: 4-02-05
Из: Москва
Пользователь №: 2 430

|
чтото проект не собиратеся под gcc 4.3.2 на at90usb162 - в либах путается в kgp_avr-elf_bu2.18.50.20080601_gcc4.4.0.20080530_gdb6.8.20080531_avrlibc1.6.2.7z все собирается на ура
avr-gcc -mmcu=at90usb162 -I. -gdwarf-2 -DF_CPU=8000000UL -DBOARD=BOARD_USBKEY -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DUSB_DEVICE_ONLY -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED)" -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -finline-limit=20 -Wall -Wstrict-prototypes -Wundef -Wa,-adhlns=CDC.o -I../../ -std=gnu99 -Wundef -MMD -MP -MF .dep/CDC.elf.d CDC.o Descriptors.o ../../MyUSB/Scheduler/Scheduler.o ../../MyUSB/Drivers/USB/LowLevel/LowLevel.o ../../MyUSB/Drivers/USB/LowLevel/Endpoint.o ../../MyUSB/Drivers/USB/LowLevel/DevChapter9.o ../../MyUSB/Drivers/USB/HighLevel/USBTask.o ../../MyUSB/Drivers/USB/HighLevel/USBInterrupt.o ../../MyUSB/Drivers/USB/HighLevel/Events.o ../../MyUSB/Drivers/USB/HighLevel/StdDescriptors.o --outp ut CDC.elf -Wl,-Map=CDC.map,--cref -Wl,--relax -Wl,--gc-sections -lm e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: avr:4 architecture of input file `e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr35/crtusb162.o' is incompatible with avr:3 output e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: avr:51 architecture of input file `CDC.o' is incompatible with avr:3 output e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: avr:51 architecture of input file `Descriptors.o' is incompatible with avr:3 output e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: avr:4 architecture of input file `../../MyUSB/Scheduler/Scheduler.o' is incompatible with avr:3 output e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: avr:4 architecture of input file `../../MyUSB/Drivers/USB/LowLevel/LowLevel.o' is incompatible with avr:3 output e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: avr:4 architecture of input file `../../MyUSB/Drivers/USB/LowLevel/Endpoint.o' is incompatible with avr:3 output e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: avr:4 architecture of input file `../../MyUSB/Drivers/USB/LowLevel/DevChapter9.o' is incompatible with avr:3 output e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: avr:4 architecture of input file `../../MyUSB/Drivers/USB/HighLevel/USBTask.o' is incompatible with avr:3 output e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: avr:4 architecture of input file `../../MyUSB/Drivers/USB/HighLevel/USBInterrupt.o' is incompatible with avr:3 output e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: avr:4 architecture of input file `../../MyUSB/Drivers/USB/HighLevel/Events.o' is incompatible with avr:3 output e:/!cc/gcc/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: avr:4 architecture of input file `../../MyUSB/Drivers/USB/HighLevel/StdDescriptors.o' is incompatible with avr:3 output make: *** [CDC.elf] Error 1
|
|
|
|
|
Sep 26 2008, 05:08
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(kimstik @ Sep 26 2008, 01:55)  чтото проект не собиратеся под gcc 4.3.2 на at90usb162 - в либах путается Код make clean make Помогло? Анатолий.
|
|
|
|
|
Sep 27 2008, 21:01
|
Участник

Группа: Свой
Сообщений: 46
Регистрация: 4-02-05
Из: Москва
Пользователь №: 2 430

|
clean делал конечно же не помогло кстати и на kgp_avr-bu2.18.50.20080115_gcc4.3.0.20080111_avr-libc20080115.7z компилится на ура
|
|
|
|
|
Sep 28 2008, 11:29
|
Участник

Группа: Свой
Сообщений: 46
Регистрация: 4-02-05
Из: Москва
Пользователь №: 2 430

|
Цитата(aesok @ Sep 28 2008, 01:41)  AT90USB162/82 не самое удачное название для этих чипов. Хотя их название начинается с AT90 как у AT90USB128*, AT90PWM* и по аналогии могло показаться что в них стоит ядро ATmega, но на самом деле они не имеют инструкций умножения, в них стоит ядро как в новых ATtiny. AT90USB82 обладает еще одним уникальным свойством, не смотря но то что он имеет всего 8 КВ флеш, в нем работают инструкции JMP/CALL и вектора прерываний расположены со смещением в 4 байта, а не два как у всех других контролеров с 8 и менее флеш.
AT90USB162/82 реально поддерживаются в GCC с версии 4.3.3 (может 4.3.2). И то для binutils 2.18 требуется небольшой патч.
Для работы я бы порекомендовал вам использовать WinAVR2080610. Если Вы будете использовать другие сборки проверьте что компилятор не генерирует инструкции умножения для этих контроллеров.
Анатолий.
PS: более ранние версии не будут использовать инструкцю MOVW для AT90USB162/82. Все правильно написано. Думаю это кому нибудь будет полезно. прико в другом. проект легко и непринужденно собирается этим: kgp_avr-bu2.18.50.20080115_gcc4.3.0.20080111_avr-libc20080115.7z kgp_avr-elf_bu2.18.50.20080601_gcc4.4.0.20080530_gdb6.8.20080531_avrlibc1.6.2.7z и собранное успешно работает в железе. <--- А 4.3.2 - не желает. И не в процессе выполнения, когда надо делать собственно умножение. Возможно патчей каких не хватает. Мне сложно судить. Проект кстати достаточно развитый http://www.fourwalledcubicle.com/MyUSB.php
|
|
|
|
|
Nov 6 2008, 14:43
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(klen @ Oct 13 2008, 13:32)  свежак для avr bu2.19.50_20081005 gcc4.4.0_20081003 avrlibc1.6.2 Есть вопрос про файл iom88p.h Это так и задумано? Код #define PORTB _SFR_IO8(0x05) #define PORTB0 0 #define PORTB1 1 #define PORTB2 2 #define PORTB3 3 #define PORTB4 4 #define PORTB5 5 #define PORTB6 6 #define PORTB7 7 Вместо того как было раньше: Код #define PORTB _SFR_IO8(0x05) #define PB0 0 #define PB1 1 #define PB2 2 #define PB3 3 #define PB4 4 #define PB5 5 #define PB6 6 #define PB7 7 Я считаю что это бред...
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Nov 6 2008, 15:57
|

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

|
Цитата(demiurg_spb @ Nov 6 2008, 17:43)  Есть вопрос про файл iom88p.h Это так и задумано? Код #define PORTB _SFR_IO8(0x05) #define PORTB0 0 #define PORTB1 1 #define PORTB2 2 #define PORTB3 3 #define PORTB4 4 #define PORTB5 5 #define PORTB6 6 #define PORTB7 7 Вместо того как было раньше: Код #define PORTB _SFR_IO8(0x05) #define PB0 0 #define PB1 1 #define PB2 2 #define PB3 3 #define PB4 4 #define PB5 5 #define PB6 6 #define PB7 7 Я считаю что это бред... Хехе, это не компиллер, это не комне  позвонил другу брату и товарищу aesok, этот косяг и так быть не должно. должно быть и длинное и короткое определенее портов. Типа уже все поправлено, если все будеть нотмально то завтра получим свежак, с обновленным avrlibc1.6.3 там будет как раньше.
|
|
|
|
|
Nov 10 2008, 19:01
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(klen @ Nov 6 2008, 19:12)  Респект! А он умеет компилировать под Cortex-M3? Попытался сейчас собрать мигающий светодиод для STM32-H103 от Олимекс, и получил что-то типа as : unknown option -mcpu=CortexM3 (не дословно). И ещё маленькая просьба - собирать openocd с поддержкой параллельного порта
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Nov 11 2008, 18:28
|

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

|
Свежак АRM http://klen.org/Files/DevTools/kgp_arm-elf...6.0.20081108.7zСвежак AVR http://klen.org/Files/DevTools/kgp_avr-bu2...avrlibc1.6.2.7zкомпиллер теперь оптимизирует битовые сдвиги на предмен использования кинструкции swap, спасибо aesok 2_AHTOXA -mcpu=CortexM3 я патсталом конечно умеет тока ему об этом нада сказать. рекомендую arm-kgp-elf-gcc --target-help и arm-kgp-elf-as --target-help поглядеть, там увидите опции платформо-специфичные для GCC нада -mtumb -mcpu=cortex-m3 -mtune=cortex-m3 -march=armv7-m вот пример исходника С: Код int mul (int x, int y) { return x * y; } int div (int x, int y) { return x / y; } выход для arm7tdmi: arm-kgp-elf-gcc -c a.c -mcpu=armv4t -S -Os Код .file "a.c" .text .align 2 .global mul .type mul, %function mul: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. mul r0, r1, r0 bx lr .size mul, .-mul .global __divsi3 .align 2 .global div .type div, %function div: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 str lr, [sp, #-4]! bl __divsi3 ldr pc, [sp], #4 .size div, .-div .ident "GCC: (GNU) 4.4.0 20081107 (experimental)" выход для cortex-m3: arm-kgp-elf-gcc -c a.c -mcpu=cortex-m3 -mthumb -Os -S Код .syntax unified .thumb .file "a.c" .text .align 2 .global mul .thumb .thumb_func .type mul, %function mul: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. mul r0, r0, r1 bx lr .size mul, .-mul .align 2 .global div .thumb .thumb_func .type div, %function div: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. sdiv r0, r0, r1 bx lr .size div, .-div .ident "GCC: (GNU) 4.4.0 20081107 (experimental)" во втором случае видно что используется аппаратный делитель целых типов как проект соберется отпешитесь что все впорядке или не в порядке , сам хочу в терре купить олимекс плату STM32-H103 попробывал тупо собрать проекты для этой платы с сайта олимекса, все собрались, тока нада чуток опции имя тулсов и опции objcopy поправить. зашить некуда. посмотрел исходники примеров и либ STM... у тех кто их писал видимо рак мозга, такого издевательства над языком С я даже от микрософта не видал.
|
|
|
|
|
Nov 11 2008, 20:14
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(klen @ Nov 12 2008, 00:28)  2_AHTOXA -mcpu=CortexM3 я патсталом  Я ж написал - не дословно  Я тупо пытался скомпилить пример с олимекса, поправив имена компилятора и проч. Цитата для GCC нада -mtumb -mcpu=cortex-m3 Ну вот, на это и ругалось  Цитата как проект соберется отпешитесь что все впорядке или не в порядке , сам хочу в терре купить олимекс плату STM32-H103 У меня как раз такая. Хорошо, завтра вечерком скачаю и отпишусь. Цитата попробывал тупо собрать проекты для этой платы с сайта олимекса, все собрались, тока нада чуток опции имя тулсов и опции objcopy поправить. У меня вроде до objcopy дело не доходило... Хотя я не углублялся, решил сначала спросить, возможно ли это в принципе. Цитата посмотрел исходники примеров и либ STM... у тех кто их писал видимо рак мозга, такого издевательства над языком С я даже от микрософта не видал. Это да, это очень сильно:-)))
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Nov 12 2008, 19:34
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(klen @ Nov 13 2008, 00:13)  Код arm-kgp-elf-objcopy -O elf32-littlearm -S ../../out/image.elf ../../out/image.bin Так bin получается маленький, но он получается не bin а elf  Пока выкрутился так: Код $(OBJCOPY) -O binary -j .text -S $(ELF) $(BIN) Светодиод моргает!  Но это конечно не дело...
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Nov 13 2008, 06:49
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата(klen @ Nov 11 2008, 20:28)  Свежак AVR http://klen.org/Files/DevTools/kgp_avr-bu2...avrlibc1.6.2.7zкомпиллер теперь оптимизирует битовые сдвиги на предмен использования кинструкции swap, спасибо aesok Решил я опять помучать ГЦЦ. Вытащил по ссылке, начал пробовать. Появилась пара вопросов. Первый: Код test.c:
typedef unsigned char UREG; typedef signed char REG;
static void _netw_memcpy(char *d, char *s, UREG l);
void netw_memcpy(void *d, void *s, UREG l) { _netw_memcpy((char*)d,(char*)s,l); }
static void _netw_memcpy(char *d, char *s, UREG l) { char c; if (!l) return; do { c=*s++; *d++=c; } while(--l); } после gcc -O9 -S -mmcu=atmega168 test.c Код .file "test.c" __SREG__ = 0x3f __SP_H__ = 0x3e __SP_L__ = 0x3d __tmp_reg__ = 0 __zero_reg__ = 1 .global __do_copy_data .global __do_clear_bss .text .global netw_memcpy .type netw_memcpy, @function netw_memcpy: push r16 push r17 push r28 push r29 /* prologue: function */ /* frame size = 0 */ tst r20 breq .L4 ldi r18,lo8(0) ldi r19,hi8(0) subi r20,lo8(-(-1)) mov r16,r20 ldi r17,lo8(0) movw r28,r16 adiw r28,1 .L3: movw r30,r24 add r30,r18 adc r31,r19 movw r26,r22 add r26,r18 adc r27,r19 ld r21,X st Z,r21 subi r18,lo8(-(1)) sbci r19,hi8(-(1)) cp r18,r28 cpc r19,r29 brne .L3 .L4: /* epilogue start */ pop r29 pop r28 pop r17 pop r16 ret .size netw_memcpy, .-netw_memcpy Как-то IAR с этим справляется на ура: Код RSEG CODE:CODE:NOROOT(1) // 8 __x_z void netw_memcpy(void *d, void *s, UREG l) netw_memcpy: // 9 { // 10 _netw_memcpy((char*)d,(char*)s,l); REQUIRE _netw_memcpy ; // Fall through to label _netw_memcpy // 11 } // 12
RSEG CODE:CODE:NOROOT(1) // 13 static __x_z void _netw_memcpy(char *d, char *s, UREG l) _netw_memcpy: // 14 { // 15 char c; // 16 if (!l) return; TST R16 BREQ ??_netw_memcpy_0 // 17 do // 18 { // 19 c=*s++; ??_netw_memcpy_1: LD R17, Z+ // 20 *d++=c; ST X+, R17 // 21 } // 22 while(--l); DEC R16 BRNE ??_netw_memcpy_1 ??_netw_memcpy_0: RET // 23 } Вот и вопрос, ничего там в оптимизаторе случайно не сломали? А то что-то совсем мрачно. И вроде не было такого. Теперь вопрос номер два. Сунул ему более глобальный файл. Получил вот такое Код F:\GCC\kgp_avr\avr-kgp-elf\bin>gcc -O9 -S network.c -mmcu=atmega168 network.c: In function 'INT_ETH_PROCESS_PKT2': network.c:810: error: unable to find a register to spill in class 'POINTER_REGS' network.c:810: error: this is the insn: (insn 3268 2214 3269 284 network.c:88 (set (mem/c:QI (plus:HI (reg/f:HI 28 r28) (const_int 24 [0x18])) [27 S1 A8]) (reg:QI 30 r30)) 4 {*movqi} (nil)) network.c:810: internal compiler error: in spill_failure, at reload1.c:2093 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions.
F:\GCC\kgp_avr\avr-kgp-elf\bin> Баг-репорт отправлять прямо туда или Вам?
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Nov 13 2008, 11:38
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(klen @ Nov 13 2008, 12:15)  1. чтото мне тож это не нравица, есть о чем подумать Да и раньше было не сахар (я тут писал об оптимизации скорости вывода на дисплей). Таким макаром циклы реализовывать это надо уметь. Самое обидное, что ничего в этом направлении не меняется уже давно...
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Nov 14 2008, 06:52
|

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

|
Цитата(AHTOXA @ Nov 13 2008, 22:44)  В общем, сделал пока так. Сравнил elf-ы, производимые arm-kgp-elf- и arm-none-eabi-, нашёл, что в arm-kgp-elf- есть "лишняя" секция .eh_frame. И скомандовал objcopy выкинуть эту секцию при формировании bin-файла. bin стал получаться нормального размера, светодиод мигает. (Напомню, я пытаюсь работать с arm-kgp-elf- и stm32) Я правильно сделал? я также делаю, тока по другому .eh_frame - секция исполняемого кода, содержит код относящийся к механизму обработки исключений, при компиляции языка С механизм исключения отсутствует, поэтому этот код ессесено не нужен. Текущее состояние компиллера таково что без разбора сует эту секцию всегда независимо от языка с которого компиляется исходник. Я использую С для армов, соответственно код этой мертвой секции тока бесполезна использует флеш. можно удалить ее как Вы предлагаете strip --remove-section=".eh_frame" , но проще ее просто не пропустить на выход линкера прописав в скрипте линкера : SECTIONS { ....................... ....................... /DISCARD/ : /*секцию исключений ф топку*/ { *(.eh_frame) } ........................ ........................ } Если вы умудряетесь использовать C++ (я это делал тока для тестирования, кстата вшивалось в lpc2103? шмешно, правдв?) и возможно используете исключения то эту секцию удалять нельзя. Я даже боюсь предположить что будет если кинуть ексепшен  если соберется проект.
|
|
|
|
|
Nov 14 2008, 19:44
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(klen @ Nov 14 2008, 12:52)  я также делаю, тока по другому .eh_frame - секция исполняемого кода, содержит код относящийся к механизму обработки исключений Теперь стало понятнее. Указал линкеру, что эту секцию надо поместить в ROM: Код ... *(.text) /* Program code */ *(.eh_frame) /* exceptions */ *(.rodata) /* Read only data */ } >rom , всё стало нормально без выкидывания. Пусть будет, cpp я использовать собираюсь (scmRtos), правда, без exceptions наверное  Цитата Если вы умудряетесь использовать C++ (я это делал тока для тестирования, кстата вшивалось в lpc2103? шмешно, правдв?) Тут люди в AVR-ках его используют, и ничего, нормуль:-) Цитата если соберется проект. А что, есть сомнения? Вообще, что посоветуете использовать для cortex-m3, arm-kgp-elf- или arm-none-eabi- из Sourcery G++ ?
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Nov 15 2008, 13:23
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(Rst7 @ Nov 13 2008, 08:49)  Как-то IAR с этим справляется на ура: бз-з-з-з... Странно. WinAVR-20060421 (3.4.6) -Os Код .global netw_memcpy .type netw_memcpy, @function netw_memcpy: /* prologue: frame size=0 */ /* prologue end (size=0) */ movw r26,r24 movw r30,r22 .L7: tst r20 breq .L1 ld r24,Z+ st X+,r24 subi r20,lo8(-(-1)) rjmp .L7 .L1: ret /* epilogue: frame size=0 */ WinAVR-20060421 (3.4.6) -O2 и -O3 Код .global netw_memcpy .type netw_memcpy, @function netw_memcpy: /* prologue: frame size=0 */ /* prologue end (size=0) */ movw r26,r24 movw r30,r22 rjmp .L7 .L9: ld r24,Z+ st X+,r24 subi r20,lo8(-(-1)) .L7: tst r20 brne .L9 ret /* epilogue: frame size=0 */ WinAVR-20070525 (4.1.2) и WinAVR-20071221 (4.2.2) -Os, -O2 и -O3 Код .global netw_memcpy .type netw_memcpy, @function netw_memcpy: /* prologue: frame size=0 */ /* prologue end (size=0) */ tst r20 breq .L5 movw r26,r22 movw r30,r24 .L4: ld r24,X+ st Z+,r24 subi r20,lo8(-(-1)) brne .L4 .L5: ret /* epilogue: frame size=0 */ Что-то их не туда понесло в более свежих версиях  То-то я не спешу менять...
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Nov 16 2008, 21:12
|

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

|
получилось опции -Os Код void cpy ( char* x , char* y , size_t s ) { if ( !s ) return; size_t t = s; do { *(y++) = *(x++); } while( --t ); } Код 000000DC: 01FC MOVW R30,R24 Copy register pair 000000DD: 01DB MOVW R26,R22 Copy register pair 22: if ( !s ) return; 000000DE: 1541 CP R20,R1 Compare 000000DF: 0551 CPC R21,R1 Compare with carry 000000E0: F029 BREQ PC+0x06 Branch if equal 26: *(y++) = *(x++); 000000E1: 9181 LD R24,Z+ Load indirect and postincrement 000000E2: 938D ST X+,R24 Store indirect and postincrement 28: while( --t ); 000000E3: 5041 SUBI R20,0x01 Subtract immediate 000000E4: 4050 SBCI R21,0x00 Subtract immediate with carry 000000E5: CFF8 RJMP PC-0x0007 Relative jump 000000E6: 9508 RET Subroutine return это вроде то что нужно что характерно, при замене типа счетчика на char начинается маразм.
|
|
|
|
|
Nov 16 2008, 21:45
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата(klen @ Nov 16 2008, 23:12)  что характерно, при замене типа счетчика на char начинается маразм. Дык надо лечить, тем более, что явно чтото сломали. Зачем мне int в счетчике, если нативный тип для AVR - unsigned char. Вот приведенный выше результат после 4.1.2 и 4.2.2 - это то, что должно быть. PS А что с падением? Или там совсем мрачно?
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Nov 17 2008, 06:03
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата это вроде то что нужно Кстати, и к этому коду есть вопросы. IAR Код RSEG CODE:CODE:NOROOT(1) // 27 __x_z void cpy ( char* x , char* y , size_t s ) cpy: // 28 { MOV R19, R25 MOV R20, R24 // 29 if ( !s ) return; MOV R18, R16 OR R18, R17 BREQ ??cpy_0 // 30 size_t t = s; MOVW R25:R24, R17:R16 // 31 do // 32 { // 33 *(y++) = *(x++); ??cpy_1: LD R16, X+ ST Z+, R16 // 34 } // 35 while( --t ); SBIW R25:R24, 1 BRNE ??cpy_1 ??cpy_0: MOV R24, R20 MOV R25, R19 RET // 36 } И тут есть куда копать...
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|