|
|
  |
Собрал послений GCC6.3.0 для AVR8. Win32 Win64 Linux64, Есть инструкция по внедрению в AtmelStudio 7! |
|
|
|
Mar 8 2017, 20:07
|

I WANT TO BELIEVE
     
Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751

|
Значиццо имеем кучу улучшений по оптимизации, поддержку C++14 и наконец то работающий LTO, который реально экономит байты. Сильно пока не тестировал, но на паре проектов при включении LTO байты реально экономились, что не может не радовать! Для включения LTO добавить -flto в опции компилятора И линкера! Состав сборки: GCC 6.3.0 https://gcc.gnu.org/gcc-6/changes.htmlOPTS_GCC=" --target=avr --enable-languages=c,c++ --disable-nls --disable-libssp --disable-libada --with-dwarf2 --disable-shared --enable-static " binutils 2.28 OPTS_BINUTILS=" --target=avr --disable-nls " avr-libc 2.0.0 built with default opts В архиве сборки Win32, Win64, Linux64(тестиорвалось в Ubuntu 16.10) и avr-libc отдельно! avr-toolchain6.3.tar.gzВариант полностью готовый для внедрения в Atmel Studio 7, с порпатченным avr-size для корректного отображения размеров в процентах. README по установке внутри архива. Использована Win32 версия бинарников ибо не все сидят на Win64 avr8-gnu-toolchain(GCC6.3.0)_for_AtmelStudio7.zipP.S. Из коробки в последней Atmel Studio 7 используется GCC 4.9.2 датированный October 30, 2014
--------------------
The truth is out there...
|
|
|
|
|
Mar 9 2017, 13:36
|
Частый гость
 
Группа: Участник
Сообщений: 168
Регистрация: 14-02-10
Пользователь №: 55 490

|
Попробовал на своём проекте, уменьшение размера есть. Буду использовать и наблюдать. Спасибо за подвижничество. Код avr-gcc.exe (AVR_8_bit_GNU_Toolchain_3.5.4_1709) 4.9.2 Program: 14876 bytes (11.3% Full)
avr-gcc.exe (GCC) 6.3.0 Program: 14802 bytes (11.3% Full)
-flto Program: 14176 bytes (10.8% Full) И поищу на досуге, что такое LTO (начиная с расшифровки).
--------------------
#define TRUE (4==(2*2))
|
|
|
|
|
Mar 10 2017, 20:59
|

I WANT TO BELIEVE
     
Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751

|
WinAVR это и есть сборка этого тулчайна. Возможно там чуть изменили пути, но я сомневаюсь. В архиве предназначенном для AtmelStudio есть папка bin - это оно самое. Но отделять ее от всего нельзя. Т.е. для работы нужно всё дерево папок. В обещм вы увидите подобие структуры папок и разберетесь при желании. Цитата makefile от WinAVR-20100110 makefile обрабатывает утилита make и она универсальна. Так что да, конечно же всё заработает. Главное чтоб мэйк нашел компилятор и линкер(т.е. вопрос пути решайте).
--------------------
The truth is out there...
|
|
|
|
|
Mar 11 2017, 20:24
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
Работает... Кстати, не все используют из-под AtmelStudio7, я например голые Makefle из-под Microsoft visual studio 6.0 запускаю - так что make.exe не помешал бы в дистрибутиве. Цитата Там и мэйк имется и еще много всего полезного со старыми сборками бывают проблемы с современными виндами, лучше все обовить. Короче, я за включеие всего полезного и в этот дистр. size, make...
Сообщение отредактировал Genadi Zawidowski - Mar 11 2017, 20:26
|
|
|
|
|
Mar 11 2017, 21:21
|
Частый гость
 
Группа: Свой
Сообщений: 92
Регистрация: 8-03-05
Пользователь №: 3 160

|
Спасибо, получилось. По размеру выигрыш заметный. Но почему то теперь .elf перестал правильно видеться в 7ом протеусе. Пробовал через эту утилиту C:\WinAVR-20100110\bin\wish84.exe mfile.tcl ставить разные форматы отладки, но не помогло. Кстати с avr8-gnu-toolchain-3.5.1.1671 все нормально, скачал последний Atmel AVR 8-bit Toolchain 3.5.4 там также как на вашей сборке. Запускал их скопировав недостающее из WinAVR-20100110.
lcd1602.zip ( 16.64 килобайт )
Кол-во скачиваний: 31
|
|
|
|
|
Mar 11 2017, 21:48
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
rm, mkdir точно нужны... остальное на Ваш вкус, но лучше по максимуму, как в атмеловском варианте. Цитата avr-size имеется в bin, это не оно? оно, все в порядке. Цитата хотя не очень понял почему шестая и седьмая студии ушли в лес например потому, что не получается сделать легкое переключение целевого процессора (например, переключиться между atmega644pa @10MHz и atmega32a @8 MHz без залезания руками в единственный конфиг, как было в студии 4.19). Понятно, что в результате разные makefile генерируются, но на уровне среды основывающиеся на Микрософте версии не устроили (хотя навигация по коду и прочее конечно прелесть).
Сообщение отредактировал Genadi Zawidowski - Mar 11 2017, 21:53
|
|
|
|
|
Mar 12 2017, 10:56
|

I WANT TO BELIEVE
     
Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751

|
Цитата Спасибо, получилось. По размеру выигрыш заметный. Но почему то теперь .elf перестал правильно видеться в 7ом протеусе. При использовании LTO даже родная студия 7 не может отлаживать код. Может быть дело в этом.... Протеусом давно не пользовался, ничего не могу сказать... Цитата rm, mkdir точно нужны... остальное на Ваш вкус, но лучше по максимуму, как в атмеловском варианте. Посмотрю что предлагает скачать Atmel. Там оказывается есть отдельный вариант скачать toolchain для Windows. Цитата например, переключиться между atmega644pa @10MHz и atmega32a @8 MHz без залезания руками в единственный конфиг, как было в студии 4.19) Не знаю как там было раньше, но сейчас Project->Options->Device (или как-то так). Выбираете любой девайс. Далее редактируете дефайн F_CPU и вуаля. Т.е. руками править ничего не нужно для смены девайса. Буквально недавно менял девайс с XMega128A1 на Mega8A. А чтоб вручную не править F_CPU можете сделать #ifdef и переключать нужный F_CPU в зависимости от девайса. Как отловить выбранный девайс смотрите в avr/io.h Так а проект WinAVR давно заглох получается, да? И его до сих пор никто не форкнул? Просто не хочется изобретать велосипед заново. Точно нет форка со свежими билдами? Я пока не нешел, но мало ли.
--------------------
The truth is out there...
|
|
|
|
|
Mar 12 2017, 16:54
|
Частый гость
 
Группа: Свой
Сообщений: 92
Регистрация: 8-03-05
Пользователь №: 3 160

|
Цитата При использовании LTO даже родная студия 7 не может отлаживать код. Может быть дело в этом.... Протеусом давно не пользовался, ничего не могу сказать... LTO не использовал, с ним ошибку выдает "[ELF]Required attribute 49 of entry 2E not found". У меня такой вопрос, elf генерирует компилятор или какие то утилиты, есть ли возможность подменить эти файлы из WinAVR-20100110 или avr8-gnu-toolchain-3.5.1.1671?
|
|
|
|
|
Mar 12 2017, 18:00
|

I WANT TO BELIEVE
     
Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751

|
Цитата У меня такой вопрос, elf генерирует компилятор или какие то утилиты Компилятор конечно. Немного по парившись со сборкой coreutils я пришел к выводу, что для начала можно подложить в папку utils не старье из WinAVR-20100110 а более новые версии из C:\Program Files (x86)\Atmel\Studio\7.0\shellutils Дело в том, что собрать coreutils полностю можно только с CygWin... И я подумал, что для нас это будет слишком... Цитата со старыми сборками бывают проблемы с современными виндами, лучше все обовить. этих проблем у Atmel нет. У меня на Win10 x64 всё работает и версии там не на столько старые. В общем любители ручных мэйкфайлов могут качать сборочку winAVR-sigmaN1.zipТуда всходит всё то что в топике + utils из AtmelStudio7 Правда, там нет GDB, но кто им реально пользуется для AVR????
--------------------
The truth is out there...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|