www.mikrocontroller.net

Forum: Compiler & IDEs SRAM String in eine Flashvariable schreiben


Autor: Harald Nonbert (avranfaenger)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Tobi (Gast)
Datum:

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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Harald Nonbert (avranfaenger)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: OliverSo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.