Итак, что имеется: Arduino IDE. Папка с .ino файлом. После компиляции код занимает энное количество flash и ОЗУ. Если добавить в эту папку заголовочный .h и .cpp файл в котором подключена библиотека Arduino.h, то после компиляции hex-код будет занимать больше flash и ОЗУ, хотя заголовочный файл не подключается в ino файле. Вопрос чем это вызвано? Если надо могу предоставить архив с двумя папками.
Это никого не волнует. Компилируется ВСЁ, что лежит в папке. Если в С файле есть какие-то глобальные переменные и/или функции, которые lto побоится выбросить, то они раздуют код.
Я на сях такого не замечал. Правда у меня оптимизация всегда на всю катушку. Только в дебаге даю продышаться компилятору, чтобы дебажить было проще. Сколько чего в дебаге занимает вообще пофигу, лишь бы в МК влезло)))
Когда я был меленьким и использовал Arduino IDE, то в итоговый бинарник включалось только то, что нужно для работы прошивки -- все лишние функции (лишний код) выкидывался из прошивки. Поэтому надо смотреть с какими опциями компилятор собирает прошивку. Но скорее всего проблема связана с тем, что в новых файлах есть обработчики прерываний, которые добавляются в итоговую прошивку. Или реализации 'weak'-функций (например, serialEvent() или yield() ).
Нельзя сказать, что плохо. Иногда так проще, поэтому библиотеки хранятся в каталоге проекта. UPD: неиспользуемые библиотеки всё-равно не влияют на размер итоговой прошивки (но только, если правильные ключики компилятору говорить).
А что вы подразумеваете под словом библиотека? Мне казалось, что это некий набор файлов, который лежит в недрах IDE в виде объектных и заголовочных файлов. А то, что лежит в папке с проектом - это вовсе не библиотека, а набор с и н файлов для совместной компиляции с проектом.
Я так же мусорю код частенько(вынужден для отладки), но борюсь с этим ВОТ ЭТИМ: Код (C++): #if(_deb > 0) ... какой-то код ... #endif А потом в каком-нибудь например cohfig.h Код (C++): #ifndef _config_h_ #define _config_h_ #define _deb 1 //условие для компиляции в режиме отладки #endif если надо компиляция с отладкой (#define _deb 1) или без (#define _deb 0)... соответственно и размер будет разный для разного. Вот если бы в библиотеках было что-то подобное, то и функции в них можно было бы выбирать исходя из потребностей. Ну это как вариант.