Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: свежак KGP win32/arm/avr/mips/m68k
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26
adnega
Цитата(Genadi Zawidowski @ Dec 2 2011, 16:09) *
Попробуйте то же самое на yagarto - есть подозрение, что проблема в "демке", а не в компиляторе.


С демкой разобрался, но с FPU пока не работает (не уверен).
klen
Цитата(adnega @ Dec 2 2011, 17:55) *
С демкой разобрался, но с FPU пока не работает (не уверен).

воткните комиллеру опции -mthumb -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard
будет генерится код для fpu, в сборке под cortex-m4f все протянуто (libgcc,libc,libm)

с нетерпением жду результов

следующий свежак будет 'мои релизом', поэтому хочется его оотестить в хвос и в гриву. будет особыс спросбом собраны libgcc и libc(newlib) чтоб гарантировать чоб в бинарь неприлазило вско гадость.
adnega
Цитата(klen @ Dec 4 2011, 06:22) *
воткните комиллеру опции -mthumb -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard
будет генерится код для fpu, в сборке под cortex-m4f все протянуто (libgcc,libc,libm)

с нетерпением жду результов

следующий свежак будет 'мои релизом', поэтому хочется его оотестить в хвос и в гриву. будет особыс спросбом собраны libgcc и libc(newlib) чтоб гарантировать чоб в бинарь неприлазило вско гадость.


Спасибо, буду пробовать.
Боюсь, что воевать придется с либой, которая поставляется с демо-примером...

Кста, у Вас уже есть на чем самому пробовать?
klen
Цитата(adnega @ Dec 4 2011, 16:35) *
Спасибо, буду пробовать.
Боюсь, что воевать придется с либой, которая поставляется с демо-примером...

Кста, у Вас уже есть на чем самому пробовать?

ечть, но руки не доходят, веремени нехватает
klop
Прошу прощения за отвлеченный вопрос:
Где можно найти гнушные тулзы под АВР АРМ собранные со статическими либами (чтоб под старыми версиями Линуксов нормально бегали)
Заранее спасибо
klen
Цитата(klop @ Dec 18 2011, 11:04) *
Прошу прощения за отвлеченный вопрос:
Где можно найти гнушные тулзы под АВР АРМ собранные со статическими либами (чтоб под старыми версиями Линуксов нормально бегали)
Заранее спасибо

в чем проблема? какая связь между версиями линукса и компиллером?
alx2
Цитата(klop @ Dec 18 2011, 12:04) *
Где можно найти гнушные тулзы под АВР АРМ собранные со статическими либами (чтоб под старыми версиями Линуксов нормально бегали)

Встречный вопрос: что мешает их собрать вместо того чтобы искать? Если я правильно понимаю, для этого должно быть достаточно указать LDFLAGS=-all-static
klop
Цитата(alx2 @ Dec 20 2011, 08:24) *
Встречный вопрос: что мешает их собрать вместо того чтобы искать? Если я правильно понимаю, для этого должно быть достаточно указать LDFLAGS=-all-static


По тому что не очень понятно как это делать. На каком линухе собирать что бы было меньше мороки с поиском пакетов и потом работало на RHEL 4. Какие RPM должны быть установлены.
Canis Dirus
Цитата(klen @ Nov 29 2011, 15:24) *
зачем извращатся лишней инструкцийе, попробуйте потестить оновленую сборку (-2 поста вверх), все соберется из стндартных исходников

Затем, что ругань про «registers may not be the same» объявлена официальной и соответствующей документации. Недовольным предлагают писать в Спортлото.
klen
Цитата(Canis Dirus @ Dec 29 2011, 11:50) *

кем и зачем. все четко - для коротких операндов нет ограничения, для длинного есть. в чем новость то? или я чето проспал?
Canis Dirus
Цитата(klen @ Dec 30 2011, 22:18) *
кем и зачем. все четко - для коротких операндов нет ограничения, для длинного есть.

