Forum: Mikrocontroller und Digitale Elektronik Code Composer Linker Option -> Funktion verschieben


von -newbie- (Gast)


Lesenswert?

Hi, möchte mehrere Funktionen in einem bestimmten Block des 
Flashspeichers ablegen und auch dort ausführen lassen. Wie erkläre ich 
das meiner Entwicklungsumgebung (Compiler / linker)? Gibt es da ein 
#pragma? Was benötige ich für eine Linkeroption und wie stelle ich die 
ein? Verwende den Code Composer Essentials. Bin für jede Hlfe dankbar!

von Christian R. (supachris)


Lesenswert?

Ich nehme an Code Composer Essentials für MSP430.

Du musst im Linker File eine neue Code Section anlegen. Dazu den 
Speicherplatz von der .text Section abziehen. Dann kannst du mit pragma 
code_section deine Funktion da hin schieben. Steht doch alles im User 
Guide des Compilers (SLAU132) auf Seite 87 (5.9.4) und der Aufbau der 
Linker Files ist in 4.3.8 beschrieben (Seite 74).

von -newbie- (Gast)


Lesenswert?

Danke, hab' da erst mal was zu lesen. Eine Frage aber hab' ich noch: Muß 
ich die standardmäßige Code-Section irgendwie verkleinern oder genügt es 
eine zusätzliche Code-Section ZU definiereN und dieser dann den 
gewünschten Speicherplatz zuzuweisen? Kann ich eigentlich auch mehrere 
Funktionen in eine neue Code-Section stecken? In dem User Guide sieht es 
so aus, als ob ich für jede Funktion eine eigene, neue Code-Section 
definieren muß...

von Christian R. (supachris)


Lesenswert?

Du musst den benötigten Speicherplatz (auf die Flash Sektorengröße 
aufpassen) natürlich von der normalen .text Section abziehen. Sonst 
gibts ein Overlap. Und du kannst da so viele Funktionen reinpacken wie 
du möchtest, einfach für jede Funktion die gleiche Section angeben. Der 
Linker kümmert sich dann schon.

von -newbie- (Gast)


Lesenswert?

Vielen Dank! Klinkt eigentlich logisch, dass amn erst mal speicher frei 
räumen muss. Werd' das dieses WE gleich mal ausprobieren.

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.