MSP430 Flash vorintialisieren

OP #1217255
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
#1217297
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren