ATmega128 Fehler beim Flaschen des Bootloaders

Gast #1067229
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
Angehängte Dateien:
Gast #1067380
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
#1067395
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
Gast #1067402
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.
Gast #1068459
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
#1068465
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
Gast #1068632
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren