NORFlash
Detailed Description
Driver for Spanion S29GL128P90FFIR13 and S29GL064N NOR Flash devices.
The NORFlash driver implements a common API for different types of NOR Flash devices. The current version of the driver is implemented based on Spanion S29GL128P90FFIR13 and S29GL064N (model 3). This driver supports non-uniform sectored flash architecture devices that has a top/bottom sector which is divided into a smaller sectors. Spansion S29GL128P90FFIR13 is a 16MByte device organized in 128 sectors of 128KBytes each. S29GL064N (model 3) is using boot sectored flash architecture and is organized in 127 sectors of 64KBytes each, in addition to a top 8-8 Kbyte sectors. The module can easily be modified to suit other NOR Flash devices.
Data Structures |
|
struct | NORFLASH_Info_TypeDef |
NORFLASH device information struct.
|
|
Enumerations |
|
enum |
NORFLASH_Status_TypeDef
{
NORFLASH_STATUS_OK = 0, NORFLASH_UNSUPPORTED_DEVICE = -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.
|
|
Functions |
|
bool | NORFLASH_AddressValid (uint32_t addr) |
Check if an address is valid for the flash device.
|
|
NORFLASH_Info_TypeDef * | NORFLASH_DeviceInfo (void) |
Return a pointer to a
NORFLASH_Info_TypeDef
, which contain vital flash device information.
|
|
int | NORFLASH_EraseDevice (void) |
Erase entire flash device.
|
|
int | NORFLASH_EraseSector (uint32_t addr) |
Erase a sector in the flash device.
|
|
int | NORFLASH_Init (void) |
Initialize the NORFLASH module.
|
|
int | NORFLASH_Program (uint32_t addr, uint8_t *data, uint32_t count) |
Program the flash device.
|
|
int | NORFLASH_ProgramByte (uint32_t addr, uint8_t data) |
Program a single byte in the flash device.
|
|
int | NORFLASH_ProgramWord16 (uint32_t addr, uint16_t data) |
Program a word (16bit) in the flash device.
|
|
int | NORFLASH_ProgramWord32 (uint32_t addr, uint32_t data) |
Program a word (32bit) in the flash device.
|
|
Enumeration Type Documentation
NORFlash status enumerator.
Definition at line
52
of file
norflash.h
.
Function Documentation
bool NORFLASH_AddressValid | ( | uint32_t |
addr
|
) |
Check if an address is valid for the flash device.
- Parameters
-
[in] addr
The address value to check.
- Returns
- True if address value is valid, false otherwise.
Definition at line
84
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
110
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
129
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] addr
Address of the sector to erase.
- Returns
- NORFLASH_STATUS_OK on success, an error code enumerated in NORFLASH_Status_TypeDef on failure.
Definition at line
162
of file
norflash.c
.
References NORFLASH_Info_TypeDef::bootSectorSize , 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
209
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] addr
The first address in the flash to be programmed. [in] data
Pointer to the data to be programmed. [in] count
Number of bytes to be programmed.
- Returns
- NORFLASH_STATUS_OK on success, an error code enumerated in NORFLASH_Status_TypeDef on failure.
Definition at line
234
of file
norflash.c
.
References NORFLASH_Info_TypeDef::bootSectorSize , NORFLASH_AddressValid() , NORFLASH_INVALID_ADDRESS , NORFLASH_ProgramByte() , NORFLASH_ProgramWord16() , NORFLASH_STATUS_OK , NORFLASH_Info_TypeDef::sectorSize , SL_MIN , and NORFLASH_Info_TypeDef::writeBufferSize .
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] addr
The address to be programmed. [in] data
The byte value to be programmed.
- Returns
- NORFLASH_STATUS_OK on success, an error code enumerated in NORFLASH_Status_TypeDef on failure.
Definition at line
329
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] addr
The address to be programmed. [in] data
The word value to be programmed.
- Returns
- NORFLASH_STATUS_OK on success, an error code enumerated in NORFLASH_Status_TypeDef on failure.
Definition at line
360
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] addr
The address to be programmed. [in] data
The word value to be programmed.
- Returns
- NORFLASH_STATUS_OK on success, an error code enumerated in NORFLASH_Status_TypeDef on failure.
Definition at line
407
of file
norflash.c
.
References NORFLASH_MISALIGNED_ADDRESS , NORFLASH_ProgramWord16() , and NORFLASH_STATUS_OK .