Gast
#4063352
Hi, auf meinem Mega16, an den ich bei diesem Projekt gebunden bin, ist der EEPROM voll, ich bräuchte aber noch Platz für 128 Byte zusätzliche Daten. Nun habe ich mir folgendes überlegt: Da ich sowieso einen Bootloader habe, könnte ich bin Bootloader Bereich eine Funktion installieren, welche einen Pointer auf einen Bereich im Ram als Argument nimmt und dann 128 Byte an eine definierte Adresse in den Flash schreibt. Die Vorgensweise wäre also folgende: Im Hauptprogramm: -Ram beschreiben mit Daten -Jump zu funktion im Bootloader mit (((void(*)(void))0x3F00)(&data)); //0x3F00 ist Adresse der Funktion im Bootloader Im Bootloader: - Löscht Page(s) - Beschreibt sie aus Ram - Springt zurück ins Hauptprogramm Im Hauptprogramm kann man dann auf die Daten zugreifen, da die Adresse im Flash bekannt ist.. Bevor ich mich jetzt stundenlang da dran setzte: Ist das machbar, oder habe ich einen Denkfehler? Habt ihr Ideen für konkrete Ansätze? Danke PS.: Nein ich kann keinen Prozessor mit größerem EEPROM nehmen, ich bin an die Hardware gebunden.