avr-mem.sh verstehen

Gast #3765587
Lesenswert?

Im Makefile ist avr-mem.sh eingebunden. Das gibt mir auch die Daten aus:
1
pro.elf  :
2
section             size      addr
3
.data                286   8388864
4
.text              30454         0
5
.bss                 304   8389150
6
.debug_aranges       416         0
7
.debug_pubnames     3756         0
8
.debug_info        24423         0
9
.debug_abbrev       3845         0
10
.debug_line        28893         0
11
.debug_frame        2528         0
12
.debug_str          3829         0
13
.debug_loc         13665         0
14
.debug_ranges        584         0
15
Total             112983
16

17

18
AVR Memory Usage:
19
-----------------
20
Device: atmega328p
21

22
Program:   30740 bytes (93.8% Full)
23
(.text + .data + .bootloader)
24

25
Data:        590 bytes (28.8% Full)
26
(.data + .bss + .noinit)

Jetzt habe ich auch einen Bootloader, der ja Platz (per Fusebits 
eingestellt) belegt und den "nutzbaren" Flash verkleinert. Wie kann ich 
die Anzeige dazu überreden, diesen Platz zu berücksichtigen?
Und wie kann ich den Teil abziehen lassen, der von Konstanten im PROGMEM 
belegt ist, also keinen Platz im Flash braucht?
Gast #3765595
Lesenswert?

PROGMEM ist ein anderer Begriff für FLASH. Sogar die initialisierten 
globalen Daten liegen dort und werden von crt0.o ins RAM kopiert.

Einfach mal ein simples Program übersetzen und das .lss File anschauen. 
Da kann man viel über AVR's und C lernen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren