45 FMC->ISPCTL &= ~FMC_ISPCTL_BS_Msk;
56 FMC->ISPCTL &= ~FMC_ISPCTL_ISPEN_Msk;
69 FMC->ISPCTL &= ~FMC_ISPCTL_APUEN_Msk;
82 FMC->ISPCTL &= ~FMC_ISPCTL_CFGUEN_Msk;
95 FMC->ISPCTL &= ~FMC_ISPCTL_LDUEN_Msk;
189 FMC->ISPADDR = u32Addr;
195 while ((tout-- > 0) && (
FMC->ISPTRG)) {}
216 FMC->ISPADDR = (u8Index << 2);
255 if (
FMC->ISPDAT != 0xDA)
308 FMC->ISPADDR = (0x04 * u32Index) + 0x10;
341 FMC->ISPADDR = u32Addr;
342 FMC->ISPDAT = u32Data;
347 while ((tout-- > 0) && (
FMC->ISPTRG)) {}
377int32_t
FMC_Write8(uint32_t u32Addr, uint32_t u32Data0, uint32_t u32Data1)
382 FMC->ISPADDR = u32Addr;
383 FMC->MPDAT0 = u32Data0;
384 FMC->MPDAT1 = u32Data1;
389 while ((tout-- > 0) && (
FMC->ISPTRG)) {}
421 volatile uint32_t *pu32IspData;
427 FMC->ISPADDR = u32Addr;
431 FMC->MPDAT0 = pu32Buf[idx + 0];
432 FMC->MPDAT1 = pu32Buf[idx + 1];
433 FMC->MPDAT2 = pu32Buf[idx + 2];
434 FMC->MPDAT3 = pu32Buf[idx + 3];
437 pu32IspData = &
FMC->MPDAT0;
440 for(i = idx; i < 256 / 4; i += 4)
449 FMC->ISPADDR =
FMC->MPADDR & (~0xful);
450 idx = (
FMC->ISPADDR - u32Addr) / 4;
465 pu32IspData[0] = pu32Buf[i];
466 pu32IspData[1] = pu32Buf[i + 1];
472 FMC->ISPADDR =
FMC->MPADDR & (~0xful);
473 idx = (
FMC->ISPADDR - u32Addr) / 4;
487 pu32IspData[2] = pu32Buf[i + 2];
488 pu32IspData[3] = pu32Buf[i + 3];
522 FMC->ISPADDR = u32Addr;
527 while ((tout-- > 0) && (
FMC->ISPTRG)) {}
558 for(i = 0; i < u32Count; i++)
581 for(i = 0; i < u32Count; i++)
608 FMC->ISPADDR = u32Addr;
609 FMC->ISPDAT = i32Size;
653 FMC->FTCTL &= ~FMC_FTCTL_FOM_Msk;
666 FMC->FTCTL &= ~FMC_FTCTL_FOM_Msk;
#define FMC_ISPSTS_ISPBUSY_Msk
#define FMC_ISPCTL_ISPFF_Msk
#define FMC_ISPSTS_ISPFF_Msk
#define FMC_ISPCTL_BS_Msk
#define FMC_ISPCTL_APUEN_Msk
#define FMC_ISPCTL_CFGUEN_Msk
#define FMC_FTCTL_FOM_Pos
#define FMC_ISPCTL_ISPEN_Msk
#define FMC_ISPTRG_ISPGO_Msk
#define FMC_MPSTS_MPBUSY_Msk
#define FMC_ISPCTL_LDUEN_Msk
#define FMC_TIMEOUT_ERASE
#define FMC_ISPCMD_PROGRAM
#define FMC_ISPCMD_WRITE_8
#define FMC_ISPCMD_CAL_CHECKSUM
#define FMC_ISPCMD_READ_DID
#define FMC_ISPCMD_CHECKSUM
#define FMC_TIMEOUT_CHKSUM
#define FMC_ISPCMD_READ_CID
#define FMC_ISPCMD_MULTI_PROG
#define FMC_TIMEOUT_WRITE
#define FMC_ISPCMD_READ_UID
#define FMC_ISPCMD_PAGE_ERASE
void FMC_DisableLDUpdate(void)
Disable LDROM update function.
void FMC_Close(void)
Disable ISP Functions.
int32_t FMC_Write256(uint32_t u32Addr, uint32_t *pu32Buf)
Program Multi-Word data into specified address of flash.
void FMC_EnableLDUpdate(void)
Enable LDROM update function.
int32_t FMC_ReadConfig(uint32_t *u32Config, uint32_t u32Count)
Read the User Configuration words.
uint32_t FMC_ReadCID(void)
Read company ID.
int32_t FMC_Erase(uint32_t u32Addr)
Flash page erase.
void FMC_DisableFreqOptimizeMode(void)
Disable Flash Access Frequency Optimization Mode.
void FMC_EnableAPUpdate(void)
Enable APROM update function.
int32_t FMC_Write8(uint32_t u32Addr, uint32_t u32Data0, uint32_t u32Data1)
Program 64-bit data into specified address of flash.
uint32_t FMC_ReadDataFlashBaseAddr(void)
Get the base address of Data Flash if enabled.
void FMC_EnableFreqOptimizeMode(uint32_t u32Mode)
Enable Flash Access Frequency Optimization Mode.
void FMC_SetBootSource(int32_t i32BootSrc)
Set boot source from LDROM or APROM after next software reset.
int32_t FMC_Write(uint32_t u32Addr, uint32_t u32Data)
Program 32-bit data into specified address of flash.
void FMC_DisableAPUpdate(void)
Disable APROM update function.
uint32_t FMC_Read(uint32_t u32Addr)
Read 32-bit Data from specified address of flash.
uint32_t FMC_ReadPID(void)
Read product ID.
int32_t FMC_GetBootSource(void)
Get the current boot source.
int32_t FMC_WriteConfig(uint32_t *u32Config, uint32_t u32Count)
Write User Configuration.
void FMC_DisableConfigUpdate(void)
Disable User Configuration update function.
void FMC_Open(void)
Enable FMC ISP function.
uint32_t FMC_GetCheckSum(uint32_t u32Addr, int32_t i32Size)
Get Flash Checksum.
void FMC_EnableConfigUpdate(void)
Enable User Configuration update function.
uint32_t FMC_ReadUCID(uint32_t u32Index)
To read UCID.
uint32_t FMC_ReadUID(uint8_t u8Index)
Read Unique ID.