Мейнтенерами GNU binutils. Затем, что это не баг, это фича: «A closer read of the ARMv7m reference manual confirms that for any of the strex instructions (word, half word, byte), if the register are the same, the result is undefined. So James Greenhalgh's patch is correct, and this bug is invalid».

Цитата(klen @ Dec 30 2011, 22:18) *
в чем новость то? или я чето проспал?

Новость в том, что в gas, начиная с версии 2.21.53, это ограничение есть для всех вариантов STREX. Так что при попытке собрать CMSIS компилятор вывалится с ошибкой на тех самых strexb/strexh (я на это наткнулся со свежей версией тулчейна от CodeSourcery).
klen
свежак для армов
хост масдай 64 бит
http://klen.org/Files/DevTools/x86_64-kgp-..._64-20120117.7z
хост linux64
http://klen.org/Files/DevTools/linux-x86_6..._64-20120117.7z

по просьбам трудящихся для последней сборки была проведена определенная работа с целю статической линковки компонентов тулчейна. соответственно архив стал жирнее. тестируйте.

в этих сборках есть поддержка ядер m4 и m4f
AHTOXA
Протестировал под линуксом, cortex-m3. Работает. Статическая сборка - наконец-то! a14.gif
(Единственный недостаток - русские сообщения. Продолжаю настаивать, что здесь им не место).
Под венду - не пробовал, я пользую исключительно 32-разрядные сборки: мало ли куда меня забросит нелёгкая программистская судьба, а они работают под любой вендойsm.gif
alx2
Цитата(AHTOXA @ Jan 18 2012, 17:51) *
(Единственный недостаток - русские сообщения. Продолжаю настаивать, что здесь им не место).

LANG=C не помогает?
demiurg_spb
Цитата(alx2 @ Jan 19 2012, 06:57) *
LANG=C не помогает?
А под виндузой?
alx2
Цитата(demiurg_spb @ Jan 19 2012, 09:46) *
А под виндузой?

Не помню, как там переменные окружения устанавливаются. Кажется, командой set.
AHTOXA
Цитата(alx2 @ Jan 19 2012, 09:57) *
LANG=C не помогает?

Помогает, спасибо. Но тут есть некоторое неудобство - глобально задавать "LANG=C" я не хочу, поэтому придётся переделывать все makefile-ы. Этого мне тоже делать не хотелось бы sm.gif
Canis Dirus
Цитата(AHTOXA @ Jan 20 2012, 17:41) *
Помогает, спасибо. Но тут есть некоторое неудобство - глобально задавать "LANG=C" я не хочу, поэтому придётся переделывать все makefile-ы. Этого мне тоже делать не хотелось бы sm.gif

А просто LC_MESSAGES=C не подойдёт?
AHTOXA
Нет, от этого весь интерфейс становится английским.
ReAl
свеженькой цветной капустки сборки avr-gcc 4.7.0 хоцца (linux)
Там обещают __pgm, __pgmx и -mstrict-X (да и -maccumulate-args неплохо).
В сборке
avr-kgp-elf-gcc (Klen's GNU package (KGP) for AVR/elf platform) 4.7.0 20110813 (experimental)
этого нет.
demiurg_spb
Это прекрасно!
Теперь avr-gcc ничем окромя даблов не уступает коммерческим компиляторам.
ReAl
Ну уступает/не уступает — тема холивароопасная, но то, что сам GCC как таковой повернулся лицом к мелко-контроллерам с их нюансами — несомненно. Что и дало возможность для avr это реализовать.
Ещё бы fixed point из новых предложений к С допилили.
А то в расширениях gcc целочисленный _Complex давно работает, но я пока не знаю, куда прикрутить :-) А встроенная fixed-point арифметика была бы очень кстати.
demiurg_spb
Так вроде как fixed-point арифметика уже имеется. Я точно с чем-то подобным сталкивался с год назад или даже ранее.
Глянул: из хелпа, идущего с avr-gcc 4.5.1
А патч для зараждающейся поддержки Fixed-Point в avr-gcc идёт ИМХО со времён avr-gcc 4.4.3, возможно и ещё раньше.
CODE
6.14 Fixed-Point Types

As an extension, the GNU C compiler supports fixed-point types as defined in the N1169 draft of ISO/IEC DTR 18037.
Support for fixed-point types in GCC will evolve as the draft technical report changes.
Calling conventions for any target might also change. Not all targets support fixed-point types.

The fixed-point types are
short _Fract, _Fract, long _Fract, long long _Fract, unsigned short _Fract, unsigned _Fract,
unsigned long _Fract, unsigned long long _Fract, _Sat short _Fract, _Sat _Fract, _Sat
long _Fract, _Sat long long _Fract, _Sat unsigned short _Fract, _Sat
unsigned _Fract, _Sat unsigned long _Fract, _Sat unsigned long long _Fract,
short _Accum, _Accum, long _Accum, long long _Accum, unsigned short _Accum,
unsigned _Accum, unsigned long _Accum, unsigned long long _Accum, _Sat short _Accum,
_Sat _Accum, _Sat long _Accum, _Sat long long _Accum, _Sat unsigned short _Accum,
_Sat unsigned _Accum, _Sat unsigned long _Accum, _Sat unsigned long long _Accum.

Fixed-point data values contain fractional and optional integral parts.
The format of fixed-point data varies and depends on the target machine.

Support for fixed-point types includes:

prefix and postfix increment and decrement operators (++, --)
unary arithmetic operators (+, -, !)
binary arithmetic operators (+, -, *, /)
binary shift operators (<<, >>)
relational operators (<, <=, >=, >)
equality operators (==, !=)
assignment operators (+=, -=, *=, /=, <<=, >>=)
conversions to and from integer, floating-point, or fixed-point types
Use a suffix in a fixed-point literal constant:

‘hr’ or ‘HR’ for short _Fract and _Sat short _Fract
‘r’ or ‘R’ for _Fract and _Sat _Fract
‘lr’ or ‘LR’ for long _Fract and _Sat long _Fract
‘llr’ or ‘LLR’ for long long _Fract and _Sat long long _Fract
‘uhr’ or ‘UHR’ for unsigned short _Fract and _Sat unsigned short _Fract
‘ur’ or ‘UR’ for unsigned _Fract and _Sat unsigned _Fract
‘ulr’ or ‘ULR’ for unsigned long _Fract and _Sat unsigned long _Fract
‘ullr’ or ‘ULLR’ for unsigned long long _Fract and _Sat unsigned long long _Fract
‘hk’ or ‘HK’ for short _Accum and _Sat short _Accum
‘k’ or ‘K’ for _Accum and _Sat _Accum
‘lk’ or ‘LK’ for long _Accum and _Sat long _Accum
‘llk’ or ‘LLK’ for long long _Accum and _Sat long long _Accum
‘uhk’ or ‘UHK’ for unsigned short _Accum and _Sat unsigned short _Accum
‘uk’ or ‘UK’ for unsigned _Accum and _Sat unsigned _Accum
‘ulk’ or ‘ULK’ for unsigned long _Accum and _Sat unsigned long _Accum
‘ullk’ or ‘ULLK’ for unsigned long long _Accum and _Sat unsigned long long _Accum
GCC support of fixed-point types as specified by the draft technical report is incomplete:

Pragmas to control overflow and rounding behaviors are not implemented.
Fixed-point types are supported by the DWARF2 debug information format.
Я не пробовал это использовать. Лишь глазом зацепился.
Про сравнения... Я только по функциональным возможностям сравнил - не более.
_Pasha
Цитата(ReAl @ Jan 22 2012, 21:07) *
mstrict-X

