Für das beschleunigte schreiben ins Flash vom MSP430 wollte ich die
Schreib-Funktion ins RAM laden. Das hat soweit auch geklappt, nur gibt
mir der Compiler (IAR 3.21) noch eine Warnung aus:
"Warning[w29]: Parts of segment MYDATA are initialized (as in module
infomem), even though it is of type DATA (and thus not promable) "
C-Code:
1 | void flash_mem_write_RAM(unsigned int add, unsigned int cnt, unsigned char *data) @ "MYDATA"
|
2 | {
|
3 | unsigned char *pointer;
|
4 | unsigned int i;
|
5 |
|
6 | pointer = (unsigned char*)add; // Flash Pointer setzen
|
7 |
|
8 | while (FCTL3 & BUSY); // Warten bis Busy 0
|
9 | FCTL3 = FWKEY; // Clear Lock
|
10 | FCTL1 = FWKEY + WRT + BLKWRT; // Schreibmodus und Blockschreiben an
|
11 |
|
12 | for (i = 0; i < cnt; i++)
|
13 | {
|
14 | *pointer++ = data[i];
|
15 | while (!(FCTL3 & WAIT)); // Warten bis Wait 1
|
16 | }
|
17 |
|
18 | FCTL1 = FWKEY; // Schreibmodus aus
|
19 | while (FCTL3 & BUSY); // Warten bis Busy 0
|
20 | FCTL3 = FWKEY + LOCK; // Set Lock
|
21 | }
|
Unter Options -> Linker -> Extra Options hab ich folgendes eingetragen:
-Z(DATA)MYDATA=0200-03FF
Weiss einer was da noch falsch ist?