Defines | |
#define | FLASH_CONF_SECTOR 0x0003FF00 |
Address offset of the configuration sector. | |
#define | FLASH_CONF_SIZE AVR32_FLASHC_PAGE_SIZE |
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 | |
int | Avr32FlashcCmd (unsigned int cmd, uint32_t tmo) |
Execute flash controller command. | |
int | Avr32FlashcSectorRead (unsigned int off, void *data, unsigned int len) |
Read data from flash memory. | |
int | Avr32FlashcSectorWrite (unsigned int off, const void *data, unsigned int len) |
Write data into flash memory. | |
int | Avr32FlashcSectorErase (unsigned int off) |
Erase sector at the specified offset. | |
int | Avr32FlashcRegionLock (unsigned int off) |
Lock specified region. | |
int | Avr32FlashcRegionUnlock (unsigned int off) |
Unlock specified region. | |
int | Avr32FlashcParamRead (unsigned int pos, void *data, unsigned int len) |
Load configuration parameters from embedded flash memory. | |
int | Avr32FlashcParamWrite (unsigned int pos, const void *data, unsigned int len) |
Store configuration parameters in embedded flash memory. |
#define FLASH_CONF_SECTOR 0x0003FF00 |
Address offset of the configuration sector.
Referenced by Avr32FlashcParamRead(), and Avr32FlashcParamWrite().
#define FLASH_CONF_SIZE AVR32_FLASHC_PAGE_SIZE |
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.
Referenced by Avr32FlashcParamWrite().
#define FLASH_WRITE_WAIT 60000 |
Referenced by Avr32FlashcRegionLock(), Avr32FlashcRegionUnlock(), and Avr32FlashcSectorWrite().
#define FLASH_ERASE_WAIT 60000 |
Referenced by Avr32FlashcSectorErase().
#define FLASH_CHIP_ERASE_WAIT 600000 |
typedef uint32_t flashdat_t |
typedef unsigned long flashadr_t |
typedef volatile flashdat_t* flashptr_t |
int Avr32FlashcCmd | ( | unsigned int | cmd, |
uint32_t | tmo | ||
) |
Execute flash controller command.
References NutEnterCritical, NutExitCritical, outr, and rc.
Referenced by Avr32FlashcRegionLock(), Avr32FlashcRegionUnlock(), Avr32FlashcSectorErase(), and Avr32FlashcSectorWrite().
int Avr32FlashcSectorRead | ( | 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. |
References memcpy().
Referenced by Avr32FlashcParamRead(), and Avr32FlashcParamWrite().
int Avr32FlashcSectorWrite | ( | 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 erased. |
len | Number of bytes to write, 1 full sector max. |
References Avr32FlashcCmd(), Avr32FlashcSectorErase(), FLASH_WRITE_WAIT, and rc.
Referenced by Avr32FlashcParamWrite().
int Avr32FlashcSectorErase | ( | unsigned int | off | ) |
Erase sector at the specified offset.
Copyright (C) 2001-2010 by egnite Software GmbH
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
For additional information see http://www.ethernut.de/
References Avr32FlashcCmd(), and FLASH_ERASE_WAIT.
Referenced by Avr32FlashcSectorWrite().
int Avr32FlashcRegionLock | ( | unsigned int | off | ) |
Lock specified region.
off | Location within the region to be locked. |
References Avr32FlashcCmd(), and FLASH_WRITE_WAIT.
Referenced by Avr32FlashcParamWrite().
int Avr32FlashcRegionUnlock | ( | unsigned int | off | ) |
Unlock specified region.
off | Location within the region to be unlocked. |
References Avr32FlashcCmd(), and FLASH_WRITE_WAIT.
Referenced by Avr32FlashcParamWrite().
int Avr32FlashcParamRead | ( | 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. |
References Avr32FlashcSectorRead(), and FLASH_CONF_SECTOR.
int Avr32FlashcParamWrite | ( | 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. |
References Avr32FlashcRegionLock(), Avr32FlashcRegionUnlock(), Avr32FlashcSectorRead(), Avr32FlashcSectorWrite(), FLASH_CONF_SECTOR, FLASH_CONF_SIZE, free(), malloc(), memcmp(), memcpy(), NULL, and rc.