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] addrThe 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] 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
        
         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] 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
        
         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] 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
        
         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] 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
        
         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] 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
        
         407
        
        of file
        
         norflash.c
        
        .
       
References NORFLASH_MISALIGNED_ADDRESS , NORFLASH_ProgramWord16() , and NORFLASH_STATUS_OK .