Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: свежак 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
DVF
Мы заждались wink.gif
klen
Цитата(DVF @ Nov 8 2013, 14:05) *
Мы заждались wink.gif

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

для тех кто до сихпор живет в бронепоезде! в качестве компенсации за ожидание закачал на сервер предыдущий свежак для mingw64 который я не выложил по причине отсутствия времени.
как заказывали - я под масдем не тестирую - их бин отсутсвует. нада протестить. если вылезут траблы - поправлю скриптики сборки и тогда свежаки будут для обоих хостов вываливаться примерно раз в неделю.
klen.org/Files/DevTools/x86_64-kgp-mingw/arm-kgp-eabi-mingw64-20131008-АНГКАЯНРАНАЙ.tar.lzma
Xenia
Цитата(klen @ Nov 10 2013, 20:43) *
klen.org/Files/DevTools/x86_64-kgp-mingw/arm-kgp-eabi-mingw64-20131008-АНГКАЯНРАНАЙ.tar.lzma


Не отказаться ли вам от этих кириличных букв в названии файла, которые портят людям нервы? Неужели в этом есть большая необходимость?
_Pasha
Цитата(Xenia @ Nov 10 2013, 21:02) *
Не отказаться ли вам от этих кириличных букв в названии файла, которые портят людям нервы? Неужели в этом есть большая необходимость?

Призыв сродни уговорам к откату на linux-32 biggrin.gif
Xenia
Цитата(_Pasha @ Nov 10 2013, 22:21) *
Призыв сродни уговорам к откату на linux-32 biggrin.gif


Призыв был обусловлен досадой по потерянному времени, когда лишь 4-ая по счету качалка смогла это имя проглотить. Wget не смог, Orbit не смог и т.д.
Genadi Zawidowski
Цитата
tar.lzma

Ну вот... Я думал, буду готов к любым неожиданностям... А это не смог. А более обычные архиваторы вынесены на свалку истории из-за проигрыша в 2% по объёму?
За время прошедьшее с последнего моего тут появления я переехал под W7 x64, т.е. теперь мог бы использовать Ваш компилятор. Но Вы опять оказались где-то за горизонтом...
klen
Цитата(Xenia @ Nov 10 2013, 22:29) *
Призыв был обусловлен досадой по потерянному времени, когда лишь 4-ая по счету качалка смогла это имя проглотить. Wget не смог, Orbit не смог и т.д.

легкий тролинг водителей бронепоездов sm.gif прошу принимаить всякие такие штуки как шутки - я отставной подполковник перенесший бремя тяжестей воинской службы в самые тяжкие годы русской армии(думаю хуже бло только перед революцией и в 1941г), единственным способом не сойти с ума от беспросвета было подколоть друга с утра - чтоб он как минимум до обеда плевался и матерился а всем весело. медленно социализируюсь....иногда нет неи да и вылезет sm.gif

по существу.
1. это не качалки не могут а бронепоезд(винда) ничего не может .
2. хотел поддержать так сказать российское товарное производство русскими слоганами
3. лецинзионные ос и прроги должны уметь работать с юникодом и киррилицей, если нет то набираем тел. номер и жалуемся поставщику: ууууу как мы вас засудим. и они бысто исправляют ошибки. sm.gif это еще более легкий тролинг.
4. ок. буду латинницу использовать - но якуты и баба яга против.

а собсно пособирать проектики удалось?
затестилось? а то совсем от темы понесло в бок
Genadi Zawidowski
Цитата
1. это не качалки не могут а бронепоезд(винда) ничего не может .
Как раз родной ослик всё проглотил и не поморщился.
Про архиватор пару слов скажите....
Xenia
Цитата(Genadi Zawidowski @ Nov 11 2013, 01:52) *
Как раз родной ослик всё проглотил и не поморщился.
Про архиватор пару слов скажите....


Мне, как библиотекарю ftp, нельзя файлы из интернета ослом качать, т.к. он портит дату файла - дату создания заменяет на дату скачивания. Возможно, это качество можно как-то побороть настройками, но я так и не смогла догадаться как. Вот и пришлось привыкать к качалкам, способным даты файлов сохранять.

