www.mikrocontroller.net

Forum: Compiler & IDEs Compiler erzeugt seltsamen Code


Autor: Owz (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Owz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falscher AVR eingestellt?

Autor: Owz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Owz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.