Hi,

in the examples from the CVS server you can find several examples e. g. by 
searching
for "FWKEY". 

Regards,

Rolf

[email protected] schrieb am 18.07.05 15:58:13:
> 
> Hi!
>    We are trying to write to info-mem. But our program
> hangs while erasing sector. Can anyone help?
> Best Regards,
> Rajat.
> 
> 
> 
> Source code:
> 
> #include<msp430x14x.h>
> #include<math.h>
> #include<signal.h>
> 
> unsigned char *ucptrSeg1_Address;
> unsigned char *ucptrSeg2_Address;
> unsigned char ucFIndex;
> 
> void vfnWriteData2Flash(unsigned char
> *ucptrFlashAddress,
>                                               unsigned char *ucptrData,
>                                               unsigned char ucNoOfBytes);
> 
> volatile unsigned int __attribute__ ((section
> (".infomem"))) 
> Iarray[20]; 
> volatile unsigned char __attribute__ ((section
> (".infomem")))
> Carray[20];
> 
> int main(void)
> {
>       int num=1;
> 
>       vfnWriteData2Flash((unsigned char*)Iarray,(unsigned
> char *)&num, (char)sizeof(num));
>       
>       while(1);
> 
>       return(0);
> }
> 
> 
> void vfnWriteData2Flash(unsigned char
> *ucptrFlashAddress,
>                                               unsigned char *ucptrData,
>                                               unsigned char ucNoOfBytes)
> {
>         
>         dint();  
>       
>       FCTL2 = FWKEY + FSSEL_1 + FN2 + FN4;  // MCLK IS
> SELECTED  
>       if(FCTL3 & LOCK)                 
>         FCTL3 = FWKEY + (FCTL3 & 0x00ef);   // make
> Lock = 0,if it is set
>       while(FCTL3 & BUSY);          // wait till BUSY
> = 0
>     
>       // erase SegB
>       FCTL1 = FWKEY + ERASE;          // SET Erase bit
>       *(unsigned char*)0x1000 = 0x00;
>       while(FCTL3 & BUSY);          // wait till BUSY
> = 0
>         
>       // Move all the data in Data segA to Backup segB
>       FCTL1 = FWKEY + WRT;          // SET BLKWRT bit
>     
>       ucptrSeg1_Address = (unsigned char *)0x1080;    
> 
>       ucptrSeg2_Address = (unsigned char *)0x1000;
>     
>       for(ucFIndex=0;ucFIndex < 128;ucFIndex++)       
> 
>         *(ucptrSeg2_Address++) =
> *(ucptrSeg1_Address++);    
> 
>       FCTL1 = FWKEY;    
>       while(FCTL3 & BUSY);          // wait till Write
> operation is going on
> 
>       // erase SegA
>       FCTL1 = FWKEY + ERASE;          // SET Erase bit
>       *(unsigned char*)0x1080 = 0x00;
>       while(FCTL3 & BUSY);          // wait till BUSY
> = 0
>     
>       // move back all the data from SegB from SegA
> and change the data 
>       FCTL1 = FWKEY + WRT;          // SET BLKWRT bit
>     
>       ucptrSeg1_Address = (unsigned char *)0x1080;    
> 
>       ucptrSeg2_Address = (unsigned char *)0x1000;
>     
>       for(ucFIndex=0;ucFIndex < 128;ucFIndex++)
>       {
>        if(ucptrSeg1_Address == ucptrFlashAddress)
>         {
>           ucNoOfBytes += ucFIndex;
>           while(ucFIndex < ucNoOfBytes) 
>          { 
>           *(ucptrSeg1_Address++) = *(ucptrData++);
>           ucFIndex++;
>           ucptrSeg2_Address++;
>          }
>          ucFIndex--;
>         }
>        else
>          *(ucptrSeg1_Address++) =
> *(ucptrSeg2_Address++);   
>       }
> 
>       FCTL1 = FWKEY;    
>       while(FCTL3 & BUSY);          // wait till Write
> operation is going on
>       FCTL3 = FWKEY + LOCK;         // make Lock = 1,
> avoiding erase or write 
> 
>       eint();  
> }
> 
> 
>               
> __________________________________________________________
> How much free photo storage do you get? Store your friends 'n family snaps 
> for FREE with Yahoo! Photos http://in.photos.yahoo.com
> 
> 
> -------------------------------------------------------
> SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
> from IBM. Find simple to follow Roadmaps, straightforward articles,
> informative Webcasts and more! Get everything you need to get up to
> speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
> _______________________________________________
> Mspgcc-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mspgcc-users



Reply via email to