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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.