| ??? 05/08/06 18:31 Read: times |
#115813 - I can't help you Responding to: ???'s previous message |
$include (C:\Keil\C51\ASM\C8051F350.INC)
I can't help you with a deviate, but a few things that apply to the derivatives may also apply to the deviates here is working code for a f12/f13x ////////////////////////////////////////////////////////////
//
//
// FUNCTION void EraseFlash (void)
//
// erase flash page
//
void EraseFlash (void)
{
U8 xdata * EFLpag = 0;
U8 EFLbnk = 0;
for ( EFLbnk = 2 ; EFLbnk != 4 ; EFLbnk++)
{
for (EFLpag = 0; EFLpag != 0x8000; EFLpag = EFLpag + 1024)
{
EraseFlashPage (EFLpag, EFLbnk);
}
}
}
////////////////////////////////////////////////////////////
//
//
// FUNCTION void EraseFlashPage (U8 xdata * EFLpage, U8 EFLbank)
//
// erase flash page
//
void EraseFlashPage (U8 xdata * EFLpage, U8 EFLbank)
{
U8 EFPintsav;
EFLpage += 0x8000;
EFPintsav = SG_IE;
SG_IE = 0;
SG_SFRPAGE = 0;
SG_PSBANK = (EFLbank << 4);
S0_FLSCL |= 0x01 ; // flash access
S0_PSCTL |= 0x02 ; // erase flash
S0_PSCTL |= 0x01 ; // erase flash
*EFLpage = 0xff ; //write a byte as page indicator
S0_PSCTL &= 0xfc ; // restore
S0_FLSCL &= 0xfe ; // restore
SG_PSBANK = 0x10 ;
SG_IE = EFPintsav;
} Erik |
| Topic | Author | Date |
| Silab - Erasing and writing to Flash Fro | 01/01/70 00:00 | |
| Posting Screenshot | 01/01/70 00:00 | |
| If you use interrupts? | 01/01/70 00:00 | |
| This is test software | 01/01/70 00:00 | |
| common courtesy require ... | 01/01/70 00:00 | |
| You are right here also Erik | 01/01/70 00:00 | |
| I can't help you | 01/01/70 00:00 | |
| Thanks Erik | 01/01/70 00:00 | |
| Any flash pages locked? | 01/01/70 00:00 | |
| Locked Page | 01/01/70 00:00 | |
| Section 15.3 of Data Sheet | 01/01/70 00:00 | |
| Key codes | 01/01/70 00:00 | |
| Not my choise | 01/01/70 00:00 | |
| Choices ... | 01/01/70 00:00 | |
| You are right Rob | 01/01/70 00:00 | |
| a General comment | 01/01/70 00:00 | |
| 131 & 133 | 01/01/70 00:00 | |
but remember | 01/01/70 00:00 |



