Die Pointer....:-(
Ich möchte ins Flash schreiben (MSP430F2013) - ich habe da nur eine
Frage zum Quelltext aus dem Code-Examples:
1 | void write_SegC (char value)
|
2 | {
|
3 | char *Flash_ptr; // Flash pointer
|
4 | unsigned int i;
|
5 |
|
6 | Flash_ptr = (char *) 0x1040; // Initialize Flash pointer
|
7 | FCTL1 = FWKEY + ERASE; // Set Erase bit
|
8 | FCTL3 = FWKEY; // Clear Lock bit
|
9 | *Flash_ptr = 0; // Dummy write to erase Flash segment
|
10 |
|
11 | FCTL1 = FWKEY + WRT; // Set WRT bit for write operation
|
12 |
|
13 | for (i=0; i<64; i++)
|
14 | {
|
15 | *Flash_ptr++ = value; // Write value to flash
|
16 | }
|
17 |
|
18 | FCTL1 = FWKEY; // Clear WRT bit
|
19 | FCTL3 = FWKEY + LOCK; // Set LOCK bit
|
20 | }
|
Es geht um die Zeile
1 | Flash_ptr = (char *) 0x1040; // Initialize Flash pointer
|
Was genau bedeutet das? der Pointer ist ein char, bekommt aber eine
16Bit-Adresse.
Wieso ist das so?