I really want to find an Application Note or a sample about how to write into the flash .
I use MSP430F436
Could you help me, please?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
We have several references on the topic:
Chapter 6 of our user's guide is the best place to start: http://focus.ti.com/lit/ug/slau056g/slau056g.pdf
This app note should also be helpful: A Flash Monitor for the MSP430: http://focus.ti.com/mcu/docs/mcusupporttechdocsc.tsp?sectionId=96&tabId=1502&abstractName=slaa341
We also have many code examples at www.MSP430.com under the Code Examples tab, which also have simple illustrations on how to write to the flash. For a good example see the flashwrite_01.c example in this zip file: http://www.ti.com/lit/zip/slac015
We also have many flash app notes at the following link: http://focus.ti.com/mcu/docs/mcuprodtechdoc.tsp?sectionId=95&tabId=1202&familyId=342&techDoc=1&documentCategoryId=1
I was having a look at the code fet140_flashwrite_01.c and I would like to ask if that code can be used
to program the flash for a msp430g2331 (the one used in the Launchpad) by changing the Flash_ptrA and ptrB to the info memory segment B,C,D (A contains the DCO calibration data).
So for instance:
Flash_ptrA = (char *) 0x010FF; // Initialize Flash segment A pointer but never touch this!
Flash_ptrB = (char *) 0x10BF; // Initialize Flash segment B pointer
Flash_ptrC = (char *) 0x107F; // Initialize Flash segment C pointer
Flash_ptrD = (char *) 0x103F; // Initialize Flash segment D pointer
because each memory block in info memory is 64 bytes.
Am I correct?
That's plain C language.Arokia Dinesh said:How u r giving the address as 0x103F like you are given in the above example
Flash_ptrD is a pointer to a char (Id' suggest unsigned char, but well...)
unsigned char * FlashPtrData = (unsigned char *) 0xYYYY;
Now FlashPtrData is the byte at 0xYYYY, FlashPtrData is the byte at 0xYYYY+1 etc.
Or did you want to know why? Because the pointers then point to the last byte of each info segment. It could as well have been the first byte at 0x1000/0x1040 etc. instead.