![]() |
Defines | |
#define | FLASH_CHIP_BASE 0x00100000 |
Base address of the flash memory chip. | |
#define | FLASH_CONF_SECTOR 0x0003FF00 |
Address offset of the configuration sector. | |
#define | FLASH_CONF_SIZE 256 |
Size of the configuration area. | |
#define | FLASH_WRITE_WAIT 60000 |
#define | FLASH_ERASE_WAIT 60000 |
#define | FLASH_CHIP_ERASE_WAIT 600000 |
Typedefs | |
typedef uint32_t | flashdat_t |
typedef unsigned long | flashadr_t |
typedef volatile flashdat_t * | flashptr_t |
Functions | |
RAMFUNC int | At91EfcCmd (unsigned int cmd, uint32_t tmo) |
Execute flash controller command. | |
int | At91EfcSectorRead (unsigned int off, void *data, unsigned int len) |
Read data from flash memory. | |
int | At91EfcSectorWrite (unsigned int off, CONST void *data, unsigned int len) |
Write data into flash memory. | |
int | At91EfcSectorErase (unsigned int off) |
Erase sector at the specified offset. | |
int | At91EfcRegionLock (unsigned int off) |
Lock specified region. | |
int | At91EfcRegionUnlock (unsigned int off) |
Unlock specified region. | |
int | At91EfcParamRead (unsigned int pos, void *data, unsigned int len) |
Load configuration parameters from embedded flash memory. | |
int | At91EfcParamWrite (unsigned int pos, CONST void *data, unsigned int len) |
Store configuration parameters in embedded flash memory. |
#define FLASH_CHIP_BASE 0x00100000 |
Base address of the flash memory chip.
Definition at line 76 of file at91_efc.c.
Referenced by At49bvSectorErase(), At49bvSectorRead(), At49bvSectorWrite(), At91EfcSectorRead(), and At91EfcSectorWrite().
#define FLASH_CONF_SECTOR 0x0003FF00 |
Address offset of the configuration sector.
Definition at line 82 of file at91_efc.c.
Referenced by At49bvParamRead(), At49bvParamWrite(), At91EfcParamRead(), and At91EfcParamWrite().
#define FLASH_CONF_SIZE 256 |
Size of the configuration area.
During write operations a buffer with this size is allocated from heap and may cause memory problems with large sectors. Thus, this value may be less than the size of the configuration sector, in which case the rest of the sector is unused.
Currently only 1 sector can be used for system configurations.
Definition at line 95 of file at91_efc.c.
Referenced by At49bvParamWrite(), and At91EfcParamWrite().
#define FLASH_WRITE_WAIT 60000 |
Definition at line 99 of file at91_efc.c.
Referenced by At91EfcRegionLock(), At91EfcRegionUnlock(), and At91EfcSectorWrite().
#define FLASH_ERASE_WAIT 60000 |
#define FLASH_CHIP_ERASE_WAIT 600000 |
typedef uint32_t flashdat_t |
Definition at line 111 of file at91_efc.c.
typedef unsigned long flashadr_t |
Definition at line 112 of file at91_efc.c.
typedef volatile flashdat_t* flashptr_t |
Definition at line 113 of file at91_efc.c.
RAMFUNC int At91EfcCmd | ( | unsigned int | cmd, | |
uint32_t | tmo | |||
) |
Execute flash controller command.
This routine must not be located in internal flash memory.
Definition at line 121 of file at91_efc.c.
References inr, MC_FCR, MC_FRDY, MC_FSR, MC_KEY, MC_LOCKE, MC_PROGE, NutEnterCritical, NutExitCritical, and outr.
Referenced by At91EfcRegionLock(), At91EfcRegionUnlock(), and At91EfcSectorWrite().
int At91EfcSectorRead | ( | unsigned int | off, | |
void * | data, | |||
unsigned int | len | |||
) |
Read data from flash memory.
off | Start location within the chip, starting at 0. | |
data | Points to a buffer that receives the data. | |
len | Number of bytes to read. |
Definition at line 166 of file at91_efc.c.
References FLASH_CHIP_BASE, and memcpy().
Referenced by At91EfcParamRead(), and At91EfcParamWrite().
int At91EfcSectorWrite | ( | unsigned int | off, | |
CONST void * | data, | |||
unsigned int | len | |||
) |
Write data into flash memory.
The related sector will be automatically erased before writing.
off | Start location within the chip, starting at 0. | |
data | Points to a buffer that contains the bytes to be written. If this is a NULL pointer, then the sector will be reased. | |
len | Number of bytes to write, 1 full sector max. |
Definition at line 185 of file at91_efc.c.
References At91EfcCmd(), FLASH_CHIP_BASE, FLASH_WRITE_WAIT, inr, MC_FCMD_WP, MC_FMR, MC_NEBP, MC_PAGEN_MASK, and outr.
Referenced by At91EfcParamWrite(), and At91EfcSectorErase().
int At91EfcSectorErase | ( | unsigned int | off | ) |
Erase sector at the specified offset.
Definition at line 219 of file at91_efc.c.
References At91EfcSectorWrite().
int At91EfcRegionLock | ( | unsigned int | off | ) |
Lock specified region.
off | Location within the region to be locked. |
Definition at line 231 of file at91_efc.c.
References At91EfcCmd(), FLASH_WRITE_WAIT, MC_FCMD_SLB, and MC_PAGEN_MASK.
Referenced by At91EfcParamWrite().
int At91EfcRegionUnlock | ( | unsigned int | off | ) |
Unlock specified region.
off | Location within the region to be unlocked. |
Definition at line 243 of file at91_efc.c.
References At91EfcCmd(), FLASH_WRITE_WAIT, MC_FCMD_CLB, and MC_PAGEN_MASK.
Referenced by At91EfcParamWrite().
int At91EfcParamRead | ( | unsigned int | pos, | |
void * | data, | |||
unsigned int | len | |||
) |
Load configuration parameters from embedded flash memory.
Applications should call NutNvMemLoad().
pos | Start location within configuration sector. | |
data | Points to a buffer that receives the contents. | |
len | Number of bytes to read. |
Definition at line 259 of file at91_efc.c.
References At91EfcSectorRead(), and FLASH_CONF_SECTOR.
Referenced by NutNvMemLoad().
int At91EfcParamWrite | ( | unsigned int | pos, | |
CONST void * | data, | |||
unsigned int | len | |||
) |
Store configuration parameters in embedded flash memory.
Applications should call NutNvMemSave().
The region that contains the configuration sector will be automatically locked.
pos | Start location within configuration sector. | |
data | Points to a buffer that contains the bytes to store. | |
len | Number of bytes to store. |
Definition at line 278 of file at91_efc.c.
References At91EfcRegionLock(), At91EfcRegionUnlock(), At91EfcSectorRead(), At91EfcSectorWrite(), FLASH_CONF_SECTOR, FLASH_CONF_SIZE, free, malloc, memcmp(), and memcpy().
Referenced by NutNvMemSave().