Gast
#2813918
Hey Leute, ich hab mir wirklich Mühe gegeben selbst zu suchen, allerdings bin ich erfolglos geblieben. Daher nun die Frage an euch: Ich setze auf verschiedenen Controllern den stk500v2 Bootloader von Peter Fleury ein. Teilweise mit einigen Zusätzen, teilweise gestrippt, teilweise original. Das hat stehts gut geklappt. (danke Peter :D ) Jetzt ist mir ein ATmega328P unter gekommen, der dann auch den Bootloader bekommen sollte. Soweit alles angepasst, geflashed, connected => läuft. Ich erhalte alle Antworten und avrdude schreibt das Hex File komplett. Nur startete danach meine Applikation nicht. Hmm gewundert und mit meinem mkII den Controller ausgelesen: Alles "FF" bis auf den Bootloader. Gewundert. Etwas debug in den Bootloader geschmissen und festgestellt das alles korrekt ausgeführt wird, trotzdem bleibts beim "FF". Dann hab ich einfach mal stumpf zum testen ganz vorne direkt nach dem start der main() folgendes eingefügt: boot_page_erase(0); boot_spm_busy_wait(); unsigned int temp=(0x12)<<8 | 0x11; boot_page_fill(0,temp); boot_page_write(0); boot_spm_busy_wait(); boot_rww_enable(); Flash ausgelesen: Alles "FF". Dann hab ich an mir selbst gezweifelt, und meinen ATm2560 mit dem selben Startblock getestet: geht 1A, die ersten Bytes sind 0x12 und 0x11. Alles super. Nun also die Quizfrage: Warum wird der Schreibvorgang im ATm328 ausgeführt, aber es landet nix im Flash. Die LockBits sind nicht gesetzt, ich kann auch mit dem MKII den Bereich beschreiben und wieder auslesen, der Speicher ist also auch nicht defekt. Ich hab absolut keinen Schimmer woran es liegen kann. Habt ihr eine Idee? Laut Datenblatt des Atm328P unterstützt der 328 Bootloader, außerdem wird exakt der oben aufgeführte Code Block empfohlen. Ich bin total Ratlos. Gruß und vielen Dank Simon