Gast
#3043304
Hi Community, ich habe eine Frage zur Speicherplatzausnutzung. Mit dem Tool avr-nm kann man sich ja anzeigen lassen, wie die einzelnen Symbole im Speicher platziert werden und wie viel Speicherplatz sie verbrauchen. Allerdings ist mir nicht ganz klar, wieso es bei mir so aussieht: ... 00800200 D __data_start 0080033a 00000012 D resource_helloworld 00800379 00000012 D resource_chunks 008003af 00000012 D resource_pushing 008003c1 00000012 D periodic_resource_pushing ... Erstmal ist mir nicht ganz klar, wieso __data_start bei 0x800200 beginnt und nicht einfach bei 0x800000, weil ich dachte der Offset wäre einfach 0x800000 bei nem ATmega1281. Und dann verstehe ich nicht, wieso er das erste Symbol erst bei 0x80033a ablegt. Und das nächste Symbol ist dann auch nicht bei 0x80033a + 0x12 = 0x80034c, sondern erst bei 0x800379. Was ist mit den Lücken dazwischen? Später sieht es dann beispielsweise so aus: ... 00800a54 00000001 b state 00800a55 00000002 b begin 00800a57 00000002 b end 00800a59 00000090 b rxbuf 00800ae9 00000002 b pkt_end ... Man kann deutlich sehen, dass die Symbole hier ohne Lücken aneinanderliegen. Also kann es wohl nicht an irgendwelchen Alignment-Sachen liegen, oder? Wieso ist das am Anfang nicht auch so? Danke schon mal.