Hallo zusammen, ich benutze Eclipse um einen Cortex M3 zu programmieren. Funktionierte bisher immer gut, bis gestern "irgendwas" nicht gepasst hatte. War ein Problem mit den Verlinkungen auf die Libs und den Compiler. Nunja... jedenfalls habe ich das Problem gefunden und behoben und die erste .hex Datei wieder compiliert (ca.700kb Zeit: 13.13 als Beweis). Nun wollte ich zusätzlich noch binary erzeugen. Also habe ich (wie immer) in den Project Properties/sourcery ... create flash image/output auf binary umgestellt. Es hat auch soweit durchgebaut, nur das dieses neue Kompilat nun 130MB (!!, anstatt 200kb) grob war. Also hab ich wieder zurück auf ihex umgestellt um die hex zu erstellen. Die nun erzeugte .hex war jetzt auch so rießen groß, mit ca. 350MB. Woran kann das liegen?! Wäre super wenn mir jemand Tipps geben könnte.
Leg doch einfach ein neues Projekt an und versuch es noch mal. Vielleicht ist in irgend einem makefile ein * zu viel.
Hab gerade eben auch mal eine 402 MB große bin Datei erstellt ;) Der Grund war einfach ein vergessenes "AT > rom" am Ende der neu erstellten Section im Linkfile.
Das Problem liegt bei den Adressen im linker script. Ich nehm mal stark an, das hex file ist genauso groß. Im hex file stehen die Adressen und die Daten, die an diese Adressen geschrieben werden sollen. Wenn das in ein binary file umgewandelt wird, dann werden die Daten sozusagen am Stück geschrieben. Es gibt keine Lücken. Wenn du z.B. 10 Byte Daten hast, die an Adresse 0 geschrieben werden sollen und 10 an Adress 1000000, dann ist die Datei statt 20 Byte 1 MByte groß. Du musst also unbedingt das Linker script kontrollieren und die mit objdump mal das elf file anzeigen lassen, um zu sehen, welche section an welcher Adresse steht.
... schrieb: > Ich nehm mal stark > an, das hex file ist genauso groß. Nein, ist es nicht. Da wird einfach mit der neuen Adresse ein neuer Abschnitt erstellt...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.