Forum: Compiler & IDEs SRAM String in eine Flashvariable schreiben


von Harald N. (avranfaenger)


Lesenswert?

Hallo Zusammen,
habe folgendes Problem (bei einem ATMEGA128) das ich einen Datumsstring 
(char timestemp[14]) in eine bereits vorgegebene  int8 flash 
_FF_FNAME[14] Variable schreiben soll. Alle mir gängigen Befehle 
snprintf,strcpyf memcpyf usw. funktionieren aber nicht weil sie für die 
andere Kopierrichtung vorgesehen sind. Hat jemand eine Idee wie ich den 
timestemp doch in die globale Flashvariabble bekomme.

Zweitens bekomme ich stets Probleme mit der Hardware Stack Size weil ich 
doch einige globale Variablen verwenden muss (geht aber nicht anders 
weil dies Parameter für einen Regler sind). Muss ich die in unions 
verpacken um Speichergröße zu lukrieren?

Danke für Eure Hilfe bzw. Ideen
ach ja das Forum habe ich zuvor natürlich abgesucht aber leider nichts 
passendes gefunden

von Tobi (Gast)


Lesenswert?

Das kopieren vom RAM ins Flash ist nicht so einfach möglich.
--> Bootloader

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Mir dünkt, du bist im GCC-Forum außerdem falsch.  Weder der ATmega128
noch der AVR-GCC kennen etwas wie eine “hardware stack size”.  Damit
wirst du hier aber kaum die richtigen Ansprechpartner finden, die dir
da weiterhelfen können (und in einem anderen Forum sicher auch nur,
wenn du nicht auf die Kristallkugel des Lesers hoffst, sondern die
verwendete Entwicklungsumgebung mit beschreibst).

von Harald N. (avranfaenger)


Lesenswert?

Hi sorry

ich entwickle mit codevision für den ATMEGA128. Das mit dem 
Hardwarestack konnte ich durch das Schrumpfen meiner globalen Variablen 
erreichen ist zwar keine schöne Lösung aber besser als nichts

von OliverSo (Gast)


Lesenswert?

Daten ins Flash schreiben geht mit keiner der üblichen Funktionen aus 
den C-Standardlibs. Der avr hat dafür spezielle Assemblerbefehle, die 
sowas erlauben. Die Suchfunktion hier im Forum fördert mit Sicherheit 
einige Beiträge hervor, wie das mit dem gcc zu lösen ist. Das hilft dir 
aber bei deinem codevision-Compiler nicht wirklich weiter.

Die Hilfe bzw. Doku zu codevision sollte aber genaueres darüber wissen, 
wie der Zugriff dort implementiert ist.

Oliver

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.