Data Placement mit MSP430(Code Composer Studio v4)

Gast #2292156
Lesenswert?
• ▲
▼
Ich möchte meine Variable unter dem Speicherplatz 0x1040 ablegen:

im Command File vom Code Composer steht:
f_temp=0x1040;

im Header steht dann:
extern const float f_temp;

im cpp:
const float f_temp=0.56;

Mein Problem ist wenn ich auf die Variable zugreife:

res=1.0-f_temp;
wird zwar auf den Speicherplatz verwiesen aber der Inhalt von 
f_temp=0xFFFF;

Laut Mapfile kommt es zu keinen Überschneidungen. Muss ich sonst noch 
was beachten?
Gast #2292612
Lesenswert?
• ▲
▼
Also ich habs laut USer Guide gemacht:
Im Command linker file hinzugefügt(wo auch die Speicherbereiche,etc,... 
schon vorgegeben sind):
f_temp=0x1040 und im Header mit extern ....

Mit pragma Anweisungen funktionierts nur mit dem IAR Compiler.
Gast #2295139
Lesenswert?
• ▲
▼
Jap! Der Wert kann nur durch ein externes Kommando verändert 
werden(Flashwrite(...),darum absolute Adresse) und muss auch bei 
Abschaltung beibehalten werden(wenn neuer Wert....). Ich hoffe es ist 
einigermaßen verständlich!
Persönliche Seite #2295383
Lesenswert?
• ▲
▼
Es wird wohl daran liegen, dass der Linker als "const" deklarierte 
Symbole grundsätzlich in

.const     : {} > FLASH              /* CONSTANT DATA 
*/

ablegt.

Deswegen steht in f_temp nichts drin.

Ich hab jetzt nicht das ganze Handbuch zu den Linkerscripts gelesen, 
aber man kann normalerweise auch sections definieren, die nur aus einem 
oder zwei Bytes bestehen. Ich denke, es ist eine Voraussetzung für die 
Initialisierung, dass es sich um eine section handelt.

Warum muss das denn überhaupt an fester Adresse leigen? Kann man nicht 
einfach per pragma das Ganze auf .infoD legen und dem Linker überlassen, 
wo es dort genau liegt? Die Updatefunktion zum Überschreiben kann ja die 
Adresse davon aufgelöst bekommen (&f_temp).

Wie sieht denn das Mapfile aus?

Grüße,

Peter

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.