Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: WinAVR 20081205 AVR Memory Usage
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
TechMike
Раньше работа с WinAVR 20050214, перешел на WinAVR20081205 и теперь при компиляции не выдает в конце удобную информацию по используемой памяти.
Как вернуть вывод блока "AVR Memory Usage" ?
Пробовал добавить ключ -dm, не помогло.

Было так:
Size after:
bat_meter.elf :
section size addr
.text 648 0
.data 6 8388704
.bss 13 8388710
.noinit 0 8388723
.eeprom 0 8454144
.debug_aranges 20 0
.debug_pubnames 203 0
.debug_info 370 0
.debug_abbrev 134 0
.debug_line 484 0
.debug_str 224 0
Total 2102

AVR Memory Usage:
-----------------
Device: attiny13
Program: 654 bytes (63.9% Full)
(.text + .data + .bootloader)
Data: 19 bytes (29.7% Full)
(.data + .bss + .noinit)
-------- end --------
Build succeeded with 0 Warnings...

Сейчас:
Size after:
bat_meter.elf :
section size addr
.text 1130 0
.data 8 8388704
.bss 19 8388712
.debug_aranges 32 0
.debug_pubnames 302 0
.debug_info 510 0
.debug_abbrev 134 0
.debug_line 666 0
.debug_frame 64 0
.debug_str 291 0
Total 3156
-------- end --------
Build succeeded with 0 Warnings...
aesok
Обратите внимание на размер секции .text. Он больше чем размер флеш.

Цитата(TechMike @ Jan 25 2009, 20:29) *
Сейчас:
Size after:
bat_meter.elf :
section size addr
....
.text 1130 0
...


Анатолий.
TechMike
Цитата(aesok @ Jan 25 2009, 23:22) *
Обратите внимание на размер секции .text. Он больше чем размер флеш.



Анатолий.


Это я для примера сделал выдержки из проектов, что под рукой были.
"было" для timy13, "сейчас" для mega16, т.е. 1130 байт для mega16 это семечки.
aesok
Тогда нужен Ваш Makefile, для анализа.

Анатолий.
TechMike
Цитата(aesok @ Jan 25 2009, 23:27) *
Тогда нужен Ваш Makefile, для анализа.

Анатолий.


Присоединил, сразу скажу, что при переходе на "новый" gcc, ничего не менял в нем. Может в этом и проблема.
kurtis
Покажите с какими ключами у вас avr-size вызывается. Попробуйте подкорректировать Makefile для avr-size по такому шаблону (взято из примеров для scmRTOS http://sourceforge.net/project/showfiles.p...ckage_id=210853 )
Код
SIZE    := avr-size
...
ELFSIZE = $(SIZE) --format=avr --mcu=$(MCU)
...
printok:  $(TRGELF)
    echo ======== All OK,  project size:; $(ELFSIZE) $<
EvgenWL
TechMike

В WinAVR 20050214 использовался файл avr-mem.sh в подкаталоге WinAVR\bin\ Но в следующей версии его вроде убрали.

а в makefile строки его вызова:
Код
# Display size of file.
HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
ELFSIZE = $(SIZE) -A $(TARGET).elf
AVRMEM = avr-mem.sh $(TARGET).elf $(MCU)

sizebefore:
    @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); \
    $(AVRMEM) 2>/dev/null; echo; fi

sizeafter:
    @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); \
    $(AVRMEM) 2>/dev/null; echo; fi
TechMike
Цитата(EvgenWL @ Jan 26 2009, 19:06) *
TechMike

В WinAVR 20050214 использовался файл avr-mem.sh в подкаталоге WinAVR\bin\ Но в следующей версии его вроде убрали.

а в makefile строки его вызова:
Код
# Display size of file.
HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
ELFSIZE = $(SIZE) -A $(TARGET).elf
AVRMEM = avr-mem.sh $(TARGET).elf $(MCU)

sizebefore:
    @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); \
    $(AVRMEM) 2>/dev/null; echo; fi

sizeafter:
    @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); \
    $(AVRMEM) 2>/dev/null; echo; fi


Подложил файлик в bin, все стало отображаться. Респект EvgenWL!
Тема закрыта, всем спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.