U8glib и WinAVR ругается на размер

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
dds7sdd
Прорезались зубы
Сообщения: 207
Зарегистрирован: Чт дек 07, 2017 13:48:44

U8glib и WinAVR ругается на размер

Сообщение dds7sdd »

Приветствую всех!

Использую компилятор WinAvr. Пытаюсь подключить в проект библиотеку LCD дисплеев U8gLib. Компилятор ругается на недопустимый размер кода. Выкидываю шрифты (уменьшаю размер кода) компилирует, но HEX файл на выходе аж 155 Кb! В контроллер Mega328 естественно это не лезет.
На буржуйских форумах пишут. что нужно поставить определенные флаги https://code.google.com/archive/p/u8glib/wikis/avr.wiki, но это для AtmelStudio.
Блин, почему вообще компилятор выдает такой космический размер файла? Он же должен выбрасывать неиспользуемый код...
Подскажите, кто сталкивался с u8glib, как не залезая в саму библиотеку получить скомпилированный WinAvr компилятором HEX файл до 32 Kb?
Реклама
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: U8glib и WinAVR ругается на размер

Сообщение pyzhman »

Вместо Debug поставить Relisе не помогает?
Docendo discimus
Реклама
Аватара пользователя
Ivanoff-iv
Друг Кота
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Re: U8glib и WinAVR ругается на размер

Сообщение Ivanoff-iv »

кроме того хекс файл в несколько раз больше реального размера прошивки (данные в нём прорежены чтобы можно было блокнотом открыть и не испортить и ещё добавлена служебная инфа - контрольные суммы для каждой строки...)
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
dds7sdd
Прорезались зубы
Сообщения: 207
Зарегистрирован: Чт дек 07, 2017 13:48:44

Re: U8glib и WinAVR ругается на размер

Сообщение dds7sdd »

[uquote="pyzhman",url="/forum/viewtopic.php?p=3388832#p3388832"]Вместо Debug поставить Relisе не помогает?[/uquote]
Нет - точно такой же размер...156Kb...

Добавлено after 3 minutes 5 seconds:
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3388844#p3388844"]кроме того хекс файл в несколько раз больше реального размера прошивки (данные в нём прорежены чтобы можно было блокнотом открыть и не испортить и ещё добавлена служебная инфа - контрольные суммы для каждой строки...)[/uquote]
И че делать? Ругаетсо веддь компиль: Program file is too big for the microcontroller: flash size = 32768, load address = 0, number of bytes = 54414.
Точнее даже не компиль уже а симулятор.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
pasha_zv
Мучитель микросхем
Сообщения: 460
Зарегистрирован: Пт фев 17, 2017 11:18:07
Откуда: Ставрополь-Донское

Re: U8glib и WinAVR ругается на размер

Сообщение pasha_zv »

а что там с уровнем оптимизации?
может она тупо отключена, так там такое можно получить, что и WOT будет меньше...

ЗЫ. на бесплатных или условно-платных версиях после 30 дней так и происходит.
Последний раз редактировалось pasha_zv Ср май 30, 2018 13:18:46, всего редактировалось 1 раз.
LIVE - EVIL
Реклама
dds7sdd
Прорезались зубы
Сообщения: 207
Зарегистрирован: Чт дек 07, 2017 13:48:44

Re: U8glib и WinAVR ругается на размер

Сообщение dds7sdd »

[uquote="pasha_zv",url="/forum/viewtopic.php?p=3388851#p3388851"]а что там с уровнем оптимизации?
может она тупо отключена, так там такое можно получить, что и WOT будет меньше...[/uquote]
Стоит O1, Пробовал все. Os в т. ч....

Добавлено after 3 minutes 11 seconds:
С O1 - 164 кB, O3 - 244 Кb, Os - 156кB....

Добавлено after 10 minutes 41 second:
Я так понимаю проблема с Make файлом и флагами, но как его прикрутить (как внешний) к avr-gcc не понятно.
Help камрады! Задолбался я уже с этой либой и winavr. Хоть на студию или IAR переходи.
Реклама
arkhnchul
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Re: U8glib и WinAVR ругается на размер

Сообщение arkhnchul »

winavr, насколько помню, просто собранный для винды avr-gcc плюс либы. Как и где вы сейчас компиляете код?
Там есть какой-то дефолтный makefile вроде. Флаги в них традиционно зовутся CFLAGS и LDFLAGS для компилятора и линкера соответственно.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18629
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: U8glib и WinAVR ругается на размер

Сообщение ARV »

во-первых, на размер hex-файла смотреть смысла нет вообще: в тулчейне есть avr-size, которая показывает настоящие значения размеров задействованной памяти. кстати, почти всегда в makefile есть соответствующий вызов этой утилиты.
во-вторых, настоятельно рекомендую использовать при компиляции опцию -ffunction-sections -fdata-sections, а при линковке -Wl,-gc-sections (опции указывать символ-в-символ так, как я написал, без пробелов и т.п. вольностей).
в-третьих, рекомендую перейти на более свежую версию avr-gcc, так как WinAVR уже сильно-сильно устарела. в последних версиях можно добавить опцию -flto, и в итоге размер еще заметно уменьшится.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
dds7sdd
Прорезались зубы
Сообщения: 207
Зарегистрирован: Чт дек 07, 2017 13:48:44

Re: U8glib и WinAVR ругается на размер

Сообщение dds7sdd »

Спасибо откликнувшимся. Господа! Я знаю про эти флаги в make file, но к сожалению, заноза сидит в моей голове и я хочу использовать чистый Си да еще в среде Proteus 8! В нем, как раз, напрямую качается WinAVR, в нем же и AVR-GCC. Протеус крякнутый v8.4.
WinAVR-20100110 - на сколько я понимаю это последняя его версия.
В нем же AVR-GCC - v4.3.3.
Вся проблема в том, что я не могу отредактировать Make file, т. к. он генерится при компиляции автоматически и все мои изменения удаляются. Шаблон Make file изменить у меня тоже не удалось, а функции "Use external make file" в чудном Протеусе нет...
Более того, я не могу понять как добавить эти флаги напрямую из опций проекта и конфигурации компилятора. Я просто не могу их добавить. Screen-ы прилагаю.
Есть в WinAVR утилита Mfile, где можно сгенерить Make file, но как я уже говорил - не могу понять как скормить компилятору внешний Make file. Сейчас думаю как отредактировать шаблон Make File по которому генерит компилятор...

P\S: За изврат с Протеусом просьба не пинать :oops:
Вложения
Screen.png
Флаги
(213.17 КБ) 611 скачиваний
Screen 2.png
Флаги, которые можно добавить
(221.9 КБ) 603 скачивания
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18629
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: U8glib и WinAVR ругается на размер

Сообщение ARV »

dds7sdd писал(а):не могу понять как скормить компилятору
у вас же есть галочка "Advanced" на опциях компиляции, где все должно быть можно исправить вручную, есть и кнопка Add - добавьте указанные мной опции и всех делов.

Добавлено after 1 minute 25 seconds:
dds7sdd писал(а):WinAVR-20100110 - на сколько я понимаю это последняя его версия.
В нем же AVR-GCC - v4.3.3
вроде как там avr-gcc версии 3.3.2
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
dds7sdd
Прорезались зубы
Сообщения: 207
Зарегистрирован: Чт дек 07, 2017 13:48:44

Re: U8glib и WinAVR ругается на размер

Сообщение dds7sdd »

О греческие боги протеуса и мои занозы в голове!
Я добавлял флаги в компилятор CC но не в линкер LD! :facepalm:
Все гуд, теперь HEX из 156 Кb превратился в 20Kb! :)
Правда это все равно многовато, но колупать U8glib как то вообще муторно.
Спасибо тебе ARV за то, что еще раз ткнул носом! :beer:
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18629
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: U8glib и WinAVR ругается на размер

Сообщение ARV »

dds7sdd писал(а):теперь HEX из 156 Кb превратился в 20Kb!
ткну носом еще раз: размер HEX не имеет значения, смотрите, что покажет avr-size
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Ответить

Вернуться в «Разные вопросы по МК»