Для получения информации размерах каждой секции кода я использовал COSMIC Software Object Inspector (входит в состав компилятора), утилита проста в использовании:
Однако формат вывода информации, скажем прямо плохой :
Информации много, восприятие плохое.
В Linux есть замечательный потоковый редактор sed, его (и ещё некоторые утилиты) успешно портировали в Windows.
Рассказывать как работает редактор не буду, в сети очень много записей о нём.
Указанный выше пакет утилит я распаковал в директорию: C:/Tools/GnuWin32/
Прописал его в майкфайле: GNU_PATH = C:/Tools/GnuWin32/
Изменил вызов:
на
Создал в директории C:/Tools/GnuWin32/ файл script с командами для редактора:
В результате на выходе получим:
Примечание: [начальный адрес секции] [размер] [размер] [имя секции]
По моему мнению более информативно
Код и подход не оптимален, планирую изменить позже для суммирования размеров секций по типу памяти (ОЗУ, Флешь, EEPROM).
Для суммировать по секциям хотел использовать awk, но сходу не смог понять как преобразовать шестнадцатеричный формат в десятичный. Поэтому пришлось прибегнуть к написанию своей программки на C#.
В результате после всех манипуляций имеем вот такую выходную информацию: