EFM32 Happy Gecko Software Documentation  efm32hg-doc-5.1.2
NorFlash

Detailed Description

Data Structures

struct  NORFLASH_Info_TypeDef
 NORFLASH device information struct. More...
 

Enumerations

enum  NORFLASH_Status_TypeDef {
  NORFLASH_STATUS_OK = 0,
  NORFLASH_NONUNIFORM_GEOMETRY = -1,
  NORFLASH_NOT_CFI_DEVICE = -2,
  NORFLASH_WRITE_FAILURE = -3,
  NORFLASH_WRITE_TIMEOUT = -4,
  NORFLASH_INVALID_ADDRESS = -5,
  NORFLASH_MISALIGNED_ADDRESS = -6
}
 NORFLASH status enumerator. More...
 

Functions

bool NORFLASH_AddressValid (uint32_t addr)
 Check if an address is valid for the flash device. More...
 
NORFLASH_Info_TypeDefNORFLASH_DeviceInfo (void)
 Return a pointer to a NORFLASH_Info_TypeDef, which contain vital flash device information. More...
 
int NORFLASH_EraseDevice (void)
 Erase entire flash device. More...
 
int NORFLASH_EraseSector (uint32_t addr)
 Erase a sector in the flash device. More...
 
int NORFLASH_Init (void)
 Initialize the NORFLASH module. More...
 
int NORFLASH_Program (uint32_t addr, uint8_t *data, uint32_t count)
 Program the flash device. More...
 
int NORFLASH_ProgramByte (uint32_t addr, uint8_t data)
 Program a single byte in the flash device. More...
 
int NORFLASH_ProgramWord16 (uint32_t addr, uint16_t data)
 Program a word (16bit) in the flash device. More...
 
int NORFLASH_ProgramWord32 (uint32_t addr, uint32_t data)
 Program a word (32bit) in the flash device. More...
 

Enumeration Type Documentation

NORFLASH status enumerator.

Enumerator
NORFLASH_STATUS_OK 

No errors detected.

NORFLASH_NONUNIFORM_GEOMETRY 

The flash has non-uniform sector scheme.

NORFLASH_NOT_CFI_DEVICE 

The flash is not CFI compliant.

NORFLASH_WRITE_FAILURE 

Flash write/erase failure.

NORFLASH_WRITE_TIMEOUT 

Flash write/erase timeout.

NORFLASH_INVALID_ADDRESS 

Invalid flash address.

NORFLASH_MISALIGNED_ADDRESS 

Misaligned flash word address.

Definition at line 39 of file norflash.h.

Function Documentation

bool NORFLASH_AddressValid ( uint32_t  addr)

Check if an address is valid for the flash device.

Parameters
[in]addrThe address value to check.
Returns
True if address value is valid, false otherwise.

Definition at line 49 of file norflash.c.

References NORFLASH_Info_TypeDef::baseAddress, NORFLASH_Info_TypeDef::deviceSize, and NORFLASH_STATUS_OK.

Referenced by NORFLASH_EraseSector(), NORFLASH_Program(), and NORFLASH_ProgramWord16().

NORFLASH_Info_TypeDef* NORFLASH_DeviceInfo ( void  )

Return a pointer to a NORFLASH_Info_TypeDef, which contain vital flash device information.

Returns
NULL if unable to initialize the flash if no prior call to NORFLASH_Init() has been made. Pointer to a NORFLASH_Info_TypeDef on success.

Definition at line 74 of file norflash.c.

References NORFLASH_STATUS_OK.

int NORFLASH_EraseDevice ( void  )

Erase entire flash device.

Returns
NORFLASH_STATUS_OK on success, an error code enumerated in NORFLASH_Status_TypeDef on failure.

Definition at line 93 of file norflash.c.

References NORFLASH_Info_TypeDef::baseAddress, and NORFLASH_STATUS_OK.

int NORFLASH_EraseSector ( uint32_t  addr)

Erase a sector in the flash device.

Parameters
[in]addrAddress of the sector to erase.
Returns
NORFLASH_STATUS_OK on success, an error code enumerated in NORFLASH_Status_TypeDef on failure.

Definition at line 126 of file norflash.c.

References NORFLASH_AddressValid(), NORFLASH_INVALID_ADDRESS, NORFLASH_STATUS_OK, and NORFLASH_Info_TypeDef::sectorSize.

int NORFLASH_Init ( void  )

Initialize the NORFLASH module.

Note
This function should be called before any other NORFLASH_xxx() functions are used.
Returns
NORFLASH_STATUS_OK on success, an error code enumerated in NORFLASH_Status_TypeDef on failure.

Definition at line 170 of file norflash.c.

int NORFLASH_Program ( uint32_t  addr,
uint8_t *  data,
uint32_t  count 
)

Program the flash device.

Note
It is assumed that the area to be programmed is erased.
Parameters
[in]addrThe first address in the flash to be programmed.
[in]dataPointer to the data to be programmed.
[in]countNumber of bytes to be programmed.
Returns
NORFLASH_STATUS_OK on success, an error code enumerated in NORFLASH_Status_TypeDef on failure.

Definition at line 195 of file norflash.c.

References NORFLASH_AddressValid(), NORFLASH_INVALID_ADDRESS, NORFLASH_ProgramByte(), NORFLASH_ProgramWord16(), NORFLASH_STATUS_OK, NORFLASH_Info_TypeDef::sectorSize, and SL_MIN.

int NORFLASH_ProgramByte ( uint32_t  addr,
uint8_t  data 
)

Program a single byte in the flash device.

Note
It is assumed that the area to be programmed is erased.
Parameters
[in]addrThe address to be programmed.
[in]dataThe byte value to be programmed.
Returns
NORFLASH_STATUS_OK on success, an error code enumerated in NORFLASH_Status_TypeDef on failure.

Definition at line 285 of file norflash.c.

References NORFLASH_ProgramWord16().

Referenced by NORFLASH_Program().

int NORFLASH_ProgramWord16 ( uint32_t  addr,
uint16_t  data 
)

Program a word (16bit) in the flash device.

Note
It is assumed that the area to be programmed is erased.
Parameters
[in]addrThe address to be programmed.
[in]dataThe word value to be programmed.
Returns
NORFLASH_STATUS_OK on success, an error code enumerated in NORFLASH_Status_TypeDef on failure.

Definition at line 319 of file norflash.c.

References NORFLASH_AddressValid(), NORFLASH_INVALID_ADDRESS, NORFLASH_MISALIGNED_ADDRESS, and NORFLASH_STATUS_OK.

Referenced by NORFLASH_Program(), NORFLASH_ProgramByte(), and NORFLASH_ProgramWord32().

int NORFLASH_ProgramWord32 ( uint32_t  addr,
uint32_t  data 
)

Program a word (32bit) in the flash device.

Note
It is assumed that the area to be programmed is erased.
Parameters
[in]addrThe address to be programmed.
[in]dataThe word value to be programmed.
Returns
NORFLASH_STATUS_OK on success, an error code enumerated in NORFLASH_Status_TypeDef on failure.

Definition at line 366 of file norflash.c.

References NORFLASH_MISALIGNED_ADDRESS, NORFLASH_ProgramWord16(), and NORFLASH_STATUS_OK.