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

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

чтото проект не собиратеся под 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

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


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

чтото проект не собиратеся под gcc 4.3.2 на at90usb162 - в либах путается

make clean
make

 

Помогло?

 

Анатолий.

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


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

clean делал конечно же

не помогло

кстати и на kgp_avr-bu2.18.50.20080115_gcc4.3.0.20080111_avr-libc20080115.7z компилится на ура

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


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

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.

Изменено пользователем aesok

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


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

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

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


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

всем привет, временно осутцтвовал! мы таки выпустили LockOn Черную Акулу на моей второй основной работе :beer: теперь чуток больше времени будет для творчества :yeah:

 

свежак для arm

 

http://www.klen.org/Files/DevTools/kgp_arm...6.0.20081005.7z

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


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

свежак для avr

 

bu2.19.50_20081005

gcc4.4.0_20081003

avrlibc1.6.2

 

http://www.klen.org/Files/DevTools/kgp_avr...avrlibc1.6.2.7z

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


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

ARM

 

http://klen.org/Files/DevTools/kgp_arm-elf...6.0.20081106.7z

 

кто нибудь использует bigendian, если да то где и в чем.

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


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

свежак для 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

Я считаю что это бред...

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


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

Есть вопрос про файл 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 там будет как раньше.

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


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

 

Респект!

А он умеет компилировать под Cortex-M3? Попытался сейчас собрать мигающий светодиод для STM32-H103 от Олимекс, и получил что-то типа

as : unknown option -mcpu=CortexM3 (не дословно).

 

И ещё маленькая просьба - собирать openocd с поддержкой параллельного порта:)

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


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

Свежак А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... у тех кто их писал видимо рак мозга, такого издевательства над языком С я даже от микрософта не видал.

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


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

2_AHTOXA

-mcpu=CortexM3 я патсталом :)

Я ж написал - не дословно:) Я тупо пытался скомпилить пример с олимекса, поправив имена компилятора и проч.

для GCC нада -mtumb -mcpu=cortex-m3

Ну вот, на это и ругалось:)

как проект соберется отпешитесь что все впорядке или не в порядке , сам хочу в терре купить олимекс

плату STM32-H103

У меня как раз такая. Хорошо, завтра вечерком скачаю и отпишусь.

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

У меня вроде до objcopy дело не доходило... Хотя я не углублялся, решил сначала спросить, возможно ли это в принципе.

посмотрел исходники примеров и либ STM... у тех кто их писал видимо рак мозга, такого издевательства над языком С я даже от микрософта не видал.

Это да, это очень сильно:-)))

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


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

как проект соберется отпешитесь что все впорядке или не в порядке , сам хочу в терре купить олимекс

плату STM32-H103

 

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

 

Докладываю, скомпилировалось. Но bin-файл получился за 500Мб:-) Что надо сказать objcopy?

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


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

Докладываю, скомпилировалось. Но bin-файл получился за 500Мб:-) Что надо сказать objcopy?

arm-kgp-elf-objcopy -O ihex ../../out/image.elf ../../out/image.hex
arm-kgp-elf-objcopy -O elf32-littlearm -S ../../out/image.elf ../../out/image.bin
arm-kgp-elf-objdump -x --syms ../../out/image.elf > ../../out/image.dmp
arm-kgp-elf-objdump -h -S ../../out/image.elf > ../../out/image.lss
arm-kgp-elf-size -B -t -x ../../out/image.elf

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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