EEPROM Zugriffe aus Bootloader und Hauptprogramm

Gast #3805963
Lesenswert?

Nur so ne blöde Idee:

Speichere deinen Variablennamen und deren Wert als Text im EEPROM.

"Var1=1234\n"

Danach können Bootloader und Applikation dann suchen und
entprechend den Wert extrahieren oder ändern.
OP #3806004
Lesenswert?

jz schrieb:
> Ist das dein Ernst? ^^
> Irgendwie lassen sich alle Daten, die du irgendwo nutzt, auf
> "Binärdaten" zurückführen. Wie soll der PC damit auch sonst was
> anfangen...

Trotzdem ist es nicht Sinnvoll Daten als "Klartext" in den Eeprom zu 
schreiben. Was ich zum Ausdruck bringen wollte ist, dass das 
Terminierungszeichen wegfällt. Auf die Effizienz gehe ich erst gar nicht 
ein ^^
Gast #3806014
Lesenswert?

>Trotzdem ist es nicht Sinnvoll Daten als "Klartext" in den Eeprom zu
>schreiben. Was ich zum Ausdruck bringen wollte ist, dass das
>Terminierungszeichen wegfällt. Auf die Effizienz gehe ich erst gar nicht
>ein ^^

Nur weil es dir nicht gefällt ist es nicht sinnlos.
Es ist ein gangbarer Weg der viel flexibler ist als
deine Sections. Von Effizienz war nicht die Rede.
Also beschwer dich nicht;)
(Firma: Vescomp) #3806026
Lesenswert?

Manuel H. schrieb:
> Wie sind Eeprom Zugriffe sowohl vom Bootloader als auch vom
> Hauptprogramm auf eine Variable am Besten zu realisieren?

 Und wenn du nicht mit Array arbeiten willst...
 Variablen werden so ins Eeprom geschrieben, wie sie deklariert
 werden.
 Wenn Bootloader und Hauptprogramm zusammen kompiliert werden:
   Eine Deklaration genügt.
 Wenn Bootloader und Hauptprogramm getrennt kompiliert werden:
   Deklaration copy & paste.
#3806051
Lesenswert?

Vorschlag: TLV: Tag-Length-Value
Tag: uint32 bzw 4 Byte Parametername, zB als FOURCC, zB 'Vers'
siehe auch http://www.fourcc.org
1
#define MAKEFOURCC(ch0, ch1, ch2, ch3)  \ 
2
    ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) |  \ 
3
    ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ));
4

5
ulTag=MAKEFOURCC('V','e','r','s');

Length: uint32 Länge des nachfolgenden Datenbereiches in Bytes

Value: binäre Daten, auf eine durch 4 teilbare Länge aufgefüllt

Danach kommt das nächste TLV-Tupel.

Endeerkennung: entweder enthält das erste TLV-Tupel die restlichen TLVs 
als Value, dann steht in dessen Length-Feld die Datenlänge (so macht es 
das WAV oder RIFF oder IFF-Dateiformat)
oder das letzte TLV-Tupel enthält eine Länge von 0 Bytes

Dieses Schema wird öfters verwendet.

fchk

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren