Forum: Compiler & IDEs AVR32 Studio: avr32-size RAM-Verbrauch falsch?


von Billy _. (slowflyer)


Lesenswert?

avr32-size zeigt falschen statische RAM-Verbrauch an. Ich verwender eine 
Struktur für einen Debug-Buffer.

debug.h
1
#define BUF_SIZE 1024*13
2
3
typedef struct
4
{
5
int buf[BUF_SIZE];
6
int ptr;
7
}debug_buffer;
8
9
debug_buffer dbg;

debug.c
1
debug_buffer dbg;

Der Buffer wird verwendet und funzt soweit.

avr32-size gibt aber folgendes raus:
   text     data      bss      dec      hex  filename
   6222       12      420     6654     19fe  ./src/debug.o

Wie man sieht keine Spur von den 13k. Warum? Der Buffer wird bei der 
Deklaration/Definition (ich verwechsle das immer noch, ne Eselsbrücke 
wär nett) nicht initialisiert, vielleicht deshalb? Jemand ne Idee?

von ●● pit ●. (Gast)


Lesenswert?

Die Ausgabe ist nur die Code-Size, also ROM.
Lies die man-pages von avr32-size und vom Linker.

Die Größe deines Buffers siehst du zur Laufzeit mit
  size_t s = sizeof(dbg);
da dieser im RAM liegt.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Willi K. wrote:

Vorsicht!

> debug.h
>
1
> #define BUF_SIZE 1024*13
2
> 
3
> typedef struct
4
> {
5
> int buf[BUF_SIZE];
6
> int ptr;
7
> }debug_buffer;
8
> 
9
> extern debug_buffer dbg; // extern hinzugefügt!
10
>
>
> debug.c
>
1
> debug_buffer dbg;
2
>

Du willst dbg in debug.h deklarieren nicht definieren!

von Matthias L. (matze88)


Lesenswert?

Und nochmal Vorsicht: 13*1024 Integer sind NICHT 13 kByte sondern 4*13 
kByte, da ein Integer 32 Bit fasst.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.