NORFlashKit Drivers
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 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] addr
The address value to check.
- Returns
- True if address value is valid, false otherwise.
Definition at line 71
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 97
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 116
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 149
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 196
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 221
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 316
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 347
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 394
of file norflash.c
.
References NORFLASH_MISALIGNED_ADDRESS, NORFLASH_ProgramWord16(), and NORFLASH_STATUS_OK.