7zip способен архив в этом формате распаковать. Внутри него tar сидит.
klen
Цитата(Xenia @ Nov 11 2013, 06:32) *
Мне, как библиотекарю ftp, нельзя файлы из интернета ослом качать, т.к. он портит дату файла - дату создания заменяет на дату скачивания. Возможно, это качество можно как-то побороть настройками, но я так и не смогла догадаться как. Вот и пришлось привыкать к качалкам, способным даты файлов сохранять.

7zip способен архив в этом формате распаковать. Внутри него tar сидит.

предлaгается 7z для сжатия, латинници в именах файлов, формат имени: target_ host_date_buildname.7z

ну так чего, сборка работает ? - я выходной потратил чтоб наладить процесс . кстате для заметки под винду тупо автоматом не собрать, приходится подпинывать, но не много.
Genadi Zawidowski
Цитата
предлaгается 7z для сжатия

Объясните пожалуйста, почему не просто zip? Или обязательно создавать проблемы?
Я ведь говорил, в контексте avr-gcc, почему у моих коллег применяются менее оптимальные по коду версии (ворде winavr): из=за простоты инсталяции на машине. Нажал кнопку, ответил на все вопросы Yes и всё - программы собираются.
Ладно, я объясню как прописать путь к ранее скачанной программе... Но объяснять, что к любимому персонажем windows commander и winrar надо ещё 7Z качать...
to xenia: что там внутри tar, по файлу видно. winzip корректно с этим форматом работал ещё с 6-й версии точно - в 90-х годах.
dimka76
Цитата(klen @ Jun 23 2013, 08:01) *
после расковыривания проекта отладчика BlackMagic, переделки прошивки и изготовленя тестовых платок отладчика полностью перешел на новый отладчик (на фотке отладчик слева , справа таргет)


Не могли бы вы выложить схему в pdf, а то на их сайте ничего не нашел по hardware.
Есть правда путь приводящий на GitHab и там находятся и схема и плата, но не понятно чем их открывать.
_Pasha
Цитата(dimka76 @ Nov 11 2013, 12:23) *
Не могли бы вы выложить схему в pdf, а то на их сайте ничего не нашел по hardware.
Есть правда путь приводящий на GitHab и там находятся и схема и плата, но не понятно чем их открывать.

Поищите в этом подфоруме, я топик создавал так и называется BlackMagic
Тама выкладывал в пдф
Входной формат у них - gEDA
зы
вот
dimka76
Цитата(_Pasha @ Nov 11 2013, 13:25) *
Поищите в этом подфоруме, я топик создавал так и называется BlackMagic
Тама выкладывал в пдф
Входной формат у них - gEDA
зы
вот


Спасибо 1111493779.gif
DVF
Цитата(klen @ Nov 10 2013, 20:43) *
сегодня уежжаю в командировку на ти дня в грязи ковыряццо.

Никто klenа не видел? crying.gif
Не видать нам target_ host_date_buildname.7z?
klen
Цитата(DVF @ Nov 22 2013, 13:21) *
Никто klenа не видел? crying.gif
Не видать нам target_ host_date_buildname.7z?

спакуха. все будет.
klen
после продолжительного перерыва продолжаем нашу песню.....

свежак для linux64:

http://klen.org//Files/DevTools/linux-x86_...2_SUS_SCROFA.7z
примерно 70 мб

с целью ,если необходимо, использования LTO оптимизации все либы собраны с комбинацией ключей -flto -ffat-lto-objects , для нормальной работы LTO оптимизатора при компляции их тоже необходимо воткнуть, иначе сборка пройдет без оптимизации LTO. Тут есть особенность, которой нет в релизном gcc4.8.2, в обязательной необходимости -ffat-lto-objects , в противном случае при втыкании только -flto компиллер генерит код с LTO но почемуто напроч выкидывает объекты которые пошли бы в секциии данных, что приводит к печалям на этапе линковки. пологаю это временная особенность состояния кода из транка. работает хорошо - до 10 процентов ужатия кода. в моем случае проект с пришитой Lua 5.2.2 ужимается LTO оптимизатором на 12 процентов.

соответствующую сборку для win64 планиую в ближайшие дни - если собрать удастся wink.gif
DVF
Цитата(klen @ Jan 12 2014, 23:05) *
если собрать удастся wink.gif

Вот же.
В любом случае, спасибо.
klen
сборка для масдайщиков....
host win64

http://klen.org/Files/DevTools/x86_64-kgp-...4_SUS_SCROFA.7z

