Hallo Leute, ich hab ein Problem meinen bootloader von atmega640 auf atmega1280 umzustellen. Umstellung ist notwendig, weil das Programm mehr als 64kbyte flash benötigen wird. Soweit so gut, alle pgm_read_byte durch pgm_read_byte_far ersetzt, in beim compiler den typ geändert, dadurch wird aus jedem write ein write_extended. Es sieht auch alles sehr gut aus, wenn ich einfach mal probeweise zusätzlich zu meinem Programm ein bestimmtes muster nach 0x1c000 flashe, ist es bei einem readout auch an dieser Stelle. Allerdings funktioniert mein Programm nicht mehr, sobald ich etwas an 0x1c000 (oder auch) 0x1a000 flashe... Scheint so, als ob zusätzlich noch etwas kaputt geschrieben wird. Das Programm an sich hat im moment erst 40k, also noch lange von den 64k entfernt. Gibt es da noch irgendetwas zu beachten oder hatte jemand schonmal so ein Problem?
wenn der bootoader aufgespielt wird, wird der Rest gelöscht. Ich nehme an du flashst dann auch nur mit dem Bootloader. Der Bootloader muss dann aber auch die Pages korrekt adressieren, sonst werden die Daten verstümmelt.
Tommy schrieb: > Gibt es da noch irgendetwas zu beachten http://www.nongnu.org/avr-libc/user-manual/group__avr__pgmspace.html Lies dir unter Detailed Description mal die 1. Note durch. mfg.
Anbei ein paar Commits welche im Wesentlichen fuer die Umstellung von USBaspLoader auf MCUs mit mehr als 64KiB notwendig waren: https://github.com/baerwolf/USBaspLoader/commit/af57c1bbd277f15b633e77e430ce6240ba62746a https://github.com/baerwolf/USBaspLoader/commit/293a05a85c5a7e6d0eb5331af75cb775f1824347 https://github.com/baerwolf/USBaspLoader/commit/17a4e6e3c2cd19fed08d94f9949140494056484f und bei sogar mehr als 128Kib: https://github.com/baerwolf/USBaspLoader/commit/6c347ffa2ceef6cd7a9009d4c544e788d31a24e8 https://github.com/baerwolf/USBaspLoader/commit/96ad347f6a816a3520dea91ace4629ea29d2e08f MfG Stephan
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.