Jeg vil gjerne vite hvor mye RAM jeg bruker i prosjektet mitt, så vidt jeg kan vite, er det ingen måte å faktisk finne ut av det (annet enn å gå gjennom og beregne det selv). Jeg har kommet til et stadium i et ganske stort prosjekt der jeg har bestemt at jeg går tom for RAM.
Jeg har bestemt dette fordi jeg kan legge til en seksjon, og så bryter alt helvete løs et annet sted i koden min uten noen åpenbar grunn. Hvis jeg #ifndef
noe annet ute, fungerer det igjen. Det er ikke noe programmatisk galt med den nye koden.
Jeg mistenkte en stund at jeg kom til slutten av tilgjengelig RAM. Jeg tror ikke jeg bruker for mye stack (selv om det er mulig). Hva er den beste måten å bestemme hvor mye RAM jeg faktisk bruker?
Jeg går gjennom og prøver å finne ut har problemer når jeg kommer til enums og strukturer; hvor mye minne koster de?
første redigering: OGSÅ, jeg har redigert skissen min så mye siden starten, dette er ikke de faktiske resultatene jeg opprinnelig fikk, men det er det jeg får nå.
tekstdata bss des hex filnavn 17554844449 18847 499f HA15_20140317w.cpp.elf 16316 694 409 17419 440b HA15_20140317w.cpp.elf 17346790426 18562 4882 HA15_20140317w.cpp.elf
Den første linjen (med tekst 17554) virket ikke, etter mye redigering fungerer den andre linjen (med tekst 16316) som den skal.
rediger: den tredje linjen har alt som fungerer, seriell lesing, mine nye funksjoner osv. Jeg fjernet egentlig noen globale variabler og dupliserte koder. Jeg nevner dette fordi (som mistenkt) det ikke handler om denne koden per sae, det må handle om RAM-bruk. Som bringer meg tilbake til det opprinnelige spørsmålet, "hvordan måler jeg det best" Jeg sjekker fremdeles noen svar, takk.
Hvordan tolker jeg egentlig informasjonen ovenfor?
Så langt er min forståelse:
`TEXT 'er programinstruksjonsminne
`DATA` er variabler (enhetliggjort?) I programminnet` BSS` er variabler som opptar RAM
siden BSS er betydelig mindre enn 1024 byte, hvorfor fungerer den andre, men den første virker ikke ' t? Hvis det er DATA + BSS
, opptar begge mer enn 1024. nå har jeg fjernet det fordi det egentlig ikke hadde noe å gjøre med problemet (annet enn kanskje dårlig kodingspraksis, variabel erklæring og lignende). Du kan se gjennom koden ved å se tilbake gjennom endringene hvis du virkelig vil se den. Jeg ønsket å komme tilbake til det aktuelle spørsmålet, som var mer basert rundt: Hvordan måle RAM-bruk.