Не знаю, куда метнуться, поэтому попробую в “Общий”.
Для безобразий с OLED на AVR-ках я использовал библиотеку U8G2. Вчера решил попытать счастья с ESP32 и зафейлился. Подумав немного, пошёл стандартно - обновил всё подряд: IDE до 1.8.19, ESP32 Core до 2.0.6, U8G2 до 2.33.15
Платы выбирал разные - и ESP32 Dev и Wemos Lolin32 и хз ещё что. На двух операционках пробовал - Win7 и Win10. Чай пил, кофе и чагу.
Ничего не помогает. IDE морозится на компиляции простого обкоцанного (и полного - тоже) скетча HelloWorld:
Причем - непонятно, что происходит. IDE просто висит бесконечно (на полчаса оставлял), процесс JavaW жрёт 25% процессора, компилятор откисает на 0%, в build-каталоге не прибавляется, ни убавляется.
Другие скетчи с I2C/SPI компилируются нормально. Медленно, но не виснут.
В U8G2 поддержка ESP32 есть - встречаются блоки #if defined(ESP_PLATFORM) || defined(ARDUINO_ARCH_ESP32)
Знает кто-нить куда этой гадине вдарить, чтобы заработало? Или хотя бы логи показала нормально.
Совершенно случайно обнаружив в каталоге с IDE файлик arduino_debug.exe, я просмотрел с помощью него несколько серий “Матрицы” и нашёл, что дефолтовые установки в arduino_debug.l4j.ini приводят к такой картинке.
Т.е. компиляция, в принципе, заканчивается, но IDE не оживает - не хватает памяти, начинают сыпаться ошибки.
Недолго думая, применив метод научного тыка, подобрал верхнюю границу по памяти, с которой IDE запустилось: -Xmx1500M. Компиляция выявила, что потребление памяти процессом JavaW растет до ~1100MB.
Ещё пара серий “Матрицы” показала, что после увеличения верхнего лимита памяти IDE отмерзает в конце компиляции (но в процессе всё так же не реагирует на человека).
Познав всё это и применив лайффак для стандартной IDE, я пришёл к успеху (на этапе компиляции, по крайней мере).
Решение #1: в arduino.l4j.ini увеличиваем -Xmx512M до скольки не жалко (например, до 1500M).
Решение #2: прибить файл arduino.l4j.ini (Esp32 && u8g2 - #16 от пользователя WladDrakula) и получить чуть большую отзывчивость при компиляции.
Что-то странное.
Беглый поиск по гуглю и ардуино.сс не дал ни одной темы про проблемы компиляции УГ на ЕСП32. Траблы с работой - сколько угодно, а вот с компиляцией ты, похоже, первый…
Обычно это означает что проблемы на стороне того единственного, кто это нашел… а не в ардуино или библиотеках…
Сорри за неконструктив.
Проще было этот файл просто удалить. Это паранойя Виндов. Типа защита от чего-то-там в Джаве. (я знаю от чего, но лезть в дебри в которых сам “плаваю” - не стану).
Ты поменял параметр : Максимум heap size причем в уже собранном инишнике.
Я сперва не поверил тебе, а потом посмотрел у себя. Да в Винде есть эта херня, и в Линухе её нет. Поэтому я и не поверил - прости пожалуйста!!!
Думаю, что становится актуально, когда памяти мало в компе. Я смотрел на виртуалке Вин10. Я ей выделяю 8Гиг от щедрот из 16 имеющихся.
Поменять макс хип сайз руками - вариант, но проще удалить к херам эту затычку. Она нафиг не нужна вообще. Если коротко - то был как-то взлом в Джаве с логером l4j. И от избытка “мокрых портков” решили понаставить ограничения на все-что-можно.
ЗЫ: Кто спец по Винде - вопрос:
Я виртуалку запускаю реже раза в месяц. Она каждый раз пишет, что я не вошел в OneDrive и просит заново пароль вводить. Что за фигня? Пароль при этом помнит и войти дает, но просит, чтобы я его ручками ввел. Эту паранойу можно убрать в Винде? Простите за дурацкий вопрос, я “конченый Линуксоид”…
Я Винду на Виртуалке честно зарегистрировал с кодом с наклейки от Вин7, найденном на корпусе компа. Неважно, что это б.у. комп и эта винда не моя была. Мелкософт такой манёвр принял и Винда у меня настоящая!!! ВанДрайв идет бесплатной фичей к честной Винде. С каких херов мне отказываться от халявы?
Еще одна максима “от Влада”, кроме “DIY здорового человека”: Не оскорбляй дар отказом. Увидел рубль на земле - наклонись, не обломишься, этим ты скажешь “Спасибо” за удачу.
Вывод - никогда не пренебрегать халявой!
Быстрочекнул. Действительно - компилируется без подвисаний.
И вообще, субьективно IDE стало поотзывчивей. Раньше в окне лога компиляции скроллбар мог подвиснуть посередине, пока компиляция не закончится, а сейчас нормально автоскроллится, без фризов и песочных часов.
и это был неточный совет, настрой оба файла правильно и будешь сильно удивлён…
Не поленился, снёс, время компиляции в IDE с моими настройками 29 секунд, со снесёнными файлами конфигурации 154 секунды…что называется ПОЧУВСТУЙТЕ РАЗНИЦУ…
Поправлюсь…если памяти мало, то да, можно отдать на усмотрение системы…она это сделает достаточно неплохо…