я ее проверил чуток - проект собирался но бинарь не зашивался, тока в дизасм смотрел на предмет вообще генерации.... но то ничего не значит.
как говорится ждемс первых обладателей айфена в нащей подворотне - отпишитесь про результаты.
Сергей Борщ
А последняя новость на главной странице - по-прежнему от 26.03.07 и ссылок на файлы кроме как в предыдущих сообщениях нигде не останется...
klen
Цитата(Сергей Борщ @ Jan 14 2014, 11:52) *
А последняя новость на главной странице - по-прежнему от 26.03.07 и ссылок на файлы кроме как в предыдущих сообщениях нигде не останется...

работы ведутся... sm.gif
будут ссылки
Integro
Ребят, нужна версия C:\kgp_arm_eabi\arm-kgp-eabi\include\c++\4.6.0 под win32
klen
Цитата(Integro @ Jan 24 2014, 21:33) *
Ребят, нужна версия C:\kgp_arm_eabi\arm-kgp-eabi\include\c++\4.6.0 под win32

еще нада или нет?
klen
очередной свежак таргет arm
хост linux64 73.3 Mb
http://klen.org/Files/DevTools/linux-x86_6...0224-PROCYON.7z
хост mingw64 68.2 Mb
http://klen.org/Files/DevTools/x86_64-kgp-...0224-PROCYON.7z
Terminator
Что-то последние "свежаки" у меня дают нерабочий код.
http://electronix.ru/forum/index.php?showt...t&p=1180673 этот работает, а последующие нет.

И тот что работает иногда даёт нерабочий код sad.gif
Genadi Zawidowski
Попробуйте "свежак" отсюда - https://launchpad.net/gcc-arm-embedded
Если тоже иногда нерабочий будет, выкладывайте сюда пример...
Что выбрано критерием "рабочий/нерабочий"? Смотрите по работе проекта в целом или есть дизассемблированные куски со странностями?
Terminator
Цитата(Genadi Zawidowski @ Mar 13 2014, 01:51) *
Попробуйте "свежак" отсюда - https://launchpad.net/gcc-arm-embedded
Если тоже иногда нерабочий будет, выкладывайте сюда пример...
Что выбрано критерием "рабочий/нерабочий"? Смотрите по работе проекта в целом или есть дизассемблированные куски со странностями?

Качнул bleeding-edge-toolchain-131228 (ссылку где-то в этой теме нашёл), с ним все работает как должно.

С последним свежаком что-то непонятное, заглянул в результат компиляции загрузчика, осутствует множество функций. Результат совершенно не работоспособен.
Что примечательно, основная прошивка (во многих местах совпадает с загрузчиком) нормально работает, а тот "свежак", что правильно собирает загрузчик, косячит в основной прошивке.
Там неочевидно. Прошивка падает в безобидном месте и падает не всё, некоторые задачи продолжают выполнятся. Глубоко не копал т.к. там немного шаблонной магии, тяжко её по асму оценивать.
alx2
Цитата(Terminator @ Mar 12 2014, 05:21) *
Что-то последние "свежаки" у меня дают нерабочий код.

Как уже неоднократно писалось, "свежаки" - это девелоперские снапшоты. Поэтому то, что они работают неправильно, или не работают вообще - совершенно нормально.
Если Вы желаете поучаствовать в разработке компилятора, "свежаки" - для Вас. Тестируйте их и сообщайте об обнаруженных ошибках разработчикам.
Если Вы бета-тестингом не увлекаетесь и не горите желанием вылавливать баги компилятора - пользуйтесь релизами, а не "свежаками".
klen
Цитата(Terminator @ Mar 13 2014, 04:42) *
Качнул bleeding-edge-toolchain-131228 (ссылку где-то в этой теме нашёл), с ним все работает как должно.

С последним свежаком что-то непонятное, заглянул в результат компиляции загрузчика, осутствует множество функций. Результат совершенно не работоспособен.
Что примечательно, основная прошивка (во многих местах совпадает с загрузчиком) нормально работает, а тот "свежак", что правильно собирает загрузчик, косячит в основной прошивке.
Там неочевидно. Прошивка падает в безобидном месте и падает не всё, некоторые задачи продолжают выполнятся. Глубоко не копал т.к. там немного шаблонной магии, тяжко её по асму оценивать.

