Hallo,
folgendes Problem habe ich mit dem SD Card Bootloader
http://www.mikrocontroller.net/articles/MMC/SD_Bootloader_f%C3%BCr_AT_Mega
(Vielen Dank an die Erfinder, super klasse Projekt)
Nach manchen Änderungen in meiner Software kann ich den Bootloader nur
einmalig benutzen. Dann habe ich zwei Resultate entweder, es passiert
nix mehr, also der Atmel ist wie tot, oder meine zu letzt geupdatete
Software funktioniert und überspringt bei jedem Neustart den Bootloder.
Der häufigste Fall ist allerdings, dass ich Änderungen machen kann ohne
das es zu den besagten Problemen kommt.
Die Änderungen in der Software sind marginal, manchmal hilft es wenn ich
einfach eine andere Softwareversion setze oder wenn ich bestimmte
Funktionen außer Betrieb nehme, doppelt ausführe, eine unnütze Variable
Inkeremntiere, oder oder usw… Bislang rette ich mich immer mit solchen
bastelein. Dadurch ist die Funktion auch uneingeschränkt nutzbar.
Um den Fehler auf die Sprünge zu kommen habe ich den Atmega ausgelesen
um eine Funktionierende Version mit einer Fehlerhaften zu vergleichen.
Der Bootloaderbereich ist bei beiden Identisch.
1.Ich würde mich freuen wenn jemand mal diese Zeilen aus meinen
Makefiles ansehen kann. Vielleicht habe ich die Zuweisung der Adressen
oder Speicherbereiche für Bootloader falsch gemacht.
Verwendung findet einen Atmega 64 mit Programmers Notepad und der
Aktuellen WinAVR.
Fusebytes habe ich auch High=0xD8 und Low =0xFF gestezt. Komischer weise
gibt es bei mir keinen unterschied ob ich BOOTRST aktiv oder deaktiv
habe.
1 | # Output format. (can be srec, ihex, binary)
|
2 | FORMAT = binary
|
3 |
|
4 | DEVID = 0x00000001
|
5 | SWVERSIONMAJOR = 1
|
6 | SWVERSIONMINOR = 1
|
7 | BOOTLDRSIZE = 0x1000
|
8 | #FLASHSIZE - BOOTLDRSIZE - 8
|
9 | BOOTLDRINFOSTART = 0xEFF8
|
Beim Bootloader habe ich folgende einstellung:
1 | # Output format. (can be srec, ihex, binary)
|
2 | FORMAT = ihex
|
3 |
|
4 | DEVID = 0x00000001
|
5 | TARGET = Bootloader-V0.0
|
6 | BOOTLOADERSTARTADR = 0xF000
|
7 | BOOTLDRSIZE = 0x1000
|
2.Ich würde gerene wissen an welcher stelle ich in meinen vom Chip
gelandenen Hexfiles die stelle finde wo die Spungadresse in den
Bootloader steht. Wenn es owas überhaupt gibt.
3. Welche wichtigen Register sollte ich noch prüfen und auf was?
Vielen Dank für Eure Hilfe
Holger