Forum: Mikrocontroller und Digitale Elektronik Speicher voll? STM32F407


von Äxl (geloescht) (Gast)


Lesenswert?

1
Program Size:
2
      text     data      bss      dec      hex  filename
3
    237412     3712    91544   332668    5137c  TEST1234.elf
4
5
BUILD SUCCESSFUL
6
Total time: 6 seconds

Hey Leute,
Discovery Board inklusive etwas Peripherie.
ein etwas umfangreicheres Projekt läuft soweit ganz gut mit meinem 
Spaghetticode.
Eine Frage trotzdem:
Woran sehe ich, wann mein Speicher überläuft?
Beim AVR wurde das immer sehr schön in Prozent angezeigt...
Kann ich mich da mit Lust und Laune austoben?
Vielen Dank für ein kurzes Rechenexample und vllt. kann mit jemand 
sagen, wie ich die Größenberechnung analog zum WINAVR in mir bekannt 
gewohnter Weise in Prozent angezeigt bekommen könnte.
LG
Äxl

von sumo (Gast)


Lesenswert?

Äxl (geloescht) schrieb:
> Hey Leute,
> Discovery Board inklusive etwas Peripherie.

Die Anzeige kommt doch bestimmt nicht vom Board selbst, sondern von 
einer Software (Assembler/Compiler/Linker). Wenn du den Namen dieser 
Software verrätst, kann man auch schauen, wie diese Software die 
Speicherbelegung formatieren kann...

von dasrotemopped (Gast)


Lesenswert?

dein Flash Speicher in Byte - 332668 = verbliebener Restflash
dein RAM - 3712 = verbliebenes RAM

Der Compiler Output gibt immer die verbrauchten Ressourcen an, nicht den 
ungenutzten Rest.

von Äxl (geloescht) (Gast)


Lesenswert?

sumo schrieb:
> sondern von
> einer Software (Assembler/Compiler/Linker)

Oh natürlich, wie unangenehm:
ich ging wie selbstverständlich davon aus, das alle Bastler hier mit dem 
Coocox spielen. Das es auch andere Compiler, Editoren IDEs usw. für den 
STM32 gibt, habe ich total verdrängt, sorry!
1
CooCox CoIDE
2
3
Version: 1.7.8
4
Build id: 20150206-3334-1557

Gruß
Äxl

von sumo (Gast)


Lesenswert?

Äxl (geloescht) schrieb:
> das alle Bastler hier mit dem Coocox spielen.

...was schon seit ca. 2 Jahren nicht mehr existiert.
Aber ansonsten würde ich "dasrotemopped" zustimmen.

von Darth Moan (Gast)


Lesenswert?

Moin,

dasrotemopped schrieb:
> dein Flash Speicher in Byte - 332668 = verbliebener Restflash
> dein RAM - 3712 = verbliebenes RAM

Wie kommst du denn auf diese Zahlen?
.bss belegt kein Flash sondern RAM
.data belegt RAM und Flash

also eher:
FLASHSIZE - (237412 + 3712) = rest Flash
RAMSIZE - (3712 + 91544) = rest RAM
Oder?

Wobei niemand etwas über die sonstigen Rahmenbedingungen weis.
Ich hab zwar 1MB Flash, aber Bootloader, FEE und andere Configdaten
lassen am Ende nur 160KB fuer meine Applikation übrig.

von Äxl (geloescht) (Gast)


Lesenswert?

sumo schrieb:
> ...was schon seit ca. 2 Jahren nicht mehr existiert.

solange liegt das hier auch schon wieder rum. Sollte man sich was 
anderes suchen? Ich google mal, danke soweit.

von Johannes S. (Gast)


Lesenswert?

Äxl (geloescht) schrieb:
> Woran sehe ich, wann mein Speicher überläuft?

Wenn es nicht passt meckert der Linker so in etwa mit 'section ... 
overflowed by x bytes' und es sollte 'build failed' gemeldet werden.
Die Flashsize beim 407 ist soweit ich weiss der zweite Buchstabe nach 
dem 407, E=512 kB, G=1024 kB

Äxl (geloescht) schrieb:
> solange liegt das hier auch schon wieder rum. Sollte man sich was
> anderes suchen? Ich google mal, danke soweit.

SW4STM32 ist eine einfach zu installierende Eclipse IDE incl. Toolchain, 
aber hauptsächlich für STM devices. Eclipse + gnumcueclipse ist 
universeller, aber man muss viel zu Fuss installieren.

von Dr. Sommer (Gast)


Lesenswert?

Äxl (geloescht) schrieb:
> Kann ich mich da mit Lust und Laune austoben?

Ja. Wenn's voll ist gibt's ne Fehlermeldung. Gilt natürlich nicht für 
den Stack.
Die Ausgabe von "arm-none-eabi-readelf -S deinProgramm.elf" ist übrigens 
hilfreicher und zeigt genau absolut an wovon wie viel verbraucht wurde. 
Daraus kannst du den prozentualen Verbrauch ausrechnen.

von Pete K. (pete77)


Lesenswert?

Und die Optimierung einschalten (-O2) :-)

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.