Цитата(Сергей Борщ @ Jul 26 2006, 21:16)

О! Может тут кто-нибудь скажет:
1) как заставить WinAVR не подлинковывать функции к которым никто не обращается? Бить исходный файл на десять (по файлу на функцию) и делать из них библиотеку не хочу - дурная работа и инкапсуляция страдает.
Первый вариант:
1. Добавить опции "-ffunction-sections -fdata-sections" компилятору.
2. Добавить опцию "-gc-sections" (обязательно до опций -l и -L) линкеру.
Но это будет работать
ТОЛЬКО с binutils 2.17. binutils 2.16.1 удалит не только не используемые функции но и прерывания. Я не особо тестировал, но похоже "-fdata-sections" не работает.
С binutils 2.17 есть еще одна прблемма: AVRStudio (4.12) не загружает .elf файлы в которых нет .data сегмента. Тоесть должна быть как минимум одна глобальная инициализированная переменная.
Ждите новый релиз WinAVR или попробуйте взять компилятор отсюда:
http://www.klen.org/Projects/Avr-gcc/avr-gcc_last_build.htmlВторой вариант:
Опция компилятора -fwhole-program.
Но опять-же чтобы прерывания остались на месте придется постараться. Нужно добавить атрибут "used" в объявления функций прерываний. Подробнее здесь:
http://savannah.nongnu.org/bugs/?func=deta...p;item_id=16411Я это не тестировал.
Анатолий.
Сообщение отредактировал aesok - Jul 26 2006, 21:06