Mini51 BSP  V3.02.002
The Board Support Package for Mini51 Series
Macros | Functions
FMC Exported Functions

Macros

#define FMC_SET_APROM_BOOT()   (FMC->ISPCON &= ~FMC_ISPCON_BS_Msk)
 
#define FMC_SET_LDROM_BOOT()   (FMC->ISPCON |= FMC_ISPCON_BS_Msk)
 
#define FMC_DISABLE_AP_UPDATE()   (FMC->ISPCON &= ~FMC_ISPCON_APUEN_Msk)
 
#define FMC_DISABLE_CFG_UPDATE()   (FMC->ISPCON &= ~FMC_ISPCON_CFGUEN_Msk)
 
#define FMC_DISABLE_LD_UPDATE()   (FMC->ISPCON &= ~FMC_ISPCON_LDUEN_Msk)
 
#define FMC_DISABLE_ISP()   (FMC->ISPCON &= ~FMC_ISPCON_ISPEN_Msk)
 
#define FMC_ENABLE_AP_UPDATE()   (FMC->ISPCON |= FMC_ISPCON_APUEN_Msk)
 
#define FMC_ENABLE_LD_UPDATE()   (FMC->ISPCON |= FMC_ISPCON_LDUEN_Msk)
 
#define FMC_ENABLE_CFG_UPDATE()   (FMC->ISPCON |= FMC_ISPCON_CFGUEN_Msk)
 
#define FMC_ENABLE_ISP()   (FMC->ISPCON |= FMC_ISPCON_ISPEN_Msk)
 
#define FMC_GET_FAIL_FLAG()   ((FMC->ISPCON & FMC_ISPCON_ISPFF_Msk) ? 1 : 0)
 
#define FMC_CLR_FAIL_FLAG()   (FMC->ISPCON |= FMC_ISPCON_ISPFF_Msk)
 

Functions

void FMC_Close (void)
 Disable all FMC functions. More...
 
int32_t FMC_Erase (uint32_t u32PageAddr)
 Erase a page. The page size is 512 bytes. More...
 
int32_t FMC_GetBootSource (void)
 get the current boot source More...
 
void FMC_Open (void)
 Enable FMC ISP function. More...
 
uint32_t FMC_Read (uint32_t u32Addr)
 Read a word from specified flash address. More...
 
uint32_t FMC_ReadCID (void)
 Read company ID. More...
 
uint32_t FMC_ReadPID (void)
 Read product ID. More...
 
uint32_t FMC_ReadUCID (uint32_t u32Index)
 This function reads one of the four UCID. More...
 
uint32_t FMC_ReadUID (uint32_t u32Index)
 This function reads one of the three UID. More...
 
uint32_t FMC_ReadDataFlashBaseAddr (void)
 Get the base address of Data Flash if enabled. More...
 
void FMC_SetVectorPageAddr (uint32_t u32PageAddr)
 This function will force re-map assigned flash page to CPU address 0x0. More...
 
uint32_t FMC_GetVectorPageAddr (void)
 Obtain the current vector page address setting. More...
 
void FMC_Write (uint32_t u32Addr, uint32_t u32Data)
 Writes a word data to specified flash address. More...
 
int32_t FMC_ReadConfig (uint32_t *u32Config, uint32_t u32Count)
 Read the User Configuration words. More...
 
int32_t FMC_WriteConfig (uint32_t *u32Config, uint32_t u32Count)
 Write User Configuration. More...
 

Detailed Description

Macro Definition Documentation

◆ FMC_CLR_FAIL_FLAG

#define FMC_CLR_FAIL_FLAG ( )    (FMC->ISPCON |= FMC_ISPCON_ISPFF_Msk)

Clear ISP fail flag

Definition at line 72 of file fmc.h.

◆ FMC_DISABLE_AP_UPDATE

#define FMC_DISABLE_AP_UPDATE ( )    (FMC->ISPCON &= ~FMC_ISPCON_APUEN_Msk)

Disable APROM update

Definition at line 63 of file fmc.h.

◆ FMC_DISABLE_CFG_UPDATE

#define FMC_DISABLE_CFG_UPDATE ( )    (FMC->ISPCON &= ~FMC_ISPCON_CFGUEN_Msk)

Disable User Config update

Definition at line 64 of file fmc.h.

◆ FMC_DISABLE_ISP

#define FMC_DISABLE_ISP ( )    (FMC->ISPCON &= ~FMC_ISPCON_ISPEN_Msk)

Disable ISP function

Definition at line 66 of file fmc.h.

◆ FMC_DISABLE_LD_UPDATE

#define FMC_DISABLE_LD_UPDATE ( )    (FMC->ISPCON &= ~FMC_ISPCON_LDUEN_Msk)

Disable LDROM update

Definition at line 65 of file fmc.h.

◆ FMC_ENABLE_AP_UPDATE

#define FMC_ENABLE_AP_UPDATE ( )    (FMC->ISPCON |= FMC_ISPCON_APUEN_Msk)

Enable APROM update

Definition at line 67 of file fmc.h.

◆ FMC_ENABLE_CFG_UPDATE

#define FMC_ENABLE_CFG_UPDATE ( )    (FMC->ISPCON |= FMC_ISPCON_CFGUEN_Msk)

