Forum: Mikrocontroller und Digitale Elektronik bekomme beim AT90USB162 den bootloader nicht zusammen mit meiner software zum laufen


von CRuS (Gast)


Lesenswert?

Hallo.

Ich habe mir schon das halbe Forum durchgelesen weil ich mir denke: Das 
kann doch nicht so schwer sein?!

Ich habe eine Software für den AT90USB162 geschrieben. Wenn ich sie 
einzeln mit AVR Studio 4.13 draufflashe dann läuft sie wie sie soll.

In der Software lese ich einen bestimmten (sonst leeren) Speicherbereich 
aus.
Um diesen Speicherbereich unabhängig von der Firmware zu beschreiben 
(ist notwendig) habe ich mir folgende Hex-File gemacht:

:10200000FFFFFFFFFFFFFFFFFFFFFFFFFF01234574
:00000001FF

Wenn ich einen Chip Erase, die Software draufschreibe und dann die 
Nutzdaten mache, dann läuft die Software nicht mehr ?!

Noch viel schlimmer ist, dass da eigentlich auch noch der Bootloader 
(v1.0.5) von Atmel drauf soll.

Ich habe auch schon probiert einfach die drei Hexfiles (Firmware, 
Nutzdaten und Bootloader) hintereinander in eine Hexfile zu schreiben 
(durch weglassen der :00000001FF zeilen dazwischen). Das lief 
seltsamerweise genau einmal, doch kann ich es nicht reproduzieren indem 
ich genau die gleiche (zusammengeschusterte) Hexfile drauflade.

Was mir aufgefallen ist: Die Bootloader-Hexfile fängt folgenden Zeilen 
an:
:020000020000FC
:043000000C94101EFE
:04302C000C94931D50

Und meine Firmware fängt mit folgender Zeile an:
:020000020000FC

Laut http://de.wikipedia.org/wiki/Intel_HEX werden damit Datensatztypen 
definiert. Nur weiß ich nicht welche auswirkungen das auf meinen 
Speicherinhalt hat.

von CRuS (Gast)


Lesenswert?

Hallo nochmal.

Vielleicht hilft folgendes weiter:

Ich habe jedes Hex-File einzeln draufgeladen und wieder runterkopiert. 
Dadurch verschwinden die nicht 00-DataRecords aus der Datei (sind dann 
also alle als Typ 00 umgerechnet drin).

Jedenfalls habe ich das mit allen drei gemacht und sie lassen sich auch 
noch nach der Umwandlung verifizieren (also hat das nichts verändert).

Jetzt habe ich mit diesem "nur-noch-typ-00-records" ein Hex-File 
gebastelt wo alles so drin ist wie es sollte.

Wenn ich dieses widerrum draufspiele, dann wird mein Programm wieder 
nicht ausgeführt. Aber ich kann den Prozessor per FLIP ansprechen und 
wenn ich dann da "Start Applikation" auswähle, dann läuft auch meine 
Software mit den richtigen Nutzdaten!

Mir scheint es so als ob der den Bootloader nicht verlässt bis "Start 
Application" ausgewählt worden ist. Das kann doch nicht Sinn des 
Bootloaders sein, oder?

von Stefan Salewski (Gast)


Lesenswert?

>Ich habe mir schon das halbe Forum durchgelesen

Respekt, das sind einige Gigabyte an Text!

>Das kann doch nicht Sinn des
>Bootloaders sein, oder?

Könnte am fehlenden Pullup liegen, falls es eine selbstgebastelte 
Platine ist. Hatte ich bei meiner ersten Platine auch vergesssen, siehe 
dazu auch

Beitrag "Re: AVR90USB647 - Wie programmiere ich diesen über USB?"

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.