По-правильному, так она вообще выключаться не должна, эта фичебага sm.gif Этож додуматься: правильное распределение регистровых пар надо включить!
ReAl
Цитата(demiurg_spb @ Jan 24 2012, 06:48) *
Так вроде как fixed-point арифметика уже имеется. Я точно с чем-то подобным сталкивался с год назад или даже ранее.
...
Я не пробовал это использовать. Лишь глазом зацепился.
Хм, надо глянуть опять. Я тогда попробовал что-то запустить, оно выругалось и я отстал.
klen
я попробую собрать для авэрок..
ARV
Цитата(klen @ Jan 24 2012, 17:51) *
я попробую собрать для авэрок..
для Win32, пожалуйста...
demiurg_spb
Цитата(ARV @ Jan 24 2012, 19:22) *
для Win32, пожалуйста...
+1
ReAl
Для win32 есть в теме на AVRfreaks по ссылке из моего сообщения
http://www.avrfreaks.net/index.php?name=PN...p=909086#909086
доберусь до win — попробую.
klen
свежий OpenOCD собраный с поддержкой STLink-v1/2
win64:
http://klen.org/Files/DevTools/x86_64-kgp-...0120217.tar.bz2

linux64
http://klen.org/Files/DevTools/linux-x86_6...0120217.tar.bz2
AHTOXA
То ли лыжи не едут... Распаковал линуксовый openocd в папку kgp, где у меня всё остальное, с сохранением структуры папок (bin, lib, share).
Пытаюсь запустить:
Код
openocd -f interface/stlink-v1.cfg

ругается:
Код
Can't find interface/stlink-v1.cfg

(kgp/bin - в PATH).
Ну, думаю, сейчас победю. Ставлю openocd из репозитория, и перезаписываю все файлы свежаком. Всё равно не находит! Что я делаю не так? (И как правильно?)
AHTOXA
Ага, кажется понял, в чём дело. Пути поиска жёстко зашиты:
Код
Debug: 12 1 configuration.c:45 add_script_search_dir(): adding /home/anton/.openocd
Debug: 13 1 configuration.c:45 add_script_search_dir(): adding /opt/arm-kgp-eabi/share/openocd/site
Debug: 14 1 configuration.c:45 add_script_search_dir(): adding /opt/arm-kgp-eabi/share/openocd/scripts

Перенёс скрипты в ~/.openocd, вроде полегчало, скрипты находятся. Но работать -- пока не работает.
Выдаёт попеременно то просто
Код
Error: open failed
, то
Код
libusb couldn't open USB device /dev/bus/usb/005/005: Permission denied.
libusb requires write access to USB device nodes.
Error: open failed

Правила для openocd в /etc/udev/rules.d я скопировал.
Пока застрялsm.gif
klen
Цитата(AHTOXA @ Feb 18 2012, 14:27) *
Правила для openocd в /etc/udev/rules.d я скопировал.
Пока застрялsm.gif

Судя по соообщениям - UDEV не дал шару на устройства. Мож он не запушен вовсе? Можно тупо проверить кто виновать - попробуте запустить openocd под рутом, если получится - c UDEV нада разобратся. если нет - то openocd (но у мея то отлаживаестя и жгет флеш.... laughing.gif )
AHTOXA
Под рутом не ругается, но всё равно не работаетsm.gif
Нашёл вот такую штуку: https://github.com/texane/stlink. Это gdb-сервер, умеющий работать с st-link v1 и st-link v2. Попробовал. Сервер вроде цепляется за отладчик, радостно рапортует о том, что программа загружена в память. Но при попытке продолжить выполнение ничего не происходит. Потом становится видно, что и не прошилось ничего. Видимо не зря на форумах пишут, что нормально она работает только с v2.
Зато имеющаяся в комплекте отдельная утилита программирования - таки работает! (Прошивает только bin-файлы, на остальных вариантах спотыкается)
Мне этого вполне достаточноsm.gif
ARV
Цитата(ReAl @ Jan 22 2012, 21:07) *
Там обещают __pgm, __pgmx и -mstrict-X (да и -maccumulate-args неплохо).
что-то я не понял: обещают или уже сделано? пробую сам - не выходит каменный цветок sad.gif или я чего-то не понимаю?
demiurg_spb
Уже было сделано, и даже переделаноsm.gif
__pgm заменили позже на __flash
ARV
Цитата(demiurg_spb @ Mar 22 2012, 11:51) *
Уже было сделано, и даже переделано sm.gif
__pgm заменили позже на __flash
возможно, я вместо двух подчеркиваний делал одно... проверю sm.gif

