Hallo,
ich habe mir im Linker-skript ein eigenes RAM-Segment erstellt:
.ram_const ADDR(.bss) + SIZEOF (.bss) : AT (ADDR (.ram_const))
{
PROVIDE(__ram_const_start = .);
*(.ram_const)
} > data
in dem ich ein paar Variablen ablege.
In der generierten hex-File sieht das dann so aus, dass diese als Extended Linear Address Record gespeichert sind:
....
:0200000400807A
:02014200020AAF
:00000001FF
Die Adresse wäre dann 0x00800142 (im RAM) und die Daten 02 0A...
Mein Frage ist nun, kann man das mit seinem eigenen Flash-bootloader "flashen"?
Was muß man da tun um diese Daten ebenfalls speichern zu können? Ich benutze einen atmega 88.
Über stk500 geht es ja auch, wenn man solche hex-Dateien flasht...Oder geht sowas nur wenn man über SPI flasht bei diesen controllern?
Grüße
Hallo,
die Daten sind im RAM!!!
Auch wenn du einen Bootloader findest, der dir die Daten rein schreibt. Nach dem nächsten Reset sind die wieder weg!
Typischer weise gibt es sowas wie "copy-tables". Dann werden die Daten im Flash abgelegt und im Startup ins RAM kopiert. Dann hast du die Daten aber in jedem Fall auch im Flash.
Gruß
Lesezeichen