Data Placement mit MSP430(Code Composer Studio v4)

Gast #2292156
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
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.
#2292788
Laut Manual für den TI Compiler (Code Generation Tools 3.3) gibts die 
pragma Anweisung für die Data Section auch da. Das hätte sicher auch 
geklappt. Aber die ganaue Speicherstelle ist dann vielleicht immer noch 
nicht exakt definiert. Wenn es so jetzt klappt, ist ja prima.
Gast #2295139
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
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

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.