Forum: Mikrocontroller und Digitale Elektronik MSP430 Flash vorintialisieren


von Ingo S. (msp430gast)


Lesenswert?

Hallo Leute,

folgende Probleme gilt es zu lösen.
1. Ich möchte gern den Flash ganz einfach vorinitialisieren, d.h. der 
Flash wird mit Daten bereits vorgeladen. Für den CCE V3 kann ich hierfür 
leider keine Informationen finden.
Beim µChip dsPIC30Fxxx ging das ganze unproblematisch, über absolute 
Adressierung konnte ich direkt im *.h den Flash vorinitialisieren.

2. Alternativ würde ich eine eigene Section im Info-Memory definieren in 
der ich meine Initialwerte ablegen möchte.

Kann mir zu den 2 Punkten jemand helfen?

MfG
MSPGast

von Christian R. (supachris)


Lesenswert?

Was bedeutet bei dir vorinitialisieren? Tabellen ablegen, auf die du 
dann zugrifen kannst? Oder ganze Sections dem Compiler wegnehmen und für 
deine Zwecke benutzen?
Tabellen gehen doch einfach über

const int Tabelle[2048] = {....};

das würde eine 2048 Worte große Tabelle im Flash anlegen. Allerdings an 
einer Stelle, die dem Compiler gerade passt.

Wenn du eine eigene Section haben willst, musst du eine neue im 
Linker-Command-Script definieren und die dann über die Tabelle genauso 
füllen, wobei du bei der Deklaration noch angeben musst, dass der 
Compiler das jetzt in die Section legen soll. Das geht auch mit dem CCE.
Ich hab das mal für Funktionen gemacht, für einen Funk-Loader:
Die Deklaration war folgende:

void FirmwareUpdate(void)__attribute__((section(".selfloader")));

Das sollte bei Konstanten genauso funktionieren.

Edit: Bei den Optionen einschalten, dass er GCC-Extensions verarbeitet. 
Dann funktioniert das mit dem attribute. Sonst muss man mit dem 
Pragma-Gefrickel arbeiten.

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.