As far as I know, there are 4 separate segments of Info-Flash in F2274. (D)
0x1000-0x103F, (C) 0x1040-0x107F, (B) 0x1080-0x10BF, and (A) 0x10C0-0x10FF.
These segments can be individually erased without altering other segments.
TI cannot make the DCO, ADC, etc. to have identical characteristics from chip to
chip. Thus they painstakingly calibrated every chip they produce one by one and
store the calibration constants in Info-Flash-Segment-A (0x10C0-0x10FF). Some
programs do not care about these calibration constants while some others may
depend on them to run correctly. But even when a program does not need them, I
do not see any reason to alter the TI factory calibration constants. There are
three other Info-Flash-Segments other than Segment-A that can be used freely.
--- In m..., "duemchen" wrote: >
> Thanks for your answer (on sunday!)
>
> On the cd is the wireless example with source and out.
> address 0x8000...
> But not the special info flash 0x1000... 0x10ff
>
> Now I have "killed" the second flash by writeing 0x1000..0x10f0 becuase in
this segment, you must erase the complete range 0x1000...0x10f0, if you will
store new data.
>
> I know then values. But i think, my write programm has a problem.
>
>
> flashIst = 0x10F0; (in the lnk_msp.cmd)
>
> extern char flashIst[15]; //0x10F0...0x10FF
>
> char flashConst[] ={
> 139,
> 68,
> 172,
> 76,
> 225,
> 255,
> 255,
> 255,
> 221,
> 142,
> 111,
> 142,
> 96,
> 141,
> 167
> };
>
> void bahnToFlash(){
> int i;
> char *Flash_ptrA;
> //char flashOrg[sizeof(flashIst)]; // merker f die alten werte
> // sichern
> for ( i= 0; i < sizeof(flashIst); i++) {
> //flashOrg[i]= flashIst[i];
> }
> // ganzes segment lchen
> Flash_ptrA = (char *)0x10C0;
> FCTL3 = FWKEY + LOCKA; // Clear LOCK & LOCKA bits
> FCTL1 = FWKEY + ERASE; // Set Erase bit, allow interrupts
eei
> *Flash_ptrA = 0; // Dummy write to erase Flash seg
A
> FCTL1 = FWKEY + WRT; // Set WRT bit for write
operation
> for ( i= 0; i < sizeof(flashIst); i++) {
> *Flash_ptrA++ = flashConst[i];
> }
> FCTL1 = FWKEY; // Clear WRT bit
> FCTL3 = FWKEY + LOCKA + LOCK; // Set LOCK & LOCKA bit
>
> }
>
>
> Thank you
> Wolfgang
>
>
>
>
>
> --- In m..., "old_cow_yellow" wrote:
> >
> > You should have both the source code and the compiled code. They should be
included in the CD of that eZ kit. TI website should have them too. Thus the
Main-Flash can easily be re-stored.
>
On the cd is the wireless example with source and out.
address 0x8000...
But not the special info flash 0x1000... 0x10ff
Now I have "killed" the second flash by writeing 0x1000..0x10f0 becuase in this
segment, you must erase the complete range 0x1000...0x10f0, if you will store
new data.
I know then values. But i think, my write programm has a problem.
flashIst = 0x10F0; (in the lnk_msp.cmd)
void bahnToFlash(){
int i;
char *Flash_ptrA;
//char flashOrg[sizeof(flashIst)]; // merker f die alten werte
// sichern
for ( i= 0; i < sizeof(flashIst); i++) {
//flashOrg[i]= flashIst[i];
}
// ganzes segment lchen
Flash_ptrA = (char *)0x10C0;
FCTL3 = FWKEY + LOCKA; // Clear LOCK & LOCKA bits
FCTL1 = FWKEY + ERASE; // Set Erase bit, allow interrupts
eei
*Flash_ptrA = 0; // Dummy write to erase Flash seg
A
FCTL1 = FWKEY + WRT; // Set WRT bit for write
operation
for ( i= 0; i < sizeof(flashIst); i++) {
*Flash_ptrA++ = flashConst[i];
}
FCTL1 = FWKEY; // Clear WRT bit
FCTL3 = FWKEY + LOCKA + LOCK; // Set LOCK & LOCKA bit
}
Thank you
Wolfgang
--- In m..., "old_cow_yellow" wrote: >
> You should have both the source code and the compiled code. They should be
included in the CD of that eZ kit. TI website should have them too. Thus the
Main-Flash can easily be re-stored.
Reply by old_cow_yellow●April 5, 20092009-04-05
You should have both the source code and the compiled code. They should be
included in the CD of that eZ kit. TI website should have them too. Thus the
Main-Flash can easily be re-stored.
But the Info-Flash contains calibration constants. Every chip is different!!! If
erased, you have to do the calibration yourself.
Mine looks like this (just for reference, do not copy it):
--- In m..., "duemchen" wrote: >
> ez430-rf
> I have overwrite my Flash (I think start from 0x10FF...)
> Now the serial communication of my program do not run.
> How can I reset to the original ?
>
Reply by duemchen●April 5, 20092009-04-05
ez430-rf
I have overwrite my Flash (I think start from 0x10FF...)
Now the serial communication of my program do not run.
How can I reset to the original ?