Вы можете локализовать кусоку кода и выдать асм код чтобы увидеть что из С/С++ кода компиллер выдает на асме - возможно это не компиллер виноват а ошибки в библиотеках или какиенибудь несоответствия - нада предметно разобратся. если вы не обнаружили некоторые функции это может значить что LTO оптимизатор смержил несколько функций или еще чтото.
Terminator
Цитата(klen @ Mar 18 2014, 15:50) *
Вы можете локализовать кусоку кода и выдать асм код чтобы увидеть что из С/С++ кода компиллер выдает на асме - возможно это не компиллер виноват а ошибки в библиотеках или какиенибудь несоответствия - нада предметно разобратся. если вы не обнаружили некоторые функции это может значить что LTO оптимизатор смержил несколько функций или еще чтото.

Я могу выслать вам .lss своего загрузчика собранного разными версиями.

LTO не использую. Ниодна версия "свежака" с включенным lto, мои проекты собрать не может.
Включение LTO на "рабочей" версии заканчивается примерно так же, падает с внутренней ошибкой.
klen
Цитата(Terminator @ Mar 19 2014, 04:32) *
Я могу выслать вам .lss своего загрузчика собранного разными версиями.

LTO не использую. Ниодна версия "свежака" с включенным lto, мои проекты собрать не может.
Включение LTO на "рабочей" версии заканчивается примерно так же, падает с внутренней ошибкой.


кто падает? компиллер при линковке проекта?
как включаете и выключаете LTO?
Terminator
Цитата(klen @ Mar 19 2014, 21:32) *
кто падает? компиллер при линковке проекта?

ага
Цитата
как включаете и выключаете LTO?

Как было написано в этой ветке выше.
adnega
Попробовал arm-kgp-eabi-mingw64-20130224-PROCYON.7z

