Forum: Mikrocontroller und Digitale Elektronik ISP-Programmierfehler


von Johannes (menschenskind)


Lesenswert?

Hallo

Ich habe nen MP3-Player, welcher auf dem FAT-FS von CHAN aufsetzt.
Ich nutzte längere Zeit eine veraltete Version und habe nun die 
aktualisierte Dateien integriert.
Doch beim Programmieren des uC krieg ich plötzlich diese Fehlermeldung:

Reading FLASH ..      OK!
WARNING: FLASH byte address 0x3071 is 0x02 (should be 0x06).. FAILED!

Die Fehlermeldung ist jedesmal anders also die enthaltenen Werte.

Der Speicherbedarf beim alten und jetzt bei dem neuen Projekt ist 
ungefähr derselbe.
Was kann das Problem sein?

Wenn ich den uC mit dem alten Hex-File programmiere, gibt es keinerlei 
Probleme.

Danke euch

von spess53 (Gast)


Lesenswert?

Hi

Schon mal den AVR vor dem Flashen gelöscht?

MfG Spess

von Johannes (menschenskind)


Lesenswert?

Ein Häkchen sitzt bei "Erase device before flashing".
Aber trotzdem Danke.

von Johannes (menschenskind)


Lesenswert?

Ha Problem gelöst!
Es fehlte eine spezielle Makefile-Datei.

von Johannes (menschenskind)


Lesenswert?

Scheiße doch nicht.
Ich hatte bloß das funktionierende Projekt im AVR-Studio geladen.

Also Problem ist weiterhin existent. Leider...

von Johannes (menschenskind)


Lesenswert?

Problem ist immer noch da.
Es liegt nicht an der SD-Karte.
Die Leitungen MISO und MOSI hab ich (lt einem Tutorial) mit 50kOHM gegen 
VCC geschaltet.
Sind die Widerstände zu groß?

von Andreas (Gast)


Lesenswert?

Ist es immer die gleiche Adresse? Und unterscheiden sich die Werte immer 
genau um 0x04?

Wenn ja, dann kann es sein, dass im Flash genau ein einzelnes Bit defekt 
ist, so dass es immer 0 oder immer 1 bleibt (in deinem Fall dann wohl 
immer 0). Wenn in der funktionierenden Firmware zufällig an genau dieser 
Stelle auch tatsächlich eine 0 hingehört, dann funktioniert es trotzdem, 
während deine neue Firmware dort jetzt gerne eine 1 hätte und deshalb 
nicht mehr geht.

Falls das zutrifft, hilft nur, den uC auszutauschen, oder du versuchst, 
den Compiler irgendwie dazu zu bringen, genau dieses Byte nicht zu 
benutzen und stattdessen mit einem bestimmten (funktionierenden) Wert 
aufzufüllen (keine Ahnung, ob das geht, vielleicht mit ein paar 
Assembler- und Linker-Tricks).

Andreas

von Johannes (menschenskind)


Lesenswert?

Das ist's glaub ich nich, denn der Zahlencode ist immer anders und 
sporadisch funktioniert es ja ab und zu mal.
Ich hab jetzt auch mal die Pullup-Widerstände von 50 auf 10kOHM 
runtergesetzt-->hat nix gebracht.
Jetzt werd ich mir noch mal die Verkabelung vom Programmieradapter zum 
uC anschauen. Das ist nämlich ne ziemlich lose Verdrahtung. Also lange 
Leitungen, die in der Luft rumhängen.

von Johannes (menschenskind)


Lesenswert?

jetzt kommt immer dieselbe Meldung:
Reading FLASH ..      OK!
WARNING: FLASH byte address 0x0000 is 0x00 (should be 0x0C).. FAILED!

Ne Idee? Ist ja schon interessant, dass es genau Adresse 0 ist und nicht 
irgendwo mittendrin.

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.