Forum: Mikrocontroller und Digitale Elektronik MSP430 - Infomemory fuer Code nutzen


von szimmi (Gast)


Lesenswert?

Hiho,
wuerde beim MSP430F2012 gerne den Infomemory fuer den Code nutzen (IAR
EW430, V3.41). Lt. IAR Technical Note 39271 geht das angeblich auch.
Gesagt, getan, natuerlich geht nix. Hat jemand von Euch bereits
Erfahrungen hiermit gemacht? Beziehe mich wie gesagt auf den IAR,
Aussagen über andere Compiler/Linker nuetzen mir hier leider nix.
Vielen Dank

von Yagan Ζ. D. (yagan)


Lesenswert?

szimmi,

was geht denn nicht?
Du kannst im Linker-Config-File (z.B.lnk430F1232.xcl ) angeben, in
welchen Adressbereichen Code abgelegt werden soll.
Beispiel:
-Z(CODE)CODE=1000-10FF,E000-FFDF
nutzt auch den Infoflash-Bereich als Code-Segment.
Beim 'F169 kann man den Bereich sogar zusammenhängend nutzen:
-Z(CODE)CODE=1000-FFDF

Ciao, Yagan

von szimmi (Gast)


Lesenswert?

Genau das habe ich gemacht, aber aus irgendeinem Grunde legt er den Code
nur in den "normalen" Flash. Wird der Code geringfügig größer (kleine
Funktion), bringt der Linker die Fehlermeldung. Ich werde das mal mit
anderen Derivaten probieren, mit dem F1232 scheint es ja Deiner Aussage
nach zu funktionieren.

von Yagan Ζ. D. (yagan)


Lesenswert?

szimmi,

für den MSP430F2012 habe ich momentan keine Info über die
Speicherverteilung, aber es könnte sein, dass der Linker kein
ausreichend kleines "Häppchen" findet, das er in den Infoflash legen
kann. Hast Du einmal versucht Funktionen separat zu kompilieren, damit
mehrere kleine Module entstehen? Möglicherweise ist dann der Linker
erfolgreich. Eventuell passt auch der CSTART in den Infoflash.

Ciao, Yagan

von Yagan Ζ. D. (yagan)


Lesenswert?

Ich habe noch einmal in einem Projekt von mir nachgeschaut.
Bei unterbrochenen Adressbereichen sollte man angeben:
-Z(SPLIT-CODE)CODE=1000-10FF,E000-FFDF
Das SPLIT bewirkt, dass der Linker auch grössere Segmente aufbricht.
Ich nehme an, dass damit das Problem bei Dir beseitigt ist.

Ciao, Yagan

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.