Не собирается(
Код
compile.  main.o
d:/gcc/arm-kgp-eabi-procyon/bin/arm-kgp-eabi-gcc -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -fpack-struct -Wpadded -g -Os  -I . -I d:/gcc/lib/stm32/inc -gdwarf-2 -c main.c -o main.o

linker..
d:/gcc/arm-kgp-eabi-procyon/bin/arm-kgp-eabi-gcc -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--gc-sections,-Map=test_fp_v1.ite2.elf.map,-cref,-u,Reset_Handler -I . -I d:/gcc/lib/stm32/inc -L . -L d:/gcc/arm-kgp-eabi-procyon/arm-kgp-eabi/lib/thumb/cortex-m4f -T STM32F407VG.ld  main.o --output test_fp_v1.ite2.elf

d:/gcc/arm-kgp-eabi-procyon/bin/../lib/gcc/arm-kgp-eabi/4.9.0/../../../../arm-kgp-eabi/bin/ld.exe: error: main.o uses VFP register arguments, test_fp_v1.ite2.elf does not
d:/gcc/arm-kgp-eabi-procyon/bin/../lib/gcc/arm-kgp-eabi/4.9.0/../../../../arm-kgp-eabi/bin/ld.exe: failed to merge target specific data of file main.o


Не подскажите, что мы обычно делаем в таком случае?
klen
Цитата(adnega @ Mar 28 2014, 15:51) *
Попробовал arm-kgp-eabi-mingw64-20130224-PROCYON.7z

Не собирается(
[code]

Не подскажите, что мы обычно делаем в таком случае?


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

удалите в опциях линкера -L d:/gcc/arm-kgp-eabi-procyon/arm-kgp-eabi/lib/thumb/cortex-m4f

косяг в том что происходит попытка слинковать объектники и либы собранные под разные fpu, осталось понять как у линкера возникло такое желание

еще гипотеза - если я при сборке архива накасячил то возможно папка -L d:/gcc/arm-kgp-eabi-procyon/arm-kgp-eabi/lib/thumb/cortex-m4f пуста и в током случае линкер вынужден брать либы из корня d:/gcc/arm-kgp-eabi-procyon/arm-kgp-eabi/lib а там либы собранные бе поддержки фпу.

в понедельник решим эту беду. подождите сутки.
adnega
Цитата(klen @ Mar 29 2014, 19:07) *
давайте начнем с того что линеру не будем передавать опцию с путем до системных либ - это не нужно и вредно поскольку комбинация ключей позволяет ему самому решить где брать libc libm libgcc и тд.

удалите в опциях линкера -L d:/gcc/arm-kgp-eabi-procyon/arm-kgp-eabi/lib/thumb/cortex-m4f

косяг в том что происходит попытка слинковать объектники и либы собранные под разные fpu, осталось понять как у линкера возникло такое желание

еще гипотеза - если я при сборке архива накасячил то возможно папка -L d:/gcc/arm-kgp-eabi-procyon/arm-kgp-eabi/lib/thumb/cortex-m4f пуста и в током случае линкер вынужден брать либы из корня d:/gcc/arm-kgp-eabi-procyon/arm-kgp-eabi/lib а там либы собранные бе поддержки фпу.

в понедельник решим эту беду. подождите сутки.

Пути убрал - ничего не поменялось.
Меня больше напрягает: "error: main.o uses VFP register arguments, test_fp_v1.ite2.elf does not".
Это как понимать: "*.elf не использует"?
Видно, что до библиотек дело не доходит. Там бало бы что-то типа "failed to merge target specific data of file d:/gcc/arm-kgp-eabi-x86_64/arm-kgp-eabi/lib/thumb/cortex-m3\libc.a(lib_a-__call_atexit.o)".

Вот еще пример, с одной из предыдущих версий умышленно линкуемых с либами для М3: "error: test_fp_v1.ite2.elf uses VFP register arguments, d:/gcc/arm-kgp-eabi-x86_64/arm-kgp-eabi/lib/thumb/cortex-m3\libc.a(lib_a-__call_atexit.o) does not".
Теперь *.elf использует, а либа правильно не использует. У меня же наооборот)

Думаю, не хватает чего-то, что заставит линкер ипользовать fpu-шные регистры при сборке. Я могу ошибаться, но может линкер "нерабочий", а не библиотеки? Ради эксперимента подсунул новые либы старому компилятору - вроде скомпилировался проект и даже работает.

Со старым (рабочим) компилятором я получаю аналогичную ошибку, если указываю -mcpu=cortex-m3 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb. Странно, что компилируется все без ошибок, но линкер выдает: "error: main.o uses VFP register arguments, test_fp_v1.ite2.elf does not". Причем, можно компилятору указать M3, а линкеру М4 - все собирется и будет работать.

До понедельника доживу. Я бы и не стал переходить на новую сборку, если бы не обнаружил, что в старых при записи, например, USART1->DR = x вместо операции "запись" происходит "чтение-запись". Причем, это самое чтение сбрасывает флаги в регистре статуса (у STM32).
DR объявлен как vu16, если заменить на vu8, то лишнего "чтения" не происходит. В новой версии поведение правильное, поэтому и решился.
klen
Цитата(adnega @ Mar 29 2014, 23:57) *
До понедельника доживу. Я бы и не стал переходить на новую сборку, если бы не обнаружил, что в старых при записи, например, USART1->DR = x вместо операции "запись" происходит "чтение-запись". Причем, это самое чтение сбрасывает флаги в регистре статуса (у STM32).
DR объявлен как vu16, если заменить на vu8, то лишнего "чтения" не происходит. В новой версии поведение правильное, поэтому и решился.


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

нешел масдай - проверил сборку.
пробывал на своем текущем проекте:
компиляция и линковка
Цитата
arm-kgp-eabi-g++ -std=c++11 -D__CORTEX_M4F__ -D__STM32F405RGT6__ -D__STM32F4XX__ -DARM_MATH_CM4 -D__FPU_USED=1 -DSTM32F405xx -DSTM32F40_41xxx -D__VOLKOV_STM32F405_V2__ -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fsingle-precision-constant -mthumb -Os -fomit-frame-pointer -finline-functions -ffunction-sections -fdata-sections -fgraphite -funroll-loops -Wp,-M,-MP,-MT,main.o,-MF,.dep/main.o.dep -W -Wall -Wno-unused-parameter -ggdb3 -I.././../../SDK_embedded/libs/common -fno-exceptions -fno-rtti -I./ -I.././include -I.././../../SDK_embedded/libs/st/stm32/f4xx/StdPeriph_Driver -I.././../../SDK_embedded/libs/st/stm32/f4xx/crt -I.././../../SDK_embedded/libs/st/stm32/f4xx/../CMSIS -I.././../../SDK_embedded/libs/st/stm32/f4xx/CMSIS -I.././../../SDK_embedded/libs/tlsf-2.4.6 -I.././../../SDK_embedded/libs/readline -I.././../../SDK_embedded/libs/utils -I.././../../SDK_embedded/libs/console -I.././../../SDK_embedded/libs/FreeRTOS/Source/include -I.././../../SDK_embedded/libs/FreeRTOS/Source/portable/GCC/ARM_CM4F -I.././../../SDK_embedded/libs/mmgr -I.././../../SDK_embedded/libs/vmath -DUSE_STDPERIPH_DRIVER -D__USE_FREERTOS__ -DF_OCS=8000000 -DRAM_VEC_TABLE=0 -DUSE_USB_OTG_FS -DUSE_EMBEDDED_PHY -DUSE_OTG_MODE -DF_OSC=8000000 -DOSC_TYPE=1 -DTICK_RATE_HZ_DEFAULT=1000UL -DMAX_PRIORITIES=4UL -DMINIMAL_STACK_SIZE=64UL -DMAX_TASK_NAME_LEN=16UL -c -o main.o main.cc


arm-kgp-eabi-g++ -T .././../scripts/matrix3d_demo.ld -fuse-linker-plugin -nostartfiles -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fsingle-precision-constant -mthumb -Os -fomit-frame-pointer -finline-functions -ffunction-sections -fdata-sections -fgraphite -funroll-loops -ggdb3 -L.././../lib -Wl,-gc-sections -Wl,--start-group debug_led.o main.o -lmmgr -ltlsf -lfreertos_kernel -lfreertos_portable -lutils -lcrt -lcmsis -lhardware -lvmath -Wl,--end-group -o .././../out/image.elf -Wl,-Map,.././../out/image.map


собираеццо и не ругается. я покане понял в чем у Вас проблема.
adnega
CODE
adnega@NEWSRV:~/temp/test_nand$ ~/temp/arm-kgp-eabi-procyon/bin/arm-kgp-eabi-gcc --version
arm-kgp-eabi-gcc (Klen's GNU package (KGP) for ARM/elf platform. << PROCYON >>) 4.9.0 20140224 (experimental)
Copyright © 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

adnega@NEWSRV:~/temp/test_nand$ make all
compile main.o
~/temp/arm-kgp-eabi-procyon/bin/arm-kgp-eabi-gcc -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -fpack-struct -Wpadded -g -Os -I . -I ./inc -gdwarf-2 -c main.c -o main.o
main.c: In function ‘main’:
main.c:174:2: internal compiler error: Недопустимая инструкция
volatile float x = 3.14f;
^
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make: *** [main.o] Ошибка 1

Под
Цитата
Distributor ID: Ubuntu
Description: Ubuntu 13.10
Release: 13.10
Codename: saucy


На той же системе с другой версией собирается.
Цитата
root@NEWSRV:/home/adnega/temp/test_nand# /home/adnega/temp/arm-kgp-eabi-20130623/bin/arm-kgp-eabi-gcc --version
arm-kgp-eabi-gcc (Klen's GNU package (KGP) for ARM/elf platform. << Fedor Konyukhov / Antarctica Cup Race Track 2008 >> ) 4.9.0 20130622 (experimental)
Copyright © 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
klen
пересоберу еще... посмотрим что получттся
adnega
Попробовал в виртуалке (ubuntu 12.10) - с последней версий все собирается. На железном сервере (ubuntu 13.10) - уже писал, что нет (internal compiler error).
Могу дать удаленный доступ к "плохой" ubunte, но к сожалению, по личным причинам сейчас не до экспериментов (жена и дочка в больницу попали).
Сам второй-третий год собираюсь с windows "спрыгнуть". Уже все компы, включая нетбук и десктоп жены, перевел на linux - остался последний ноутбук-кормилец (нужен для работы). Нашел HDD для ноутбука - попробую временно на нем развернуть все необходимые инструменты.

Итого: если у меня одного проблемы, то беру таймаут на их разрешение + сделаю тестовый проект.
Если, klen, есть желание и возможность поразбираться с internal compiler error, то могу дать учетку для удаленного подключения (ssh).
klen
давайте аккаунт, хоца посмотреть в чем косяг.. по идее падать не должно статически собираю....
adnega
Цитата(klen @ Mar 31 2014, 22:25) *
давайте аккаунт, хоца посмотреть в чем косяг.. по идее падать не должно статически собираю....

Отправил в личку
Terminator
Про lto.
Проект на sam7. Чтобы всё впихнуть компилирую всё, что можно в thumb. С включением lto вылазит ошибка:
Код
.../cpu/Devices/adcISR.cpp: In function 'adcirq':
.../cpu/Devices/adcISR.cpp:73:2: error: interrupt Service Routines cannot be coded in Thumb mode


Что-нибудь сделать можно?

P. S. это не на последнем "свежаке", но такой сообщение было и на какой-то версии "свежака", просто забыл написать.
Genadi Zawidowski
У sam7 обработчики прерываний только в ARM режиме.
а без смешивания thumb и arm может даже немного компактнее получиться, если от interoperability отказаться в ключах.
а LTO здорово помогало... Не забываете линкеру ключи передать? Может, тогда и влезет?
Terminator
Выключил thumb. Пришлось пропатчить макросы freertos (возникла ошибка Error: invalid literal constant: pool needs to be closer, патч на сайте).
Результат получился интересный:
Код
.../arm-none-eabi/bin/ld: cpu.elf section `.text' will not fit in region `MAINPROG'
.../arm-none-eabi/bin/ld: region `MAINPROG' overflowed by 427461 bytes


wacko.gif

Для смеха поправил скрипт линкера, компилилось нормально, только размер в 4-ре раза больше чем без lto. Проверить на работоспособность не могу, в контроллере всего 256к флеша biggrin.gif
Genadi Zawidowski
-Os -flto должны идти и линкеру. Я говорил не про убирание -flto, а про убирание -mthumb-interwork
klen
Цитата(Genadi Zawidowski @ Apr 4 2014, 13:21) *
... должны идти и линкеру. ...

1, да, поскольку линкер теперь несовсем только линкер - прицепляемые плагины в состоянии из него сделать все что угодно. а поскольку плагины могут делать мало ли чего хитрого то им наверняка потребуется больше информации чем надо лиинкеру. с одной стороны это решается расширением формата ELF (читай добавление новых полей это сзади), и что важнее расширения формата объектников (читай тоже расширение DWARF, Tree SSA и тд ) это по входу, а через ключи передается тайные женания пользователя. таким образом если оптимизатор LTO не в компилере а в плагине линкера то ему тоже очень хоца знать режимоптимизации что и требует передачи ключей оптимизации таких как в компилятор были просунуты. в действительности в будующе методом расширения полей форматов объектников эту инфу можно будет вытягивать из них и передавать ключи по цепочке не будет необходимо. (я сильно не ковырялся но как мне кажется в кранем фрормате DWARF это все уже есть ибо gdb с места не сдвинеся при отладке бинаря по которому LTO оптимайзер прошелся.) както так.

2. что касается LTO: опции должны идти парой -flto -ffat-lto-objects иначе порежутся секции данных и хрен соберется - это не ошибка это фича, рассуждаю так - если вы соберете кристалл с процом cm3 без озу и без данных которые на старте нада инициализировать то можно будет ЕЩЕ сильнее окучить код. машинке без озу на одних регистрах - может иметь смысл в клинических случаях, и тогда компиллер еще и подн ее ужмет.
Genadi Zawidowski
Цитата
-ffat-lto-objects

Как посмотреть, не включён ли этот ключ у меня по умолчанию (4.8)? Его добавление не сказалось в моём проекте, используется компилятор с launchpad.
klen
Цитата(Genadi Zawidowski @ Apr 6 2014, 13:47) *
Как посмотреть, не включён ли этот ключ у меня по умолчанию (4.8)? Его добавление не сказалось в моём проекте, используется компилятор с launchpad.


если при компиляции или ликовке к ключам присовокупить ключ -v что означает verbose то вывалится лог всех операций и полный реальный набор ключей, том то и можно посмотреть что кроме того что ВЫ напихали засовывается по умолчанию
Genadi Zawidowski
Что-то нету ничего похожего...
klen
Цитата(Genadi Zawidowski @ Apr 6 2014, 18:02) *
Что-то нету ничего похожего...

у Вас компилер 4.8 у меня 4.9
разное поведение. 4.8 более правильное видимо 4.9 более интересное. если заглянуть в свн лог транка то будет видно что добрая часть мук графоманства оседает именно в оптимизвторах, это влияет на изменчивость реакции компиллера на ключики с ней связанные.
нада учитывать что lto находится в активном развитии.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.