| Example |
/* Embedded Flash Device Driver Control Block */
EFS_DRV fl0_drv = {
Init,
UnInit,
ReadData,
ProgramPage,
EraseSector,
EraseChip
};
/* Program Page in Flash Memory. */
static BOOL ProgramPage (U32 adr, U32 sz, U8 *buf) {
for ( ; sz; sz -= 2, adr += 2, buf += 2) {
M16(base_adr | 0xAAA) = 0xAA;
M16(base_adr | 0x554) = 0x55;
M16(base_adr | 0xAAA) = PROGRAM;
M16(adr) = *(__packed U16 *)buf; /* 'buf' might be unaligned. */
if (Q6Polling (adr) == __FALSE) { /* Wait until Programming completed */
return (__FALSE);
}
}
return (__TRUE);
}
|