Forum: Compiler & IDEs ATmega128 Fehler beim Flaschen des Bootloaders


von Alex D (Gast)


Angehängte Dateien:

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

von Dennis (Gast)


Lesenswert?

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

von Peter D. (peda)


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

von Alex D. (Gast)


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

von Peter D. (peda)


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

von Alex D. (Gast)


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.

von Alex D (Gast)


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

von Peter D. (peda)


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

von Alex D (Gast)


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

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.