|
|
  |
свежак KGP win32/arm/avr/mips/m68k, GNU tools chain |
|
|
|
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... у тех кто их писал видимо рак мозга, такого издевательства над языком С я даже от микрософта не видал. Это да, это очень сильно:-)))
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
  |
14 чел. читают эту тему (гостей: 14, скрытых пользователей: 0)
Пользователей: 0
|
|
|