Gast
#4092900
Hallo ich arbeite mit Keil uVison 4.5 und stm32f407ZG weiß jemand mal vielleicht wie ich der RAM bzw FLASH verbrauch ausrechnen kann? Program Size: Code=63224 RO-data=36336 RW-data=704 ZI-data=8320 Danke
|
Anzeige
|
Was ist mit diesen Zeilen gemeint?
Gast
#4092900
Hallo ich arbeite mit Keil uVison 4.5 und stm32f407ZG weiß jemand mal vielleicht wie ich der RAM bzw FLASH verbrauch ausrechnen kann? Program Size: Code=63224 RO-data=36336 RW-data=704 ZI-data=8320 Danke Mit "nm - - size-sort xyz.elf" hast du eine schöne Übersicht
Gast
#4093115
Code ist Programm im Flash RO Data sind Konstanten im Flash RW Data sind Variablen im RAM Easy schrieb: > RO Data sind Konstanten im Flash > RW Data sind Variablen im RAM Und noch eine Silbe zur Herkunft: RO = read only RW = read + write
Gast
#4093175
..und ZI (zero initialized) ist ebenfalls RAM. W.S.
Gast
#4094044
Hallo, Unter diesem Link findet man die µc Datasheet. http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1577/LN11/PF252136# meine Software läuft orientierungslos und sieht so aus als er auf die falschen Adressen zugreift. Diese sollte aber wegen einer externen Library, die ich in die Software Integriert habe. Program Size: Code=63224 RO-data=36336 RW-data=704 ZI-data=8320 ich denke daran, dass der stm32f407ZG Ram Größe reicht nicht aus. stimmt das oder habt Ihr ganz andere Meinungen. Danke Janine schrieb: > Program Size: Code=63224 RO-data=36336 RW-data=704 ZI-data=8320 Selbst wenn alle RO Daten ins RAM gepiegelt werden sind das 44kB. Aus dem Datenblatt entmehme ich, dass der stm32f407 192 kB RAM hat. Das soll also locker reichen. Hinweis: Der Compiler/Linker weiß aber nicht inwieweit der Stack ausgenutzt wird. Es kann also dennoch sein, wenn du zu viele/große lokale Variablen (bzw. malloc etc) nutzt, dass der Stack überläuft.
Gast
#4094529
malloc belastet den Heap (sofern vorhanden), aber nicht den Stack. Guck doch einfach mal in die Linkerliste, ob dort tatsächlich die richtigen Adreßräume für den RAM zu lesen sind. Und schau dir dein Linkersteuerfile an, da steht sinngemäß etwa sowas: --device=DARMSTM --compatible=cortex-m3 --output linked.elf --ro-base 0x00000000 --rw-base 0x20000000 --list linklist.lst --info sizes,totals,veneers,unused --map --symbols --xref --callgraph --first startup.o --entry=Kaltstart (ist für nen STM32F103ZET6) Die Zeile für --rw.. muß natürlich auf deinen Chip angepaßt sein. Wenn da was Falsches steht, packt der Linker alles an die verkehrten Stellen. W.S.
Gast
#4094536
Schon lustig, Wenn jemand mit nem Mädlsnamen hier auftaucht sind auf einmal alle ganz lieb und hilfsbereit. Sogar der streitbare W.S. ist auf einmal ganz zahm, anstatt sich über fehlende Grundlagen, viele Tippfehler oder mangelnde Eigeninitiative zu mokieren ;-) Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|