Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: FAQ, wer hilft mit ? Kategorie: Verschiedenes (von AndrĂ© H. - 6.05.2003 14:39)
Als Antwort auf Re: FAQ, wer hilft mit ? von Klaus B. - 6.05.2003 13:25

Hallo Klaus,

So einfach ist es nicht.
Im einem Flash-Speicher(Flash-ROM) kann man keine Werte einfach ändern.
Der Speicher mu� dafür vorher gelöscht werden.
Auch das Schreiben neuer Werte geht nur, wenn der Bereich vorher einmal
gelöscht wurde. Löschen kann man den Flash jedoch nur Segmentweise.(1Seg.=64kB)
Au�erdem, und hier liegt die Schwierigkeit, darf der Code, der löschend und oder
schreibend auf den Flash zugreift sich nicht im Flash(egal, welches Seg.) befinden.
Der Code dafĂĽr wird immer aus dem internen RAM des Controllers ausgefĂĽhrt.
Beim Laden des OS wird z.B. erst ein Bootloader(boot.hex) in den int. RAM geladen,
bevor das OS galaden werden kann.
Beim Laden von Konstanten, VMC und HEX-Code(eigene Systeroutinen) wird vom OS
ebenfalls ein Programmcode (änhlich wie der Bootloader) in den internen RAM
des Controllers geladen und dieser dort ausgefĂĽhrt.
Für solche Routinen würden allerhöchstens  254 Byte internen RAM zur Verfügung stehen,
während ein Programm läuft.
Wer Lust (und viel Zeit) hat, kann gerne das OS-Listing durchstöbern.
(Die Hostmode-Routinen befinden sich ab 0x2276)
Es haben sich schon genug Leute daran die Zähne ausgebissen.
Es sollte nämlich mit ins Buch "MSR mit CC2". Aber auch B.Kainka hat sich
dabei die Zähne ausgebissen. Ich hatte mich zu dem Zeitpunkt, als ich zusammen
mit B.Kainka das Buch geschrieben habe, noch nicht viel mit ASM beschäftigt.

Darum ist das Speichern von ausfallsicheren Konfigurationsdaten in einem
externen Speicher viel leichter, gĂĽnstiger und weniger Nerven aufreibend. :-)
Hier bieten sich am besten immernoch serielle EEProm an.
Diese sind bis 512kBit(64kByte) erhältlich.

Jedoch wird der Punkt zum Thema Ausfallsicheres Speichern von Werten
natĂĽrlich mit in die FAQ kommen.

MfG André H.


> Hallo liebe Leute,
>
> zum Problem "Daten/Variablen dauerhaft speichern" und der Antwort "geht nicht" der Hinweis,
> dass das Betriebssystem doch bereits sowohl die Routinen zum Lesen von Konstanten enthält,
> als auch bei jeder VMC-Ă?bertragung das EEPROM-Konstantensegment beschrieben wird
> (allerdings wird hier offensichtlich stets ab Adresse 0 eine bestimmte Länge beschrieben).
>
> Warum also nicht eine kleine Routine schreiben, die gezielt Konstanten verändert, indem auf deren
> EEPROM-Adresse zugegriffen wird. Frage: geht das analog zum Lesen, oder spricht irgendetwas
> prinzipiell gegen ein Schreibzugriff auf das EEPROM zur Programmlaufzeit?
>
> Wäre toll, wenn jemand dieses Problem bereits gelöst hätte (?)
>
> GruĂ?,
> Klaus B.
>


Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten:

Re: FAQ, wer hilft mit ? (von Klaus B. - 7.05.2003 21:52)