www.mikrocontroller.net

Forum: Compiler & IDEs ATmega128 Fehler beim Flaschen des Bootloaders


Autor: Alex D (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo liebe Gemeinde,

ich habe einen Bootloader in C geschrieben mit der Anfangsadresse 0xF000 
(Word). Flashen tue ich das ganze mit dem Sercon2-Mini und AT-Prog. Nach 
dem Flashen zeigt er mir beim Vergleich der Daten an Position 0x7000 2 
Fehler an und weitere so ziemlich am Ende des Bootloaders. So ab 0x7600.
Das HEX-File scheint in Ordnung zu sein, das habe ich mit einem 
IHEX-Editor angeguckt und die Adressierung geht bei 0x1E000 (Byte) los. 
Was 0xF000 (Word) entspricht. Ich versteh nicht wie er auf die Adresse 
0x7000 kommt. Hatte jemand von euch schon ähnliche Erfahrungen? Ich habe 
das HEX-File angehängt falls jemand die Möglichkeit hat es eventuell zu 
testen.

Danke erstmal =)

Gruß,

          Alex

Autor: Dennis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter Danegger hat mal hier im Forum einen sehr genialen Bootloader 
veröffentlicht; evtl. poste Ihn mal an, er weiss bestimmt eine 
Antwort...

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vermutlich hast Du ein Problem mit RAMPZ, da der M128 ja mehr als 64kB 
adressieren muß. Schau mal ins Assemblerlisting, ob es überhaupt gesetzt 
wird.
Ein Hex-File nützt da nichts.


Peter

Autor: Alex D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nabend,

das Problem ist, dass ich nicht mal den Bootloader per SPI flashen kann.
Habe eine Datei mit 128kByte generiert. Die Fehler beim wieder auslesen 
waren einmal das erste Wort 0x000 und weitere folgten von 0x7FA0 bis 
0x7FFF.
Danach ist der Zähler von AT-Prog wieder auf 0x000 gegangen. Ich vermute 
einen Hardwaredefekt des Mikrocontrollers. Bzw sein RAMPZ Bit. Das 
Merkwürdige ist, wenn ich die Firmware drauflade mit ca 28kByte, dann 
ist diese i.O. Werde morgen eine andere Leiterplatte ausprobieren.

Ich bedanke mich für die Antworten und wünsche noch ne gute Nacht.

Alex

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex D. wrote:
> das Problem ist, dass ich nicht mal den Bootloader per SPI flashen kann.

Dann ist was faul mit Deinem Programmer.
Ich benutze das STK500 und hatte noch nie Probleme.

> Merkwürdige ist, wenn ich die Firmware drauflade mit ca 28kByte, dann
> ist diese i.O.

Dann ist der M128 o.k.
Von nem halb kaputten Flash habe ich noch nie was gehört.


Peter

Autor: Alex D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wäre bei dem ATmega128 denkbar, wenn das RAMPZ-Bit defekt ist. Habe 
ausgerechnet, dass der Bootloader beim flashen in den 0x7000 bereich 
kommt, wenn das RAMPZ-Bit beim flashen nicht auf 1 schaltet. Naja, genug 
der Theorie. Werde morgen einen anderen ATmega128 testen und über das 
Ergebnis berichten.

Autor: Alex D (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nabend,

ich habe heute eine andere Leiterplatte mit einem anderen ATmega128 
ausprobiert, aber der selbe Effekt ist aufgetretten. Vermute, dass die 
Programmiersoftware mit dem RAMPZ Bit nicht klar kommt. Habe mir die 
Seite 304 von der Atmega128 Doku angesehen wo die einzelnen Befehle für 
die SPI-Programmierung aufgelistet sind. Mir ist bisher schleierhaft mit 
welchem Befehl das RAMPZ-Bit geändert wird. Weiß, ob es eine andere 
Software wie AT-Prog gibt, die den Sercon2-Mini unterstützt? :(

Gruß,
            Alex

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das RAMPZ ist nur nötig für den SPM-Befehl, also für den Bootloader.
Mit dem SPI-Programmer hat das nichts zu tun.

Vielleicht ist ein Bug in Deiner Programmiersoftware und die wertet den 
Segmentrecord nicht aus.
Das Intel-Hexformat kann ja direkt nur bis 64kB adressieren, deshalb muß 
mit einem Segmentrecord (02 oder 04) auf die nächste 64kB-Seite 
umgeschaltet werden


Peter

Autor: Alex D (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nabend,

also es scheint tatsächlich ein Bug zu sein. Habe meinen 
Programmier-Adapter umgebaut um ihn mit PonyProg nutzen zu können. Bei 
dem Sercon2-Mini muß nur eine Brücke umverlegt werden. Den Bootloader 
rauf geladen und verifiziert. Ist alles i.O.

Gruß,

       Alex

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.