Hallo,
das Array
static const unsigned char OELSTAND[2048];
im MSP430FR2355 wird in der Entwicklungsphase (CCSV10) beim Laden des Programms mit NULL überschrieben.
Weiß jemand, wie man das abschalten kann?
VG Walter
|
Anzeige
|
MSP430FR2355
Gast
#7371153
Hallo, das Array static const unsigned char OELSTAND[2048]; im MSP430FR2355 wird in der Entwicklungsphase (CCSV10) beim Laden des Programms mit NULL überschrieben. Weiß jemand, wie man das abschalten kann? VG Walter "...static storage duration. The storage duration is the entire execution of the program, and the value stored in the object initialized only once, prior to main function..." "...If a static or thread-local (since C++11) variable is constant-initialized (see below), constant initialization is performed instead of zero initialization before all other initializations..."
Du solltest dir eventuell mal überlegen für was du diesen Schlüsselwortsalat genau drin haben willst und was du eigentlich erreichen willst...
Gast
#7371440
Ich will erreichen, dass der definierte FRAM-Bereich (z.B. 0x8000 bis 0x8800) beim Laden des Programmes durch den CCSV10 nicht überschrieben wird. Der FRAM-Bereich von 0x1800 bis 0x1A00 bleibt beim Laden des Programmes durch den CCSV10 erhalten.
Gast
#7371483
@Clemens Heißer Tipp. Danke. Ich tausche in #pragma PERSISTENT(var) unsigned long var=0; SYSCFG0 = FRWPPW | DFWP; // Program FRAM write enable var++; // Increment the variable (aka, treat it like any other variable) SYSCFG0 = FRWPPW | PFWP | DFWP; das unsigned long var=0; mal in unsigned char OELSTAND[2048]; aus..... Schaun wir mal.
Gast
#7371519
Es wird weiterhin überschrieben.... Es fkt also nicht. Es muss noch etwas im .cmd-File geändert werden. Was, ist mir noch nicht klar.
Gast
#7371611
Das Fenster Step 2: Change Erase Options in https://community.element14.com/members-area/personalblogs/b/blog/posts/msp430fr2633-saving-fram-when-uploading-code finde ich nicht im CCSV10 , gibt es nicht. #pragma NOINIT legt mir die var immer nach 0x2000, da ist das RAM ... auch wenn ich den cmd ändere.
Gast
#7372241
Hallo, nun funktioniert es. Die Lösung: Im C-Programm #pragma NOINIT(OIL_Level) volatile unsigned char OIL_Level[2048]; einfügen im Linker.cmd zeile 139 .TI.noinit : {} > RAM in .TI.noinit : {} > FRAM ändern in "Project->Properties->Debug->MSP430 Flash->Erase Options" Schalter "Replace written ...." on. Herzlichen Dank für die Hilfe. Mit freundlichen Güßen Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|