Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: свежак 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
klen
в результате меганаведения порядка сделал "MegaPack" свежаков для мелко армов
"по многочисленным просьбам общественности" доделал сборочные скрипты для сборки свежаков под хосты x86_64-kgp-mingw32 и i686-kgp-mingw32
вот оно кучей:

www.klen.org/Files/DevTools/x86_64-kgp-linux-gnu/arm-kgp-eabi_@_x86_64-kgp-linux-gnu_20160228_DICHROMENA.7z
www.klen.org/Files/DevTools/x86_64-kgp-mingw32/arm-kgp-eabi_@_x86_64-kgp-mingw32_20160228_DICHROMENA.7z
www.klen.org/Files/DevTools/i686-kgp-mingw32/arm-kgp-eabi_@_i686-kgp-mingw32_20160229_DICHROMENA.7z

а также по пути сборки тулсов хост-хост, может кому понядобится
www.klen.org/Files/DevTools/x86_64-kgp-linux-gnu/x86_64-kgp-mingw32_@_x86_64-kgp-linux-gnu_20160228_DICHROMENA.7z
www.klen.org/Files/DevTools/x86_64-kgp-mingw32/x86_64-kgp-mingw32_@_x86_64-kgp-mingw32_20160228_DICHROMENA.7z
www.klen.org/Files/DevTools/i686-kgp-mingw32/i686-kgp-mingw32_@_i686-kgp-mingw32_20160228_DICHROMENA.7z

в связи с возникновением у меня интереса к относительно новым PIC32MZ с FPU наверно сделаю все тоже самое но для MIPS

если в пактах обнаружатся глюки и ли что то нечаянно потерялось - сообщайте, поправлю.
также мне важна обратная связь с пользователями сборок для хостов x86_64-kgp-mingw32 и i686-kgp-mingw32 в связи с тем что я не могу их протестировать.

ну и вообще это все нужно?
demiurg_spb
Цитата(klen @ Feb 29 2016, 00:52) *
www.klen.org/Files/DevTools/x86_64-kgp-mingw32/arm-kgp-eabi_@_x86_64-kgp-mingw32_20160228_DICHROMENA.7z

LDFLAGS += --specs=nano.specs

получаю на стадии линковки:
ld.exe: cannot find -lc_nano


klen
Цитата(demiurg_spb @ Mar 2 2016, 13:39) *
LDFLAGS += --specs=nano.specs

получаю на стадии линковки:
ld.exe: cannot find -lc_nano


а как бы все правильно, newlib nano я не собираю, в пакетах у меня всегда newlib.
какоето время назад я пробывал пробывал newlib nano и обнаружил что она практически не отличается от базовой ветки newlib, при этом не оновляется и вообще уже протухла.
есть два варианта
1. забить на --specs=nano.specs, результат скорее всего не изменится
2. самостоятельно собрать newlib-nano как обычную либу

я прихожу к выводу что для тех случаев когда нет Linux, libc в ее большинстве реализация (которые сползают с Linux в сторону более легких ОС или вообще лысой прилагухе на микроконтроллеры ) приносит более вреда чем пользы - засирает мозги программисту. исключение libm - ну и эту я похерил, стандартная реализация медленная... поэтому свой самописный легковесный libc libm без всяких костылей которые тянуься из Linux и тп. например _sbrk и все что ее тянет в стандартной реализации - ну и нафига мне баян если я TLSF использую...
както так.
RabidRabbit
www.klen.org/Files/DevTools/x86_64-kgp-linux-gnu/arm-kgp-eabi_@_x86_64-kgp-linux-gnu_20160228_DICHROMENA.7z

небольшой проект для M0+ собирается.
только в отличие от предыдущей сборки, при линковке попросил memmove, долил в исходники memmove - оно и собралось sm.gif
таргет дома, позже залью в него получившийся бинарник.
demiurg_spb
Цитата(klen @ Mar 4 2016, 01:55) *
я пробывал пробывал newlib nano и обнаружил что она практически не отличается от базовой ветки newlib
Попробовал прямо сейчас на текущем проекте:
c nano: 24996 байт
без nano: 35172 байт
ИМХО nano весьма и весьма полезна и вы зря её игнорите(((
klen
Цитата(demiurg_spb @ Mar 4 2016, 15:29) *
Попробовал прямо сейчас на текущем проекте:
c nano: 24996 байт
без nano: 35172 байт
ИМХО nano весьма и весьма полезна и вы зря её игнорите(((

возможно от кода приложения зависит.
я и newlib игнорирую тоже. самописный маленький libc использую.
с форматированным выводом у меня вопрос решен в корне - я использую с++14 благо gcc его поддерживает и реализовано все на шаблонах с переменным числом параметров . в итоге код минимального размера, нельзя испортить стек кривыми параметрами. одно это уже много бы для меня значение бы если был вопрос переводить все проекты на с++ или остатся на c.

у всех разные условия - поэтому универсального решения нет.
Шаманъ
Цитата(klen @ Feb 28 2016, 23:52) *
в результате меганаведения порядка сделал "MegaPack" свежаков для мелко армов
"по многочисленным просьбам общественности" доделал сборочные скрипты для сборки свежаков под хосты x86_64-kgp-mingw32 и i686-kgp-mingw32
вот оно кучей:

Что-то на Cortex-M0 вылетает на делении sad.gif Извиняюсь - думал, что обновил GCC, а он был у меня старый - вроде заработало sm.gif
klen
сборочка для MIPS
www.klen.org/Files/DevTools/linux-x86_64/mips-kgp-elf_@_x86_64-kgp-linux-gnu_20160307_DICHROMENA.7z
klen
свежак для мелкоармиков
www.klen.org/Files/DevTools/x86_64-kgp-linux-gnu/arm-kgp-eabi_@_x86_64-kgp-linux-gnu_20160329_MELISSA.7z
Шаманъ
Приветствую всех!

А это нормально:
D:\.........\Front>arm-kgp-eabi-size -A Debug/Main.elf
Debug/Main.elf :
section size addr
.isr_vector 484 134217728
.text 1168 134218212
.data 4 536870912
.bss 80 536870916
._stack 200 536870996

.comment 104 0
.ARM.attributes 51 0
.debug_aranges 104 0
.debug_info 4984 0
.debug_abbrev 1004 0
.debug_line 741 0
.debug_frame 232 0
.debug_str 2234 0
.debug_loc 238 0
.debug_ranges 144 0
Total 11772


D:\.........\Front>arm-kgp-eabi-size -B Debug/Main.elf
text data bss dec hex filename
1652 4 280 1936 790 Debug/Main.elf


В смысле, что во втором варианте вызова size в bss всчитывается _stack ?
Lomaker
Уже больше года назад я в этой теме поднимал вопрос по поводу проца 5890ВЕ1Т. Тогда klen мне в числе прочего ответил, что
Цитата(klen @ Feb 13 2015, 12:09) *
...какието особенности были с этим чипом(косяки при прходе некоторых команд по конвееру к которым вакцину в виде нопов нужно бвло догенерять...), возможно чтото изменилось.

Так вот, железка наконец-то изготовлена, пришло время разобраться с этим поконкретнее. Кто-нибудь может ответить, что именно за косяки и как это лечится?

klen
Цитата(Lomaker @ Apr 6 2016, 09:35) *
Уже больше года назад я в этой теме поднимал вопрос по поводу проца 5890ВЕ1Т. Тогда klen мне в числе прочего ответил, что

Так вот, железка наконец-то изготовлена, пришло время разобраться с этим поконкретнее. Кто-нибудь может ответить, что именно за косяки и как это лечится?


я думаю никто кроме нас. как обычно.
с тех пор как я разговаривал по телефону с разработчиками комдива ( тогда они сказали что есть косяки в конвейере, и при некоторых комбинациях инструкций криво выполнялись, эти комбинации были известны и их надо было дробить нопами. это было точно больше 3 лет назад. нверно исправили)

2_Lomaker
предлагаю сделать сботку тулсов. проверить как оно работает. это ведь не сложно?
я соберу а Вы прогоните.
у Вас документация на него есть? мне доподлинно нужно знать с какого ядра МИПС драли ядро комдива - знать доступные иструкции проца есть желание законное.
Lomaker
В документации, которая у меня есть, никаких упоминаний о подобных вещах я не встречал. А прогнать - не так уж и просто: нужно сначала поиметь работающий начальный загрузчик, который зашивается у нас в однократно программируемое ПЗУ. Каждый новый вариант - перепайка микросхем. Так что хотелось бы знать, что и как лечить. Код начального загрузчика полностью на ассемблере, я мог бы и руками в него nop-ов наставить, знать бы куда (не после каждой же инструкции, хотя и это тоже вариант на крайний случай).

P.S. Система команд достаточно подробно в описании расписана, ясен пень, без упоминания того, с чего она передиралась. Вроде бы -march=r3000 должно соответствовать действительности. Если интересует, могу файлик прислать, пишите адрес.
klen
2_Lomaker
Если не ДСП, дайте документацию.
Интересно.
Загрузчик у Вас в любом случае быть должен неважно какого приготовления.
Как будет попробуем покомпилять прилагуху.
Боюсь спросить а jtag присутствует?
nanorobot
www.klen.org/Files/DevTools/x86_64-kgp-linux-gnu/arm-kgp-eabi_@_x86_64-kgp-linux-gnu_20151209_HYPERICUM.7z

Собрал пару рабочих проектов (один на STM32F407, другой на STM32F373) - оба улетают в HardFault

для примера опции компилятора из проекта на 407:

USE_OPT = -O3 -ggdb -fomit-frame-pointer -lm -falign-functions=16

klen
нужен код, просто так в хардфаул улетать может все что угодно
nanorobot
Цитата(klen @ Apr 10 2016, 21:40) *
нужен код, просто так в хардфаул улетать может все что угодно


Кода очень много. HF что то типа impecise error, то есть просто так место где оно происходит не выявить. При сборке gcc-arm-none-eabi 4.9 HF не происходит. Может для Вашего компилера требуется специфичечкий набор опций?
adnega
Цитата(nanorobot @ Apr 10 2016, 21:02) *
Кода очень много. HF что то типа impecise error, то есть просто так место где оно происходит не выявить. При сборке gcc-arm-none-eabi 4.9 HF не происходит. Может для Вашего компилера требуется специфичечкий набор опций?

Я тоже пользуюсь сборками от klen. На 32-битной windows при получении остатка от деления имею HF (для ядра cortex-m0).
Временно перешел на gcc-arm-none-eabi, но она по размеру кода фатально проигрывает klen-овской.
AHTOXA
Цитата(adnega @ Apr 10 2016, 23:52) *
Временно перешел на gcc-arm-none-eabi, но она по размеру кода фатально проигрывает klen-овской.

Фатально - это как-то ненаучноsm.gif Сколько это в процентах/байтах?
Lomaker
Цитата(klen @ Apr 9 2016, 14:22) *
2_Lomaker
Если не ДСП, дайте документацию.
Интересно.
Загрузчик у Вас в любом случае быть должен неважно какого приготовления.
Как будет попробуем покомпилять прилагуху.
Боюсь спросить а jtag присутствует?

В файле по крайней мере не видел упоминаний про ДСП. Только куда слать, на адрес, что у Вас на klen.org указан?
JTAG мы не вывели, планируем одним портом RS-232 отделаться для связи. Кое-что у меня задышало уже, кстати. Что-то там какие-то весёлые глюки присутствуют с порядком байт, по крайней мере, при little-endian включении. Попробуем в ближайшем времени его в big-endian включить, после этого отпишусь поподробнее, что там и как на самом деле.
nanorobot
Цитата(adnega @ Apr 10 2016, 23:52) *
Я тоже пользуюсь сборками от klen. На 32-битной windows при получении остатка от деления имею HF (для ядра cortex-m0).
Временно перешел на gcc-arm-none-eabi, но она по размеру кода фатально проигрывает klen-овской.


не знаю, не знаю ...
ничего личного, только цифры:

arm-none-eabi-gcc -03 USE_LTO = no, 82788 байт
arm-none-eabi-gcc -03 USE_LTO = yes, 92512 байт

arm-kgp-eabi-gcc -03 USE_LTO = no, 84616 байт + HardFault (INVSTATE, UFSR_BIT_1 = 1 )
arm-kgp-eabi-gcc -03 USE_LTO = yes, error: lto-wrapper failed
Шаманъ
Цитата(adnega @ Apr 10 2016, 21:52) *
Я тоже пользуюсь сборками от klen. На 32-битной windows при получении остатка от деления имею HF (для ядра cortex-m0).
Временно перешел на gcc-arm-none-eabi, но она по размеру кода фатально проигрывает klen-овской.

Линкеру флаги не забыли указать про то какое у Вас ядро? Если забыли, то библиотеки могут линковаться от другого ядра - я на эти грабли с М0 как-то наступил rolleyes.gif .

У меня не самая последняя сборка (которая DICHROMENA под win64) работает нормально.

P.S. А что там по моему вопросу с arm-kgp-eabi-size (пост http://electronix.ru/forum/index.php?showt...t&p=1416125 )?
nanorobot
Цитата(Шаманъ @ Apr 11 2016, 14:13) *
Линкеру флаги не забыли указать про то какое у Вас ядро? Если забыли, то библиотеки могут линковаться от другого ядра - я на эти грабли с М0 как-то наступил rolleyes.gif .

У меня не самая последняя сборка (которая DICHROMENA под win64) работает нормально.

P.S. А что там по моему вопросу с arm-kgp-eabi-size (пост http://electronix.ru/forum/index.php?showt...t&p=1416125 )?


Если вопрос(или ответ?) был мне - мейк файл и скрипт линкера из примера ChibiOs для STM32F407 от Jiovanni di Sirio. Мейк файл скорректирован для моего проекта. Скрипт линкера не менялся. Пробуя сборку от klen заменил в мейкфайле строку "TRGT = arm-none-eabi-" на строку "TRGT = arm-kgp-eabi-" а так же изменено значение "USE_LTO = yes" на "no"
adnega
Цитата(AHTOXA @ Apr 11 2016, 08:21) *
Фатально - это как-то ненаучноsm.gif Сколько это в процентах/байтах?

Разница порядка 100 байт. На примере двух приложений BL и SW.
Код
+-----+-------------------------------+------------------------------+
|     |      gcc-arm-none-eabi        |     arm-kgp-eabi-x86_32      |
+-----+-------------------------------+------------------------------+
| BL  | TEXT=5024, DATA=4,  BSS=2140  | TEXT=4936, DATA=4,  BSS=2140 |
| SW  | TEXT=9656, DATA=28, BSS=4460  | TEXT=9552, DATA=28, BSS=4460 |
+-----+-------------------------------+------------------------------+
|     | gcc version 4.9.3 20150303    | gcc version 4.8.0 20121121   |
|     | (release) [ARM/embedded-4_9-  |(experimental) (Klen's GNU    |
|     | branch revision 221220] (GNU  | package (KGP) for ARM/elf    |
|     | Tools for ARM Embedded        | platform)                    |
|     | Processors)                   |                              |
+-----+-------------------------------+------------------------------+

При этом код arm-kgp-eabi-x86_32 не рабочий, т.к. операция взятия остатка уводит в HF - допускаю, что чего-то не хватает в либах.
Шаманъ
Цитата(nanorobot @ Apr 11 2016, 12:36) *
Если вопрос(или ответ?) был мне - мейк файл и скрипт линкера из примера ChibiOs для STM32F407 от Jiovanni di Sirio. Мейк файл скорректирован для моего проекта. Скрипт линкера не менялся. Пробуя сборку от klen заменил в мейкфайле строку "TRGT = arm-none-eabi-" на строку "TRGT = arm-kgp-eabi-" а так же изменено значение "USE_LTO = yes" на "no"

Я Вам предложил один из возможных сценариев возникновения проблемы. Дальше смотрите сами. ChibiOS не пользую и о таком примере понятия не имею (да и вообще примеры не люблю смотреть) - потому более ничего прокомментировать не смогу.
demiurg_spb
Не пойму, почему народ не использует свежие и проверенные компиляторы для сравнения со сборками Клёна?

Нынче актуальна эта версия:
gcc version 5.3.1 20160307 (release) [ARM/embedded-5-branch revision 234589] (GNU Tools for ARM Embedded Processors)

https://launchpad.net/gcc-arm-embedded/5.0/5-2016-q1-update
AHTOXA
У меня при попытке перехода на неё с 2015q1, компилятор на текущем проекте неожиданно запросил _sbrk() и компанию. Так что я пока отложил переход (времени выяснять, от чего там подцепились malloc() и компания, не было).
demiurg_spb
Цитата(AHTOXA @ Apr 11 2016, 16:35) *
У меня нет таких проблем...
nosys линкуете?
AHTOXA
Цитата(demiurg_spb @ Apr 12 2016, 00:22) *
nosys линкуете?

Нет конечно. Иначе бы не заметилsm.gif
При беглом просмотре показалось, что дело в каких-то структурах TZDATA, которые пытаются распределиться при подключении time.h (или при использовании каких-то функций оттуда).
RabidRabbit
www.klen.org/Files/DevTools/x86_64-kgp-linux-gnu/arm-kgp-eabi_@_x86_64-kgp-linux-gnu_20160329_MELISSA.7z

тот же самый небольшой проект для Cortex-M0+ по сравнению с предыдущей сборкой:
было (размер text): 115692, стало 115352. Хоть относительно общего размера изменения небольшие, на самом деле большую часть кода занимают константы - всяческая графика.
nanorobot
Цитата(RabidRabbit @ Apr 12 2016, 11:49) *
www.klen.org/Files/DevTools/x86_64-kgp-linux-gnu/arm-kgp-eabi_@_x86_64-kgp-linux-gnu_20160329_MELISSA.7z

тот же самый небольшой проект для Cortex-M0+ по сравнению с предыдущей сборкой:
было (размер text): 115692, стало 115352. Хоть относительно общего размера изменения небольшие, на самом деле большую часть кода занимают константы - всяческая графика.


И никаких HardFault-ов? Мейкфайлом и скриптом линкера не поделитесь?


У меня что мелисса, что hypericum - хардфаулт на двух разных проектах..
Конечно можно было бы задаться целью и найти причину ХФ. Но мотивации особой нет, больше люботытство, С arm-none-eabi v4.9 все ОК

почта r*a*i*n*6*2*s*t*e*r* dog gmail.com
Lomaker
2_klen
Обещал отписаться по поводу глюков с порядком байт в 5890ВЕ1Т - выполняю.
По большому счёту, это не вопрос компиляции даже. У нас вышло так, что содержимое ПЗУ он интерпретирует всегда одинаково, хотя судя по описанию, он должен мочь стартовать как в big-endian режиме, так и в little-endian (в зависимости от логического уровня на одном из выводов в момент выхода из состояния reset).
Писать программу и компилировать её надо для big-endian режима, с точки зрения программиста (которого не особо интересует, что и на каких линиях шины адреса и данных при этом выставляется) всё будет выглядеть именно так.
А вот чтобы "скормить" процессору дамп для прошивки 32-разрядного ПЗУ, полученный из big-endian elf-файла, нужно в каждом 32-разрядном слове этого дампа поменять местами 0-ой байт с 3-им, а 1-ый со 2-ым. В результате получится little-endian код (касаемо собственно команд).
Если программа не содержит инструкций работы с памятью байтами и полусловами (lbu, lhu, sb, sh), то можно его сразу компилировать, как будто он little-endian, и получать из него дамп для прошивки - результат будет идентичным.
А вот если в программе присутствует это дело вместе с данными, описанными как байты (строки символов) и полуслова, то нужно обязательно действовать по первому варианту (компилировать big-endian и потом разворачивать), потому как строка, описанная в исходнике как "01234567abcd" в дампе должна превратиться в "32107654dcba".
При компиляции в little-endian такой разворот выполнен не будет, соответственно код, печатающий эту строку путём выборки байт с последовательно инкрементирующегося адреса, будет работать неправильно.
TJ27
Цитата(Lomaker @ Apr 14 2016, 12:58) *
2_klen
Обещал отписаться по поводу глюков с порядком байт в 5890ВЕ1Т - выполняю.
По большому счёту, это не вопрос компиляции даже. У нас вышло так, что содержимое ПЗУ он интерпретирует всегда одинаково, хотя судя по описанию, он должен мочь стартовать как в big-endian режиме, так и в little-endian (в зависимости от логического уровня на одном из выводов в момент выхода из состояния reset).
Писать программу и компилировать её надо для big-endian режима, с точки зрения программиста (которого не особо интересует, что и на каких линиях шины адреса и данных при этом выставляется) всё будет выглядеть именно так.
А вот чтобы "скормить" процессору дамп для прошивки 32-разрядного ПЗУ, полученный из big-endian elf-файла, нужно в каждом 32-разрядном слове этого дампа поменять местами 0-ой байт с 3-им, а 1-ый со 2-ым. В результате получится little-endian код (касаемо собственно команд).
Если программа не содержит инструкций работы с памятью байтами и полусловами (lbu, lhu, sb, sh), то можно его сразу компилировать, как будто он little-endian, и получать из него дамп для прошивки - результат будет идентичным.
А вот если в программе присутствует это дело вместе с данными, описанными как байты (строки символов) и полуслова, то нужно обязательно действовать по первому варианту (компилировать big-endian и потом разворачивать), потому как строка, описанная в исходнике как "01234567abcd" в дампе должна превратиться в "32107654dcba".
При компиляции в little-endian такой разворот выполнен не будет, соответственно код, печатающий эту строку путём выборки байт с последовательно инкрементирующегося адреса, будет работать неправильно.

Спишись со мной по мылу из профиля. Мы уже три года пользуем этот проц. Дока не ДСП, но по лиц соглашению не положено ее разглашать. Проц аналог R3800 с 4к кешем данных и 4к комманд. Патч на ассемблер я себе давно приделал.
Lomaker
Цитата(TJ27 @ Apr 14 2016, 13:28) *
Спишись со мной по мылу из профиля. Мы уже три года пользуем этот проц. Дока не ДСП, но по лиц соглашению не положено ее разглашать. Проц аналог R3800 с 4к кешем данных и 4к комманд. Патч на ассемблер я себе давно приделал.

Мыло из профиля скрыто от посторонних глаз (в настройках надо соответствующая галочка имеется, у тебя она стоит, по всей видимости).
А что этот патч делает? Если дело касается только перестановки байт, то уже не актуально. Программа, которую я зашил в ПЗУ, содержит загрузчик, который принимает и запускает исполняемый код по порту RS-232.
Поскольку загрузчик сам уже выполняется процессором 5890ВЕ1Т, то принимаемые по порту байты он уже распихивает как ему самому это видно, т.е. правильно, и никакие дополнительные развороты не требуются.
Я вчера как наладил загрузку, скомпилировал несколько тестовых примеров на C как big-endian, там и вычисления с плавающей точкой были (умножить, поделить, квадратный корень-sqrt), и печать полученных результатов (sprintf).
Загрузил и выполнил это дело - полёт нормальный, проблем не обнаружил (по крайней мере, через некэшируемую область ОЗУ). Так что пока у меня сложилось такое впечатление, что собственно с компиляцией кода проблем нет при использовании имеющегося у меня компилятора, всё-таки довольно приличный уже объём.
Или всё-таки есть какое-то тайное шаманство, которое проявляется сильно иногда? Полезу сейчас в свой профиль, сделаю видимым своё мыло, если по почте удобнее.

P.S. А контроллер "манчестера" 5890ВГ1Т случайно не используете? Особо интересует режим монитора шины. В документации вижу только описание режима контроллера шины и режима оконечного устройства. О мониторе шины только упоминание, что он тоже типа есть.
Но вот как им пользоваться, совершенно непонятно.
TJ27
Цитата(Lomaker @ Apr 15 2016, 08:57) *

Используем 3 com порта, манчестер оба устройства в режимах контроллера канала и оконечного устройства.
Патч на ассемблер - правятся ошибки описанные в доке на 120 странице ЮКСУ.431288.001.Д4.
Может они это в современных ревизиях и исправили, но об изменениях не сообщают. (у ВМ1 этих ошибок точно нет).
Еще у них есть глюк с антипереполнением с плавающей запятой (не генерится искл.ситуация и проц подвисает).
sergkruglov at bk . ru
Не хочу контору подставлять, у нас с НИИСИ и так отношения странные sm.gif
klen
здравствуйте! очень рад что в ветка всплеск активности. С НИИСИ я и сам справлюсь если потребуется, никого подставлять ненадо. есть теоретическая возможность через верх зайти и практическая - с авторами микросхемы. если я не ошибаюсь, авторше из этой банды было лет пять назад что то за 60 лет sm.gif

.. а в это время незаметно подкрался пи...
не ... не писец, а транк ветка gcc поимела версию 7

представляю свежак 7 ветки sm.gif
www.klen.org/Files/DevTools/x86_64-kgp-linux-gnu/arm-kgp-eabi_@_x86_64-kgp-linux-gnu_20160424_FCORUS.7z

проверил на своих проектах - хруста в коробке передач на ходу не возникло, все нормально.
есть особенность сборки - gdb собран с поддеркой питона 2.7. поэтому тянет либу libpython2.7.so.
если она у Вас поставлена - то все должно заработать, если нет то я не проверял - возможно отвалится. тогда из предыдущей сборки можно бинарь взять и не парится.
зачем ОНО надо - я хочу прикрутить к GDB механизм передачи отладочных сообщений - линия SWO в SWD интерфейсе. если получится то влинкую питон статически что бы на любой ситеме работало, а пока через сошку.

для тех кто в бронепоезде - могу собрать релизные сборки версий 5.3 и 6.1 - для успокоения души тем у кого "продакшен" и боятся нерелизного компилятора.
AHTOXA
Цитата(klen @ Apr 24 2016, 20:10) *
для тех кто в бронепоезде - могу собрать релизные сборки версий 5.3 и 6.1 - для успокоения души тем у кого "продакшен" и боятся нерелизного компилятора.

Хотим, хотим! sm.gif
Lomaker
Цитата(klen @ Apr 24 2016, 18:10) *
здравствуйте! очень рад что в ветка всплеск активности. С НИИСИ я и сам справлюсь если потребуется, никого подставлять ненадо. есть теоретическая возможность через верх зайти и практическая - с авторами микросхемы. если я не ошибаюсь, авторше из этой банды было лет пять назад что то за 60 лет sm.gif

Что касается 5890ВГ1Т (манчестеры), то мне сказали, что разработчики уволились. Но описание на режим монитора шины надыбать всё же удалось: ребята из другого подразделения, давно применяющие эту микросхему, по своим каналам раздобыли.
klen
свежак
www.klen.org/Files/DevTools/x86_64-kgp-linux-gnu/arm-kgp-eabi_@_x86_64-kgp-linux-gnu_20160502_TANACETUM.7z
klen
поздравляю Всех с празниками.
в предверии 9 мая...

свежак из ARM для тех кто хочет эмбеддидь в win64
www.klen.org/Files/DevTools/x86_64-kgp-mingw32/arm-kgp-eabi_@_x86_64-kgp-mingw32_20160503_TANACETUM.7z

свежак из ARM для тех кто хочет эмбеддидь в win32
www.klen.org/Files/DevTools/i686-kgp-mingw32/arm-kgp-eabi_@_i686-kgp-mingw32_20160503_TANACETUM.7z

для тех кто хочет собрать прогу под linux64 для win64
www.klen.org/Files/DevTools/x86_64-kgp-linux-gnu/x86_64-kgp-mingw32_@_x86_64-kgp-linux-gnu_20160503_TANACETUM.7z

для тех кто хочет собрать прогу под win64 для win64
www.klen.org/Files/DevTools/x86_64-kgp-mingw32/x86_64-kgp-mingw32_@_x86_64-kgp-mingw32_20160503_TANACETUM.7z

для тех кто хочет собрать прогу под linux64 для win32
www.klen.org/Files/DevTools/x86_64-kgp-linux-gnu/i686-kgp-mingw32_@_x86_64-kgp-linux-gnu_20160503_TANACETUM.7z

для тех кто хочет собрать прогу под win32 для win32
www.klen.org/Files/DevTools/i686-kgp-mingw32/i686-kgp-mingw32_@_i686-kgp-mingw32_20160503_TANACETUM.7z

что то забыл? mips32, m68k?




temiru
спасибо наверное пригодится на 64Мб
klen
нашлась униженная и обделенная счастьем жертва на постоянной основе - будет девелопить в маcдае64. тестирование на кроликах sm.gif
это означает что сборки для масдая64 теперь будут теститься на реальных проектах а собранный код шится прямо во время полета испытываемого самолета. как так рисует мое воображение картины... sm.gif
volkov_stas
Цитата(klen @ May 31 2016, 17:49) *
нашлась униженная и обделенная счастьем жертва на постоянной основе - будет девелопить в маcдае64. тестирование на кроликах sm.gif
это означает что сборки для масдая64 теперь будут теститься на реальных проектах а собранный код шится прямо во время полета испытываемого самолета. как так рисует мое воображение картины... sm.gif

Все издеваетесь мужчина..wink.gif
Genadi Zawidowski
Цитата(klen @ Jun 21 2011, 10:10) *
ненавязчивая рекомендация: пигмеи!!! бросте винду и поставте линукс. будете как люди разработку вести.

Некоторые проблемы при пользовании сборок klen были (target ARM, host win64), я писал про это ранее, но видать, мои просьбы ниже травы... Когда "подрастем", возможно...
К счастью, пока мне не приходится с mips возиться, потому есть альтернатива в виде Launchpad.
klen
Цитата(Genadi Zawidowski @ Jun 7 2016, 12:01) *
Некоторые проблемы при пользовании сборок klen были (target ARM, host win64), я писал про это ранее, но видать, мои просьбы ниже травы... Когда "подрастем", возможно...
К счастью, пока мне не приходится с mips возиться, потому есть альтернатива в виде Launchpad.

у меня винды нет, как я протестирую и отлажу?
если не сложно напомните что не так. насчет ниже травы - может у меня не было решения проблемы на тот момент?
Genadi Zawidowski
К сожалению, не нашёл в поиске возможности фильтровать сообщения темы по автору...
Давно было, не помню.
В порядке уменьшения вероятности неразрешённой проблемы перечислю то, с чем я сталкивался, используя Вашу сборку:
С какого-то момента перестал работать на целевой машине (cortex m4f) мой проект после сборки - собранный тулзами от Launchpad работает.
Обвал по segmentation fault при компиляции проекта. Временные каталоги стёрты!!!
Вроде, появилась сборка? Попробую текущее состояние. Проект, скрипты открыты. круглосуточная связь для выяснения проблем имеется.

Вот для примера почти последнее, на чём я перестал использовать arm-kgp-eabi:
Цитата(Genadi Zawidowski @ Nov 20 2011, 22:15) *
Потестил:

Сегодняшняя:

с ключём -flto:

C:\user\dds2\TC1\at91sam7s>make
arm-kgp-eabi-gcc ../crt_sam7s.o ../cp15_asm.o ../bandfilters.o ../board.o ../sequen.o ../encoder.o ../hardware.o ../hd44780.o ../dis
play.o ../keyboard.o ../keymaps.o ../nvram.o ../spifuncs.o ../formats.o ../synthcalcs.o ../uc1601s_small.o ../uc1601s_font.o ../uc16
01s_font_alt.o ../uc1601s.o ../twi.o ../tc1.o -mcpu=arm7tdmi -flto -Os -nostartfiles -T../sam7x64_rom.ld -Wl,-Map=tc1_rom.map,--cref
,--no-warn-mismatch -lm -o tc1_rom.elf
c:/kgp_arm_eabi/bin/../lib/gcc/arm-kgp-eabi/4.6.2/../../../../arm-kgp-eabi/bin/ld.exe: cannot find -lugin
c:/kgp_arm_eabi/bin/../libexec/gcc/arm-kgp-eabi/4.6.2/liblto_plugin-0.dll: file not recognized: File format not recognized

collect2: ld returned 1 exit status
make.EXE: *** [tc1_rom.elf] Error 1
klen
уже 5 лет с тех пор прошло, можете свежую сборку для венды попробовать. на прошлой неделе выкладывал.
без -flto линкуется?
Genadi Zawidowski
cortex-m7f скомпилировалось, работу не проверил. А с c-a9 никак..
С lto за пять лет ничего не поменялось - internal compiler error.

Цитата
--------------------Configuration: tc1msvc - Win32 r7s721020--------------------
Microsoft ® Program Maintenance Utility Version 6.00.9782.0
Copyright © Microsoft Corp 1988-1998. All rights reserved.
cd .\r7s721020
make.exe -f .\Makefile all
arm-kgp-eabi-gcc -x assembler-with-cpp -c -mcpu=cortex-a9 -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -fno-math-errno -funroll-loops -fgraphite -ffunction-sections -fdata-sections -ffat-lto-objects -Ofast -flto -g -gdwarf-2 -D__ASSEMBLY__=1 ../
crt_r7s721.s -o crt_r7s721.o
arm-kgp-eabi-gcc -c -mcpu=cortex-a9 -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -fno-math-errno -funroll-loops -fgraphite -ffunction-sections -fdata-sections -ffat-lto-objects -Ofast -flto -gdwarf-2 -fomit-frame-pointer -Wall -Wstrict-prototypes
-DNDEBUG=1 -DCPUSTYLE_R7S721=1 -DCPUSTYLE_R7S721020=1 -MD -MP -MF ./dep/bandfilters.o.d -I../ -I../rza1x_inc ../bandfilters.c -o bandfilters.o
arm-kgp-eabi-gcc -c -mcpu=cortex-a9 -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -fno-math-errno -funroll-loops -fgraphite -ffunction-sections -fdata-sections -ffat-lto-objects -Ofast -flto -gdwarf-2 -fomit-frame-pointer -Wall -Wstrict-prototypes
-DNDEBUG=1 -DCPUSTYLE_R7S721=1 -DCPUSTYLE_R7S721020=1 -MD -MP -MF ./dep/board.o.d -I../ -I../rza1x_inc ../board.c -o board.o
arm-kgp-eabi-gcc -c -mcpu=cortex-a9 -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -fno-math-errno -funroll-loops -fgraphite -ffunction-sections -fdata-sections -ffat-lto-objects -Ofast -flto -gdwarf-2 -fomit-frame-pointer -Wall -Wstrict-prototypes
-DNDEBUG=1 -DCPUSTYLE_R7S721=1 -DCPUSTYLE_R7S721020=1 -MD -MP -MF ./dep/usbd.o.d -I../ -I../rza1x_inc ../usbd.c -o usbd.o
../usbd.c: In function 'usbdFunctionReq_seq0':
../usbd.c:1882:21: warning: unused variable 'interfacev' [-Wunused-variable]
const uint_fast8_t interfacev = LO_BYTE(ReqIndex);
^~~~~~~~~~
../usbd.c: In function 'usbdFunctionReq_seq1':
../usbd.c:1945:23: warning: unused variable 'termID' [-Wunused-variable]
const uint_fast8_t termID = HI_BYTE(ReqIndex);
^~~~~~
../usbd.c: In function 'usbdFunctionReq_seq2':
../usbd.c:1998:21: warning: unused variable 'interfacev' [-Wunused-variable]
const uint_fast8_t interfacev = LO_BYTE(ReqIndex);
^~~~~~~~~~
../usbd.c: In function 'usbdFunctionReq_seq3':
../usbd.c:2021:23: warning: unused variable 'terminalID' [-Wunused-variable]
const uint_fast8_t terminalID = HI_BYTE(ReqIndex);
^~~~~~~~~~
../usbd.c: In function 'usbdFunctionReq_seq4':
../usbd.c:2080:21: warning: unused variable 'interfacev' [-Wunused-variable]
const uint_fast8_t interfacev = LO_BYTE(ReqIndex);
^~~~~~~~~~
../usbd.c: In function 'usbdVendorReq_seq5':
../usbd.c:2125:21: warning: unused variable 'interfacev' [-Wunused-variable]
const uint_fast8_t interfacev = LO_BYTE(ReqIndex);
^~~~~~~~~~
../usbd.c: In function 'usbd_handle_ctrt':
../usbd.c:2397:21: warning: unused variable 'ReqTypeDir' [-Wunused-variable]
const uint_fast8_t ReqTypeDir = usbreq & USB_FUNCTION_bmRequestTypeDir; /* b7 : Data transfer direction */
^~~~~~~~~~
../usbd.c: In function 'r7s721_usbi0':
../usbd.c:2913:22: warning: unused variable 'intsts1' [-Wunused-variable]
const uint_fast16_t intsts1 = USB200.INTSTS1;
^~~~~~~
../usbd.c: At top level:
../usbd.c:50:14: warning: 'configure_device' declared 'static' but never defined [-Wunused-function]
static void configure_device(void);
^~~~~~~~~~~~~~~~
../usbd.c:51:14: warning: 'unconfigure_device' declared 'static' but never defined [-Wunused-function]
static void unconfigure_device(void);
^~~~~~~~~~~~~~~~~~
../usbd.c:52:14: warning: 'single_transmit' declared 'static' but never defined [-Wunused-function]
static void single_transmit(uint8_t * buf, uint8_t len);
^~~~~~~~~~~~~~~
../usbd.c:55:14: warning: 'toLittleEndian' declared 'static' but never defined [-Wunused-function]
static void toLittleEndian( uint32_t value, uint8_t * pDestin );
^~~~~~~~~~~~~~
../usbd.c:2589:1: warning: 'usbd_pipes_show' defined but not used [-Wunused-function]
usbd_pipes_show(uint_fast8_t pipe)
^~~~~~~~~~~~~~~
../usbd.c:2084:13: warning: 'usbdVendorReq_seq4' defined but not used [-Wunused-function]
static void usbdVendorReq_seq4(uint_fast8_t ReqType, uint_fast8_t ReqRequest, uint_fast16_t ReqValue, uint_fast16_t ReqIndex, uint_fast16_t ReqLength)
^~~~~~~~~~~~~~~~~~
../usbd.c:2077:13: warning: 'usbdFunctionReq_seq4' defined but not used [-Wunused-function]
static void usbdFunctionReq_seq4(uint_fast8_t ReqType, uint_fast8_t ReqRequest, uint_fast16_t ReqValue, uint_fast16_t ReqIndex, uint_fast16_t ReqLength)
^~~~~~~~~~~~~~~~~~~~
../usbd.c:2003:13: warning: 'usbdVendorReq_seq2' defined but not used [-Wunused-function]
static void usbdVendorReq_seq2(uint_fast8_t ReqType, uint_fast8_t ReqRequest, uint_fast16_t ReqValue, uint_fast16_t ReqIndex, uint_fast16_t ReqLength)
^~~~~~~~~~~~~~~~~~
../usbd.c:1995:13: warning: 'usbdFunctionReq_seq2' defined but not used [-Wunused-function]
static void usbdFunctionReq_seq2(uint_fast8_t ReqType, uint_fast8_t ReqRequest, uint_fast16_t ReqValue, uint_fast16_t ReqIndex, uint_fast16_t ReqLength)
^~~~~~~~~~~~~~~~~~~~
../usbd.c:1886:13: warning: 'usbdVendorReq_seq0' defined but not used [-Wunused-function]
static void usbdVendorReq_seq0(uint_fast8_t ReqType, uint_fast8_t ReqRequest, uint_fast16_t ReqValue, uint_fast16_t ReqIndex, uint_fast16_t ReqLength)
^~~~~~~~~~~~~~~~~~
../usbd.c:1879:13: warning: 'usbdFunctionReq_seq0' defined but not used [-Wunused-function]
static void usbdFunctionReq_seq0(uint_fast8_t ReqType, uint_fast8_t ReqRequest, uint_fast16_t ReqValue, uint_fast16_t ReqIndex, uint_fast16_t ReqLength)
^~~~~~~~~~~~~~~~~~~~
../usbd.c:1637:13: warning: 'usb0_function_Resrv_5' defined but not used [-Wunused-function]
static void usb0_function_Resrv_5(uint_fast8_t ReqTypeRecip, uint_fast16_t ReqValue, uint_fast16_t ReqIndex, uint_fast16_t ReqLength)
^~~~~~~~~~~~~~~~~~~~~
../usbd.c:1631:13: warning: 'usb0_function_Resrv_4' defined but not used [-Wunused-function]
static void usb0_function_Resrv_4(uint_fast8_t ReqTypeRecip, uint_fast16_t ReqValue, uint_fast16_t ReqIndex, uint_fast16_t ReqLength)
^~~~~~~~~~~~~~~~~~~~~
../usbd.c:1617:13: warning: 'usb0_function_Resrv_0' defined but not used [-Wunused-function]
static void usb0_function_Resrv_0(uint_fast8_t ReqTypeRecip, uint_fast16_t ReqValue, uint_fast16_t ReqIndex, uint_fast16_t ReqLength)
^~~~~~~~~~~~~~~~~~~~~
../usbd.c:1550:13: warning: 'nak_ep0' defined but not used [-Wunused-function]
static void nak_ep0(void)
^~~~~~~
../usbd.c:1362:13: warning: 'set_transaction_counter' defined but not used [-Wunused-function]
static void set_transaction_counter(uint_fast8_t pipe, uint_fast32_t size)
^~~~~~~~~~~~~~~~~~~~~~~
../usbd.c: In function 'usb0_function_SetDescriptor':
../usbd.c:1794:13: internal compiler error: tree check: expected ssa_name, have integer_cst in ptr_deref_may_alias_decl_p, at tree-ssa-alias.c:211
static void usb0_function_SetDescriptor(uint_fast8_t ReqTypeRecip, uint_fast16_t ReqValue, uint_fast16_t ReqIndex, uint_fast16_t ReqLength)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
libbacktrace could not find executable to open
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make.exe: *** [usbd.o] Error 1
NMAKE : fatal error U1077: 'make.exe' : return code '0x2'
Stop.
Error executing NMAKE.

tc1msvc.exe - 3 error(s), 24 warning(s)


Предупреждения - так и надо.
путь к компилятору:
C:\user\arm-kgp-eabi_@_x86_64-kgp-mingw32_20160503_TANACETUM\bin
klen
Цитата(Genadi Zawidowski @ Jun 8 2016, 00:25) *
cortex-m7f скомпилировалось, работу не проверил. А с c-a9 никак..
С lto за пять лет ничего не поменялось - internal compiler error.



Предупреждения - так и надо.
путь к компилятору:
C:\user\arm-kgp-eabi_@_x86_64-kgp-mingw32_20160503_TANACETUM\bin


както неажиданно что вы пытаетесь данной сборкой собрать под A9... думаю что этого хотеть ненадо, для польших процов у которых MMU другие сборки применяются - libc другая....

код для A9 сырой или под линукс собирается?

Можете мне дать маленькй проЪект-пример с Makefile который у Вас падает. я посмотрю о чем речь идет.
Genadi Zawidowski
A9 сырой (командная строка видна).
А при чём тут MMU? Какие библиотеки? Это обвалилось задолго до линковки - я же дал листинг...
Чтобы долго не копать - какой ключ сохраняет препроцессированный исходник?
зы: хотеть/не хотеть... сборка от ланчпада собирает всё без проблем.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.