Forum: Compiler & IDEs Compiler erzeugt seltsamen Code


von Owz (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!

Nach dem ich weder in der Forumssuche, noch bei google ein
vergleichbares Problem gefunden habe, muss ich euch noch mal auf den
Wecker fallen.

Ich benutzte AVR-Studio mit avr-gcc. Ich schreibe gerade einen
Bootloader für den ATmega16, da dieser über ein recht aufwendiges
Busprotokoll aus der Bergwerkstechnik laufen soll, wird er ziemlich
groß. Des halb habe ich mich entschieden den Bootloader 2k
einzustellen.

Ich schreibe meinen Code, immer wieder Probiere ich einzelne Teile mit
dem Sim-Tool von AVR-Studio aus. Der belegte Flash-Bereich wird immer
größer der Compiler meldet das er bereits 2044 Byte hat. Alles geht
noch. Nu passierts, ich füge noch einige Befehle zum Testen ein, und
vergesse dafür an anderer Stelle war auszukommentieren, damit es nicht
zu groß wird.
Der Compiler meldet 2054 Byte, wie zu vermuten ist, mosert nun der
Simulator, dass der Code nicht in den AVR passt. Soweit ist ja alles
noch logisch.

Aber ab dem Moment bringt das tool eine Fehlermeldung, wenn die Größe
auch nur in die nähe der 2048 Byte kommt. Auch mit dem Hex-File scheint
etwas nicht zu stimmen, ich wollte versuchen das Hex-File, mit hilfe
unseres Epsilon5 in einen ATmega16 ein zu spielen, auch das ging
nicht.

Ich hab mal n paar Bilder gemacht, um es etwas anschaulicher zu
machen.

Mein Kollege meinte könnte sind, das der Compiler irgend wo
Temp.-Datenen an legt, in denen irgend was drin steht, was ihn aus der
Bahn wirft.
Wenn er so etwas tut, wo finde ich diese Dateien?
An was könnte es sonst noch liegen?

Danke!

mfg Owz

PS: Ich kann leider wenn überhaupt Teile, des Quellcode Posten, hat
meine Firma die Finger drauf, weil der Bus eine Eigenentwicklung ist.

von Owz (Gast)


Lesenswert?

Hallo!

Habs mal n bissl gespielt.
Die Grenze:
1904 Byte - Alles OK!
1906 Byte - Geht nicht!

Es ist auch egal was man raus nimmt, scheint nur von der Grenze des
erzeugten Code zu hängen.

mfg Owz

von A.K. (Gast)


Lesenswert?

Falscher AVR eingestellt?

von Owz (Gast)


Lesenswert?

Selbst wenn, währ schon sehr seltsam, dass der Bootloaderbereich genau
1904 Byte groß ist.
Nö hab eingentlich nichts verändert, bin nur ein ma aus Versehen über
die 2048 Byte raus gekommen, seitdem spinnt er!

von Owz (Gast)


Lesenswert?

Es scheint wirklich nur ein Problem vom Simulator zu sein.
Das das HEX-File von EQtools nicht gelesen wedern konnte war ein Bug im
EQtools, update brachte besserung.

Warum der Simulator das Zeug nicht mehr annimmt, ist mir ein Rätsel.

mfg Owz

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.