Hi, ich versuche mich gerade an dem Tutorial: [[http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung]] Als Controlller verwende ich ebenfalls den ATMega88 mit dem AVR Studio + GCC. Das Problem scheinen irgendwie die Interruptvektoren zu sein. Wenn ich die wie im Programm angegeben verbiege, läuft das Programm gar nicht erst los. Lasse die diese raus, läuft das Programm und auch die UART Übertragung funktioniert. Jedoch klappt dann das schreiben ins Flash nicht. Weiß jemand Rat?
Ja. Lass die Interrupts im Bootloader weg. Die machen alles kompliziterter.
O.. oha Jetzt ! schrieb: > a. Lass die Interrupts im Bootloader weg. Die machen alles > > kompliziterter. Das ist ja nun keine Lösung. Tim schrieb: > Das Problem scheinen irgendwie die Interruptvektoren zu sein. Bitte etwas genauer. Welche Adresse? Fuses? Code? mfg.
Thomas Eckmann schrieb: >> a. Lass die Interrupts im Bootloader weg. Die machen alles >> >> kompliziterter. > > Das ist ja nun keine Lösung Doch das ist eine ausgesprochen gute Lösung für ein Bootloader (nur halt nicht für sein Problem ;) ). Einfach, weil der Bootloader einfach gestrickt ist. Auf Daten warten, CRC-check, entschlüsseln, in den Flash/EEPROM schreiben, auf Daten warten, usw. bis irgendwann mal kommt "und jetzt bitte ein Reset!". Da braucht man einfach keine Interrupts. Tim schrieb: > Das Problem scheinen irgendwie die Interruptvektoren zu sein. Wenn ich > die wie im Programm angegeben verbiege, läuft das Programm gar nicht > erst los. Lasse die diese raus, läuft das Programm und auch die UART > Übertragung funktioniert. Jedoch klappt dann das schreiben ins Flash > nicht. Könnte es sein, dass du den Bootloader nicht in den Bootloader-Bereich programmiert hast? Lies mal den Flash wieder aus und schau ob am Anfang der Hex viele 0xFF sind. Wenn nicht, dann hast du Schritt 1 im Tutorial nicht befolgt ;). lg Mobius
Laszlo H. schrieb: > Könnte es sein, dass du den Bootloader nicht in den Bootloader-Bereich > > programmiert hast? Lies mal den Flash wieder aus und schau ob am Anfang > > der Hex viele 0xFF sind. Wenn nicht, dann hast du Schritt 1 im Tutorial > > nicht befolgt ;). Dazu zählt man keine 0xff, sondern guckt ins .lss-File. mfg.
.lss, also vor dem Linken? Kaum. Wenn schon, dann ins .map.
Hc Zimmerer schrieb: > .lss, also vor dem Linken? Kaum. Wenn schon, dann ins .map. Aber sicher du Schlaumeier.
Thomas Eckmann schrieb: > Aber sicher du Schlaumeier. Ja, ich habe mir erlaubt, Deinen Fehler zu korrigieren. Das ist Dir offensichtlich nicht recht. Also musstest Du Dir mit obigem Satz Erleichterung verschaffen. Eine Methode für Dich, das zu vermeiden, wäre, unfehlbar zu werden. In der gesamten Menschheit findet sich meines Wissens aber bisher nur einer, der das für sich in Anspruch nimmt. Oder aber Du findest Dich einfach damit ab, dass Irren menschlich ist und dass Fehler korrigiert werden können. Das wäre dann deutlich konsensfähiger. Oder kürzer: Friede, bitte ;). Ich hatte wirklich nur die Korrektur einer technischen Fehlaussage im Auge (mit Begründung: .lss beinhaltet nicht, was der Linker macht) und nicht vor, Dich an die Decke zu treiben.
Hc Zimmerer schrieb: > Oder kürzer: Friede, bitte ;). Ich hatte wirklich nur die Korrektur > > einer technischen Fehlaussage im Auge (mit Begründung: .lss beinhaltet > > nicht, was der Linker macht) und nicht vor, Dich an die Decke zu > > treiben. Und wenn du noch so borniert daher kommst: Meine Aussage ist kein Fehler. Wenn du diesem File die Informationen nicht entnehmen kannst, ist das dein Problem. Ich kann es! mfg.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.