Wir wäre es wenn Du nen Reset vom Watchdog machen läst, sollte fast das selbe sein wie ein Reset vom Reset-Taster.
Ansonsten ist es von den Fuse und Lockbits abhängig wo der Bootloader anfängt und wie groß er ist.
Hi!
Ihr kennt ja sicherlich die Anweisung "goto 0". Dadurch hat man eine Art Software-reset. Jetzt möchte ich aber nicht nur den µC resetten, sondern an den Anfang des Bootloaders springen. Es geht konkret um einen mega328p auf einem Arduino pro mini mit Original Bootloader.
Dadurch würde ich mir das Drücken des Reset-Buttons sparen, wenn ich mit avrdude ein neues Programm flashen will.
Hat jemand einen Tipp?
Andere Projekte nutzen z.B.
Goto $3c00
und
Goto &HF000
aber diese Adressen sind sicherlich nur für andere Booloader und andere Chips geeignet. Leider bin ich bei solchen tiefergehenden Sachen etwas wenig bewandert...
Viele Grüße, William
-> http://william.thielicke.org/
Wir wäre es wenn Du nen Reset vom Watchdog machen läst, sollte fast das selbe sein wie ein Reset vom Reset-Taster.
Ansonsten ist es von den Fuse und Lockbits abhängig wo der Bootloader anfängt und wie groß er ist.
Signatur??? kann ich mir nicht leisten!!!
Gute idee, ich gucke mal ob er dann wirklich zum Bootloader springt.Wir wäre es wenn Du nen Reset vom Watchdog machen läst, sollte fast das selbe sein wie ein Reset vom Reset-Taster
Und wie könnte ich das herausfinden...? Einen leeren µC (nur bootloader drauf) auslesen und da nach irgendeinem Muster suchen...?Ansonsten ist es von den Fuse und Lockbits abhängig wo der Bootloader anfängt und wie groß er ist
Viele Grüße, William
-> http://william.thielicke.org/
Du kannst einfach mal in die Fuse- und Lockbits schauen was da gesetzt ist...
Signatur??? kann ich mir nicht leisten!!!
Hi Willa,
vermutlich musst Du garnicht in den m328p schauen. In der entsprechenden Produktseite des arduino steht folgender Satz:
Daher werden die fuses entsprechend gesetzt sein.... The ATmega168 has 16 KB of flash memory for storing code (of which 2 KB is used for the bootloader). ...
Ciao sagt der JoeamBerg
Danke, das klingt alles sehr logisch :-D
Dann werde ich das mal ausprobieren heute Abend. 2KB sind welche größe "in Words"...? 1024...?
Viele Grüße, William
-> http://william.thielicke.org/
Hi Willa,
die Geschichte mit dem Resetbutton habe ich auch hinter mir:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=51079
Nun nutze ich den Bootloader von MCS, der bei Aufnahme zum brennen eine "123" schickt. Diese Anfrage erkenne ich und springen mit Goto &HF800 in den Bootbereich vom 644p. Aus dem Datenblatt habe ich aber leider nicht den richtige Bootloaderbereich herausfinden können. Ich habe den MCS-Bootloader auf meinen Chip gebrannt und über Bascom Brennoberfläche die Adresse herausgefunden.
Theoretisch musst Du im Datenblatt die Adresse herausfinden, die bei 2kB Bootloadergröße steht.
Gruß MAT
2kb sind 2048 byte
wenn man nen fertig programmierten chip mit loader bekommt ists am einfachsten man nimmt den entsprechenden programmieradapter (stk500, avrispmk2, parallelportprogrammer etc. ) und liest die sogenannten fuses aus. da steht dann konkret loadersize und starts at xxxx (z.b. im avr-studio).
Vor den Erfolg haben die Götter den Schweiß gesetzt
Hey, das funktioniert hervorragend...! Ein Klick in meiner GUI - einer Progressbar beim hochwandern zuschauen - und fertig ist die Programmübertragung!
Der Vollständigkeit halber nochmal die Bootloader Adressen für ein Arduino mit original Bootloader:
Mega168: Goto $1c00
Mega328p: Goto $3c00
Viele Grüße, William
-> http://william.thielicke.org/
Lesezeichen