mikrocontroller.net

Forum: Compiler & IDEs MSPGCC - Datenauslagerung in den Flash Memory


Autor: Michael P. Jung (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ahoi,

ich bin gerade dabei mit meinem MSP430 mit 8kb Flash ein Programm zu
schreiben welches ueber einen ADC10 port daten liest und protokoliert.
Via dem UART interface soll dann das protokoll ausgelesen werden
koennen.

z.b. koennte ein NTC an A0 angeschlossen sein der alle 5 minuten
abgefragt wird und in den Flash via round robin verfahren die Messwerte
ablegt.

Mein Problem ist die Tatsache, dass ich keinen Anhaltspunkt habe wie
man einen Speicherbereich im Flash reserviert um darauf spaeter im
Programm zuzugreifen. Bei den "standard library functions" ist der
befehl MALLOC gelistet, der mir zwar sehr seltsam im Bezug auf µC ohne
jegliches Speichermanagement vorkommt, aber ich vermute mal, dass
malloc() irgend etwas damit zu tun hat.

Bye,

Michael

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der mspgcc legt alle "const"-Variablen im Flash an, beschreiben musst
du den Flash allerdings "von Hand", also wie in Assembler. Im
Mspgcc-CVS, in der Mailingliste oder bei den Appnotes von TI findest du
vielleicht auch schon ein Beispiel dafür.

Autor: Michael P. Jung (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Seltsam, ich lege ein "const char blah[256]" an und bekomme dennoch
die "is not within region data" Meldung vom Compiler/Linker. Zu gross
ist das File auch nicht, denn ohne blah ist das HEX file auch nur knapp
1kb gross.

In der MSPGCC FAQ habe ich eine aehnliche Frage gefunden, die mir aber
nicht wirklich weiter geholfen hat...
http://mspgcc.sourceforge.net/faq/x71.html

Wenn nichts hilft werd ich wohl doch wieder auf Assembler umsteigen und
C bleiben lassen, auch wenn ich da schleifen, algorythmen,... besser
erkennen kann!

Bye,
Michael

Autor: Christian Imann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm,
steh genau vor demselben doofen Problem.
nur kann ich leider -von wegen keine Ahnung wie - NICH auf Assembler
umsteigen.
wo find ich deshalb Angaben zu jenen ominösen Unterstrich-Kommandos
wie
"__inline__"
"__attribute" und so???


Beste Grüße
Christian

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.