Du kannst selbstverständlich im Code einzelne Bereiche neu schreiben.
Dazu musst du jedoch den Embedded Flash-Controller (EFC) zu Hilfe
nehmen. Du brauchst einen Buffer in der Größe einer Page. Diesen Buffer
übergibst du an den EFC. Dann kannst du mit einem Read des EFC eine Page
in den Buffer zurücklesen, kannst an bestimmter Stelle deine Änderung
machen und dann den Buffer durch den EFC wieder schreiben lassen.
Wichtig, setze das Flag im EFC dass er die Page vor dem Schreiben selber
löschen soll, sonst musst du es selbst löschen, indem du dies zuvor
selbst auslöst.
Achtung!
Vorsicht ist geboten, beim programmieren einer internen Flashpage, da
der S256 nur ein phys. FlashMemory besitzt. Deshalb, sollte dein
Programmcode aus dem internen Flash laufen, musst du das Auslösen des
Pageprogrammieren des EFC und das Warten bis das programmieren beendet
ist, in einer RAM_Funktion ausführen, denn sonst programmiert der EFC ne
Flashpage und deine CPU macht den nächsten Code-Fetch ebenfalls aus dem
Flash --> Crash
Falls du mit IAR entwickelst, die haben dazu en Sample mit an Bord! :-)