а вообще, мне понравилась новая сборка: колупаюсь тут с проектом на тини13, так простой переход на эту версию сразу дал выигрыш по флешу больше 80 байтов! правда почему-то эту сборку не полюбила AVR Studio 4.18.

добавлено в 12:33.
проверил: не работает __flash, без ошибок компилится __pgm, но результат как-то не радует... обращаюсь к массиву структур во flash, так компилятор генерирует загадочный код:
Цитата
static
uint8_t load_color(uint8_t i){
//__pgm const FIX_COLOR *ptr = &fix_colors[i];
uint8_t tmp = fix_colors[i].mode;
c0: 90 e0 ldi r25, 0x00 ; 0
c2: 66 e0 ldi r22, 0x06 ; 6
c4: 70 e0 ldi r23, 0x00 ; 0
c6: 8b d1 rcall .+790 ; 0x3de <__mulhi3>
c8: ac 01 movw r20, r24
ca: 4c 5e subi r20, 0xEC ; 236
cc: 5f 4f sbci r21, 0xFF ; 255
ce: fa 01 movw r30, r20
d0: 84 91 lpm r24, Z
if(tmp == MODE_FIXED){
d2: 81 30 cpi r24, 0x01 ; 1
d4: 99 f4 brne .+38 ; 0xfc <load_color+0x3c>
r = fix_colors[i].r;
d6: 9a 01 movw r18, r20
d8: 2d 5f subi r18, 0xFD ; 253
da: 3f 4f sbci r19, 0xFF ; 255
dc: f9 01 movw r30, r18
de: 94 91 lpm r25, Z
e0: 90 93 68 00 sts 0x0068, r25
g = fix_colors[i].g;
e4: 9a 01 movw r18, r20
e6: 2c 5f subi r18, 0xFC ; 252
e8: 3f 4f sbci r19, 0xFF ; 255
ea: f9 01 movw r30, r18
ec: 94 91 lpm r25, Z
ee: 90 93 69 00 sts 0x0069, r25
b = fix_colors[i].b;
f2: fa 01 movw r30, r20
f4: 35 96 adiw r30, 0x05 ; 5
f6: 94 91 lpm r25, Z
f8: 90 93 6a 00 sts 0x006A, r25
}
return tmp;
}
fc: 08 95 ret
очевидно ведь, что все данные в структуре хранятся последовательно и можно просто последовательно увеличивать Z на 2 или 1 - а лепится код вычисления с пересылками sad.gif и только в самом последнем обращении использована команда adiw
deMax07
Помогите со сборкой для процессора 1890вм2т(mips, komdiv32), язык си и ассемблер, ОС: opensuse12.1, для R3000 сборка есть.
klen
Цитата(deMax07 @ Mar 27 2012, 12:14) *
Помогите со сборкой для процессора 1890вм2т(mips, komdiv32), язык си и ассемблер, ОС: opensuse12.1, для R3000 сборка есть.

