Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
FMC Exported Functions
[FMC Driver]
Functions | |
__STATIC_INLINE uint32_t | FMC_ReadCID (void) |
Read company ID. | |
__STATIC_INLINE uint32_t | FMC_ReadPID (void) |
Read product ID. | |
__STATIC_INLINE uint32_t | FMC_ReadUID (uint8_t u8Index) |
Read Unique ID. | |
__STATIC_INLINE uint32_t | FMC_ReadUCID (uint32_t u32Index) |
To read UCID. | |
__STATIC_INLINE void | FMC_SetVectorPageAddr (uint32_t u32PageAddr) |
Set vector mapping address. | |
__STATIC_INLINE uint32_t | FMC_GetVECMAP (void) |
Get current vector mapping address. | |
void | FMC_Close (void) |
Disable FMC ISP function. | |
int32_t | FMC_Erase (uint32_t u32PageAddr) |
Execute FMC_ISPCMD_PAGE_ERASE command to erase a flash page. | |
int32_t | FMC_Erase_SPROM (void) |
Execute FMC_ISPCMD_PAGE_ERASE command to erase SPROM. | |
int32_t | FMC_Erase_Block (uint32_t u32BlockAddr) |
Execute FMC_ISPCMD_BLOCK_ERASE command to erase a flash block. | |
int32_t | FMC_Erase_Bank (uint32_t u32BankAddr) |
Execute FMC_ISPCMD_BANK_ERASE command to erase a flash block. | |
int32_t | FMC_GetBootSource (void) |
Get the current boot source. | |
void | FMC_Open (void) |
Enable FMC ISP function. | |
uint32_t | FMC_Read (uint32_t u32Addr) |
Execute FMC_ISPCMD_READ command to read a word from flash. | |
int32_t | FMC_Read_64 (uint32_t u32addr, uint32_t *u32data0, uint32_t *u32data1) |
Execute FMC_ISPCMD_READ_64 command to read a double-word from flash. | |
uint32_t | FMC_ReadDataFlashBaseAddr (void) |
Get the base address of Data Flash if enabled. | |
void | FMC_SetBootSource (int32_t i32BootSrc) |
Set boot source from LDROM or APROM after next software reset. | |
void | FMC_Write (uint32_t u32Addr, uint32_t u32Data) |
Execute ISP FMC_ISPCMD_PROGRAM to program a word to flash. | |
int32_t | FMC_Write8Bytes (uint32_t u32addr, uint32_t u32data0, uint32_t u32data1) |
Execute ISP FMC_ISPCMD_PROGRAM_64 to program a double-word to flash. | |
int32_t | FMC_WriteMultiple (uint32_t u32Addr, uint32_t pu32Buf[], uint32_t u32Len) |
Program Multi-Word data into specified address of flash. | |
int32_t | FMC_Write_OTP (uint32_t otp_num, uint32_t low_word, uint32_t high_word) |
Program a 64-bits data to the specified OTP. | |
int32_t | FMC_Read_OTP (uint32_t otp_num, uint32_t *low_word, uint32_t *high_word) |
Read the 64-bits data from the specified OTP. | |
int32_t | FMC_Lock_OTP (uint32_t otp_num) |
Lock the specified OTP. | |
int32_t | FMC_Is_OTP_Locked (uint32_t otp_num) |
Check the OTP is locked or not. | |
int32_t | FMC_ReadConfig (uint32_t u32Config[], uint32_t u32Count) |
Execute FMC_ISPCMD_READ command to read User Configuration. | |
int32_t | FMC_WriteConfig (uint32_t u32Config[], uint32_t u32Count) |
Execute ISP commands to erase then write User Configuration. | |
uint32_t | FMC_GetChkSum (uint32_t u32addr, uint32_t u32count) |
Run CRC32 checksum calculation and get result. | |
uint32_t | FMC_CheckAllOne (uint32_t u32addr, uint32_t u32count) |
Run flash all one verification and get result. | |
int32_t | FMC_SetSPKey (uint32_t key[3], uint32_t kpmax, uint32_t kemax, const int32_t lock_CONFIG, const int32_t lock_SPROM) |
Setup security key. | |
int32_t | FMC_CompareSPKey (uint32_t key[3]) |
Execute security key comparison. |
Function Documentation
uint32_t FMC_CheckAllOne | ( | uint32_t | u32addr, |
uint32_t | u32count | ||
) |
Run flash all one verification and get result.
- Parameters:
-
[in] u32addr Starting flash address. It must be a page aligned address. [in] u32count Byte count of flash to be calculated. It must be multiple of 512 bytes.
- Return values:
-
READ_ALLONE_YES The contents of verified flash area are 0xFFFFFFFF. READ_ALLONE_NOT Some contents of verified flash area are not 0xFFFFFFFF. READ_ALLONE_CMD_FAIL Unexpected error occurred.
Definition at line 644 of file m480_fmc.c.
void FMC_Close | ( | void | ) |
int32_t FMC_CompareSPKey | ( | uint32_t | key[3] ) |
Execute security key comparison.
- Parameters:
-
[in] key Key 0~2 to be compared.
- Return values:
-
0 Key matched. -1 Forbidden. Times of key comparison mismatch reach the maximum count. -2 Key mismatched. -3 No security key lock. Key comparison is not required.
Definition at line 763 of file m480_fmc.c.
int32_t FMC_Erase | ( | uint32_t | u32PageAddr ) |
Execute FMC_ISPCMD_PAGE_ERASE command to erase a flash page.
The page size is 4096 bytes.
- Parameters:
-
[in] u32PageAddr Address of the flash page to be erased. It must be a 4096 bytes aligned address.
- Returns:
- ISP page erase success or not.
- Return values:
-
0 Success -1 Erase failed
Definition at line 68 of file m480_fmc.c.
int32_t FMC_Erase_Bank | ( | uint32_t | u32BankAddr ) |
Execute FMC_ISPCMD_BANK_ERASE command to erase a flash block.
- Parameters:
-
[in] u32BankAddr Base address of the flash bank to be erased.
- Returns:
- ISP page erase success or not.
- Return values:
-
0 Success -1 Erase failed
Definition at line 149 of file m480_fmc.c.
int32_t FMC_Erase_Block | ( | uint32_t | u32BlockAddr ) |
Execute FMC_ISPCMD_BLOCK_ERASE command to erase a flash block.
The block size is 4 pages.
- Parameters:
-
[in] u32BlockAddr Address of the flash block to be erased. It must be a 4 pages aligned address.
- Returns:
- ISP page erase success or not.
- Return values:
-
0 Success -1 Erase failed
Definition at line 125 of file m480_fmc.c.
int32_t FMC_Erase_SPROM | ( | void | ) |
Execute FMC_ISPCMD_PAGE_ERASE command to erase SPROM.
The page size is 4096 bytes.
- Returns:
- SPROM page erase success or not.
- Return values:
-
0 Success -1 Erase failed
Definition at line 99 of file m480_fmc.c.
int32_t FMC_GetBootSource | ( | void | ) |
Get the current boot source.
- Returns:
- The current boot source.
- Return values:
-
0 Is boot from APROM. 1 Is boot from LDROM.
Definition at line 172 of file m480_fmc.c.
uint32_t FMC_GetChkSum | ( | uint32_t | u32addr, |
uint32_t | u32count | ||
) |
Run CRC32 checksum calculation and get result.
- Parameters:
-
[in] u32addr Starting flash address. It must be a page aligned address. [in] u32count Byte count of flash to be calculated. It must be multiple of 512 bytes.
- Returns:
- Success or not.
- Return values:
-
0 Success. 0xFFFFFFFF Invalid parameter.
Definition at line 609 of file m480_fmc.c.
__STATIC_INLINE uint32_t FMC_GetVECMAP | ( | void | ) |
Get current vector mapping address.
- Parameters:
-
None
- Returns:
- The current vector mapping address.
To get VECMAP value which is the page address for remapping to vector page (0x0).
- Note:
- VECMAP only valid when new IAP function is enabled. (CBS = 10'b or 00'b)
Definition at line 161 of file m480_fmc.h.
int32_t FMC_Is_OTP_Locked | ( | uint32_t | otp_num ) |
Check the OTP is locked or not.
- Parameters:
-
[in] otp_num The OTP number.
- Return values:
-
1 OTP is locked. 0 OTP is not locked. -1 Failed to read OTP lock bits. -2 Invalid OTP number.
Definition at line 529 of file m480_fmc.c.
int32_t FMC_Lock_OTP | ( | uint32_t | otp_num ) |
Lock the specified OTP.
- Parameters:
-
[in] otp_num The OTP number.
- Return values:
-
0 Success -1 Failed to write OTP lock bits. -2 Invalid OTP number.
Definition at line 496 of file m480_fmc.c.
void FMC_Open | ( | void | ) |
uint32_t FMC_Read | ( | uint32_t | u32Addr ) |
Execute FMC_ISPCMD_READ command to read a word from flash.
- Parameters:
-
[in] u32Addr Address of the flash location to be read. It must be a word aligned address.
- Returns:
- The word data read from specified flash address.
Definition at line 200 of file m480_fmc.c.
int32_t FMC_Read_64 | ( | uint32_t | u32addr, |
uint32_t * | u32data0, | ||
uint32_t * | u32data1 | ||
) |
Execute FMC_ISPCMD_READ_64 command to read a double-word from flash.
- Parameters:
-
[in] u32addr Address of the flash location to be read. It must be a double-word aligned address. [out] u32data0 Place holder of word 0 read from flash address u32addr. [out] u32data1 Place holder of word 0 read from flash address u32addr+4.
- Returns:
- 0 Success
- -1 Failed
Definition at line 221 of file m480_fmc.c.
int32_t FMC_Read_OTP | ( | uint32_t | otp_num, |
uint32_t * | low_word, | ||
uint32_t * | high_word | ||
) |
Read the 64-bits data from the specified OTP.
- Parameters:
-
[in] otp_num The OTP number. [in] low_word Low word of the 64-bits data. [in] high_word Low word of the 64-bits data.
- Return values:
-
0 Success -1 Read failed. -2 Invalid OTP number.
Definition at line 461 of file m480_fmc.c.
__STATIC_INLINE uint32_t FMC_ReadCID | ( | void | ) |
Read company ID.
- Parameters:
-
None
- Returns:
- The company ID (32-bit)
The company ID of Nuvoton is fixed to be 0xDA
Definition at line 172 of file m480_fmc.h.
int32_t FMC_ReadConfig | ( | uint32_t | u32Config[], |
uint32_t | u32Count | ||
) |
Execute FMC_ISPCMD_READ command to read User Configuration.
- Parameters:
-
[out] u32Config A two-word array. u32Config[0] holds CONFIG0, while u32Config[1] holds CONFIG1. [in] u32Count Available word count in u32Config.
- Returns:
- Success or not.
- Return values:
-
0 Success. -1 Invalid parameter.
Definition at line 566 of file m480_fmc.c.
uint32_t FMC_ReadDataFlashBaseAddr | ( | void | ) |
Get the base address of Data Flash if enabled.
- Return values:
-
The base address of Data Flash
Definition at line 247 of file m480_fmc.c.
__STATIC_INLINE uint32_t FMC_ReadPID | ( | void | ) |
Read product ID.
- Parameters:
-
None
- Returns:
- The product ID (32-bit)
This function is used to read product ID.
Definition at line 192 of file m480_fmc.h.
__STATIC_INLINE uint32_t FMC_ReadUCID | ( | uint32_t | u32Index ) |
To read UCID.
- Parameters:
-
[in] u32Index Index of the UCID to read. u32Index must be 0, 1, 2, or 3.
- Returns:
- The UCID of specified index
This function is used to read unique chip ID (UCID).
Definition at line 233 of file m480_fmc.h.
__STATIC_INLINE uint32_t FMC_ReadUID | ( | uint8_t | u8Index ) |
Read Unique ID.
- Parameters:
-
[in] u8Index UID index. 0 = UID[31:0], 1 = UID[63:32], 2 = UID[95:64]
- Returns:
- The 32-bit unique ID data of specified UID index.
To read out 96-bit Unique ID.
Definition at line 212 of file m480_fmc.h.
void FMC_SetBootSource | ( | int32_t | i32BootSrc ) |
Set boot source from LDROM or APROM after next software reset.
- Parameters:
-
[in] i32BootSrc 1: Boot from LDROM 0: Boot from APROM
- Returns:
- None
This function is used to switch APROM boot or LDROM boot. User need to call FMC_SetBootSource to select boot source first, then use CPU reset or System Reset Request to reset system.
Definition at line 262 of file m480_fmc.c.
int32_t FMC_SetSPKey | ( | uint32_t | key[3], |
uint32_t | kpmax, | ||
uint32_t | kemax, | ||
const int32_t | lock_CONFIG, | ||
const int32_t | lock_SPROM | ||
) |
Setup security key.
- Parameters:
-
[in] key Key 0~2 to be setup. [in] kpmax Maximum unmatched power-on counting number. [in] kemax Maximum unmatched counting number. [in] lock_CONFIG 1: Security key lock CONFIG to write-protect. 0: Don't lock CONFIG. [in] lock_SPROM 1: Security key lock SPROM to write-protect. 0: Don't lock SPROM.
- Return values:
-
0 Success. -1 Key is locked. Cannot overwrite the current key. -2 Failed to erase flash. -3 Failed to program key. -4 Key lock function failed. -5 CONFIG lock function failed. -6 SPROM lock function failed. -7 KPMAX function failed. -8 KEMAX function failed.
Definition at line 692 of file m480_fmc.c.
__STATIC_INLINE void FMC_SetVectorPageAddr | ( | uint32_t | u32PageAddr ) |
Set vector mapping address.
- Parameters:
-
[in] u32PageAddr The page address to remap to address 0x0. The address must be page alignment.
- Returns:
- To set VECMAP to remap specified page address to 0x0.
This function is used to set VECMAP to map specified page to vector page (0x0).
- Note:
- VECMAP only valid when new IAP function is enabled. (CBS = 10'b or 00'b)
Definition at line 255 of file m480_fmc.h.
void FMC_Write | ( | uint32_t | u32Addr, |
uint32_t | u32Data | ||
) |
Execute ISP FMC_ISPCMD_PROGRAM to program a word to flash.
- Parameters:
-
[in] u32Addr Address of the flash location to be programmed. It must be a word aligned address. [in] u32Data The word data to be programmed.
- Returns:
- None
Definition at line 278 of file m480_fmc.c.
int32_t FMC_Write8Bytes | ( | uint32_t | u32addr, |
uint32_t | u32data0, | ||
uint32_t | u32data1 | ||
) |
Execute ISP FMC_ISPCMD_PROGRAM_64 to program a double-word to flash.
- Parameters:
-
[in] u32addr Address of the flash location to be programmed. It must be a double-word aligned address. [in] u32data0 The word data to be programmed to flash address u32addr. [in] u32data1 The word data to be programmed to flash address u32addr+4.
- Returns:
- 0 Success
- -1 Failed
Definition at line 297 of file m480_fmc.c.
int32_t FMC_Write_OTP | ( | uint32_t | otp_num, |
uint32_t | low_word, | ||
uint32_t | high_word | ||
) |
Program a 64-bits data to the specified OTP.
- Parameters:
-
[in] otp_num The OTP number. [in] low_word Low word of the 64-bits data. [in] high_word Low word of the 64-bits data.
- Return values:
-
0 Success -1 Program failed. -2 Invalid OTP number.
Definition at line 413 of file m480_fmc.c.
int32_t FMC_WriteConfig | ( | uint32_t | u32Config[], |
uint32_t | u32Count | ||
) |
Execute ISP commands to erase then write User Configuration.
- Parameters:
-
[in] u32Config A two-word array. u32Config[0] holds CONFIG0, while u32Config[1] holds CONFIG1. [in] u32Count Always be 2 in this BSP.
- Returns:
- Success or not.
- Return values:
-
0 Success. -1 Invalid parameter.
Definition at line 590 of file m480_fmc.c.
int32_t FMC_WriteMultiple | ( | uint32_t | u32Addr, |
uint32_t | pu32Buf[], | ||
uint32_t | u32Len | ||
) |
Program Multi-Word data into specified address of flash.
- Parameters:
-
[in] u32Addr Start flash address in APROM where the data chunk to be programmed into. This address must be 8-bytes aligned to flash address. [in] pu32Buf Buffer that carry the data chunk. [in] u32Len Length of the data chunk in bytes.
- Return values:
-
>=0 Number of data bytes were programmed.
- Returns:
- -1 Invalid address.
Definition at line 326 of file m480_fmc.c.
Generated on Tue Jul 12 2022 15:37:35 by