Enable User Config update

Definition at line 69 of file fmc.h.

◆ FMC_ENABLE_ISP

#define FMC_ENABLE_ISP ( )    (FMC->ISPCON |= FMC_ISPCON_ISPEN_Msk)

Enable ISP function

Definition at line 70 of file fmc.h.

◆ FMC_ENABLE_LD_UPDATE

#define FMC_ENABLE_LD_UPDATE ( )    (FMC->ISPCON |= FMC_ISPCON_LDUEN_Msk)

Enable LDROM update

Definition at line 68 of file fmc.h.

◆ FMC_GET_FAIL_FLAG

#define FMC_GET_FAIL_FLAG ( )    ((FMC->ISPCON & FMC_ISPCON_ISPFF_Msk) ? 1 : 0)

Get ISP fail flag

Definition at line 71 of file fmc.h.

◆ FMC_SET_APROM_BOOT

#define FMC_SET_APROM_BOOT ( )    (FMC->ISPCON &= ~FMC_ISPCON_BS_Msk)

Select booting from APROM

Definition at line 61 of file fmc.h.

◆ FMC_SET_LDROM_BOOT

#define FMC_SET_LDROM_BOOT ( )    (FMC->ISPCON |= FMC_ISPCON_BS_Msk)

Select booting from LDROM

Definition at line 62 of file fmc.h.

Function Documentation

◆ FMC_Close()

void FMC_Close ( void  )

Disable all FMC functions.

Definition at line 34 of file fmc.c.

◆ FMC_Erase()

int32_t FMC_Erase ( uint32_t  u32PageAddr)

Erase a page. The page size is 512 bytes.

Parameters
u32PageAddrFlash page address. Must be a 512-byte aligned address.
Return values
0Success
-1Erase failed

Definition at line 46 of file fmc.c.

◆ FMC_GetBootSource()

int32_t FMC_GetBootSource ( void  )

get the current boot source

Return values
0This chip is currently booting from APROM
1This chip is currently booting from LDROM

Definition at line 68 of file fmc.c.

◆ FMC_GetVectorPageAddr()

uint32_t FMC_GetVectorPageAddr ( void  )

Obtain the current vector page address setting.

Returns
The vector page address.

Definition at line 192 of file fmc.c.

◆ FMC_Open()

void FMC_Open ( void  )

Enable FMC ISP function.

Definition at line 80 of file fmc.c.

◆ FMC_Read()

uint32_t FMC_Read ( uint32_t  u32Addr)

Read a word from specified flash address.

Parameters
u32AddrFlash word address. Must be a word aligned address.
Returns
The word data stored in the flash address "u32Addr".

Definition at line 91 of file fmc.c.

◆ FMC_ReadCID()

uint32_t FMC_ReadCID ( void  )

Read company ID.

Returns
The company ID.

Definition at line 107 of file fmc.c.

◆ FMC_ReadConfig()

int32_t FMC_ReadConfig ( uint32_t *  u32Config,
uint32_t  u32Count 
)

Read the User Configuration words.

Parameters
u32ConfigThe word array to store data.
u32CountMaximum length of "u32Config".
Return values
0Success
-1Failed

Definition at line 220 of file fmc.c.

◆ FMC_ReadDataFlashBaseAddr()

uint32_t FMC_ReadDataFlashBaseAddr ( void  )

Get the base address of Data Flash if enabled.

Returns
The base address of Data Flash

Definition at line 169 of file fmc.c.

◆ FMC_ReadPID()

uint32_t FMC_ReadPID ( void  )

Read product ID.

Returns
The product ID.

Definition at line 121 of file fmc.c.

◆ FMC_ReadUCID()

uint32_t FMC_ReadUCID ( uint32_t  u32Index)

This function reads one of the four UCID.

Parameters
u32Indexindex of the UCID to read. u32Index must be 0, 1, 2, or 3.
Returns
The UCID.

Definition at line 136 of file fmc.c.

◆ FMC_ReadUID()

uint32_t FMC_ReadUID ( uint32_t  u32Index)

This function reads one of the three UID.

Parameters
u32Indexindex of the UID to read. u32Index must be 0, 1, or 2.
Returns
The UID.

Definition at line 153 of file fmc.c.

◆ FMC_SetVectorPageAddr()

void FMC_SetVectorPageAddr ( uint32_t  u32PageAddr)

This function will force re-map assigned flash page to CPU address 0x0.

Parameters
u32PageAddraddress of the page to be mapped to CPU address 0x0.

Definition at line 179 of file fmc.c.

◆ FMC_Write()

void FMC_Write ( uint32_t  u32Addr,
uint32_t  u32Data 
)

Writes a word data to specified flash address.

Parameters
u32Addrdestination address
u32Dataword data to be written

Definition at line 203 of file fmc.c.

◆ FMC_WriteConfig()

int32_t FMC_WriteConfig ( uint32_t *  u32Config,
uint32_t  u32Count 
)

Write User Configuration.

Parameters
u32ConfigThe word array to store data.
u32CountMaximum length of "u32Config".
Return values
0Success
-1Failed

Definition at line 237 of file fmc.c.