посмотрите выше по постам - я уже собирал и выкладывал
deMax07
[quote name='klen' date='Mar 28 2012, 18:08' post='1042884'.....посмотрите выше по постам - я уже собирал и выкладывал
[/quote]я уже скачивал, пишет не могу запустить бинарный файл. Самому хочется собрать, хотя бы скажите какие дополнительные аргументы комдиву в отличие от r3000.
klen
Цитата(deMax07 @ Mar 29 2012, 10:11) *
[quote name='klen' date='Mar 28 2012, 18:08' post='1042884'.....посмотрите выше по постам - я уже собирал и выкладывал
я уже скачивал, пишет не могу запустить бинарный файл. Самому хочется собрать, хотя бы скажите какие дополнительные аргументы комдиву в отличие от r3000.

сборка 64 битная кажется была. иначе бы бинарники бы исполнялисьбы.
по поводу самостоятельной сборки http://gcc.gnu.org/install/index.html
комдиву никаких дополнительных ключей быть не может - ядро такоеже как и у r3000 - компилятор для ядра код генерит ане для конкретной микросхемы. в НИИСИшной реализации r3000+обвязка есть ошибки и гдюки или назовем это особенностями .. по этому вопросу к чипмейкеу - НИИСИ РАН, но они ничего не дадут, я пробы вал. патчи к старым версиям компиллера и обрывки информации которые потребители вытрясли из НИИСИ нада брать у этих несчастных. эти патчи можно перепортировать на текщий код gcc. если бы ядро было бы сделано точной копией r3000 то вообще проблем небыло бы. я так понимаю суть вопроса. считаю комдив в техническом контексте мертвым проектом - инфа закрыта, цена микросхемы ~70т.р. серийное производство под вопросом, те несчастные с котоорыми общался - говорили что это все под застав навязано и им приходися костылями заставлять его работать, я думаю дело не в ядре а втом как там в нутри шины и шинная матрица работают (возможно это самодельная часть устройства)- это может влиять на работу конвеера ядра, на задерки и затыки.
я могу во всем что я написал оошибатся. если есть знающие комдив близко - рад буду почитать описание ситуации с комдивом достоверно. хотя интерес медленно угасает.
deMax07
Цитата(klen @ Mar 29 2012, 12:57) *
сборка 64 битная кажется была. иначе бы бинарники бы исполнялисьбы.

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

На счет бесперспективности процессора, у нас для космоса больше ничего нет. Скоро 5890... выйдет, тот же 1890вм2т но с тройным резервированием в камне и очень хорошей радстойкостью, очень нужная вещь.
А для земли и тем более домашнего использования, понятно что проц абсолютно бесперспективен(разве только для военки).
AHTOXA
Цитата(klen @ Feb 18 2012, 01:22) *
свежий OpenOCD собраный с поддержкой STLink-v1/2
win64:
http://klen.org/Files/DevTools/x86_64-kgp-...0120217.tar.bz2

Не запускается, пишет "ошибка при запуске приложения". (Win 7 Pro 64)
klen
Цитата(AHTOXA @ Apr 4 2012, 09:31) *
Не запускается, пишет "ошибка при запуске приложения". (Win 7 Pro 64)

еще чегонить пишет?
AHTOXA
Цитата
Ошибка при запуске приложения (0xc000007b). Для выхода из приложения нажмите кнопку "OK".
-Игорь-
Цитата(klen @ Jan 17 2012, 14:34) *
свежак для армов
хост linux64
http://klen.org/Files/DevTools/linux-x86_6..._64-20120117.7z

для линукса пишет - нот фаунд. прошелся еще по нескольким более ранним ссылкам - тоже самое, ссылки в никуда sad.gif
klen
Цитата(-Игорь- @ Apr 12 2012, 17:27) *
для линукса пишет - нот фаунд. прошелся еще по нескольким более ранним ссылкам - тоже самое, ссылки в никуда sad.gif

старье чуток пдчистил. на выходных постараюсь выложить свежак. уж для линуха точно - обновил вчера, потестю и выложу.
AHTOXA
И openocd, пожалуйста (win/linux, с поддержкой stlink). Вдруг у меня новый заработаетsm.gif
Genadi Zawidowski
Цитата(klen @ Apr 13 2012, 12:57) *
старье чуток пдчистил. на выходных постараюсь выложить свежак. уж для линуха точно - обновил вчера, потестю и выложу.


win32 host - arm target, avr target... если не сложно!
ПОльзуюсь
Код
arm-kgp-eabi-gcc.EXE (Klen's GNU package (KGP) for ARM/elf platform) 4.7.0 20110618 (experimental)
-Игорь-
Цитата(klen @ Apr 13 2012, 12:57) *
старье чуток пдчистил. на выходных постараюсь выложить свежак. уж для линуха точно - обновил вчера, потестю и выложу.

Ок. Спасибо. Ради этих библиотек поставил ubuntu 64. до этого сидел под 32ой sm.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.