Part Number:MSP430G2553
Tool/software: Code Composer Studio
Hi everybody,
I have the following code:
#include <msp430g2553.h> #define END_OF_FLASH 0x0FFFF void WriteToFlash(long* Flashptr, long val); void ReadFromFlash(long* address, long* val); int main(void) { WDTCTL = WDTPW + WDTHOLD; BCSCTL1 = CALBC1_1MHZ; // Set DCO to 1MHz DCOCTL = CALDCO_1MHZ; FCTL2 = FWKEY + FSSEL0 + FN1; WriteToFlash((long *) 0xFFF0, 1234567); long val; ReadFromFlash((long *) 0xFFF0, &val); return 0; } void WriteToFlash(long* address, long val) { long* flash_ptr; flash_ptr = address; // Initialize Flash pointer FCTL1 = FWKEY + ERASE; // Set Erase bit FCTL3 = FWKEY; // Clear Lock bit *flash_ptr = 0; FCTL1 = FWKEY + WRT; *flash_ptr = val; FCTL1 = FWKEY; // Clear WRT bit FCTL3 = FWKEY + LOCK; // Set LOCK bit } void ReadFromFlash(long* address, long* val) { long* flash_ptr; flash_ptr = address; *val = *flash_ptr; }
This insert 1234567 to the flash and i can read it this code works fine, but when i comment the WriteToFlash and try to run it again i expect to read the same value, but the value is wrong.
what am i missing?
thank you for your help