Nut/OS  4.10.3
API Reference
XgAvr32Efc

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_tflashptr_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 Documentation

#define FLASH_CONF_SECTOR   0x0003FF00

Address offset of the configuration sector.

Definition at line 63 of file flashc.c.

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.

Definition at line 77 of file flashc.c.

Referenced by Avr32FlashcParamWrite().

#define FLASH_WRITE_WAIT   60000

Definition at line 81 of file flashc.c.

Referenced by Avr32FlashcRegionLock(), Avr32FlashcRegionUnlock(), and Avr32FlashcSectorWrite().

#define FLASH_ERASE_WAIT   60000

Definition at line 85 of file flashc.c.

Referenced by Avr32FlashcSectorErase().

#define FLASH_CHIP_ERASE_WAIT   600000

Definition at line 89 of file flashc.c.


Typedef Documentation

Definition at line 93 of file flashc.c.

typedef unsigned long flashadr_t

Definition at line 94 of file flashc.c.

typedef volatile flashdat_t* flashptr_t

Definition at line 95 of file flashc.c.


Function Documentation

int Avr32FlashcCmd ( unsigned int  cmd,
uint32_t  tmo 
)

Execute flash controller command.

Definition at line 106 of file flashc.c.

References NutEnterCritical, NutExitCritical, and outr.

Referenced by Avr32FlashcRegionLock(), Avr32FlashcRegionUnlock(), Avr32FlashcSectorErase(), and Avr32FlashcSectorWrite().

int Avr32FlashcSectorRead ( unsigned int  off,
void *  data,
unsigned int  len 
)

Read data from flash memory.

Parameters:
offStart location within the chip, starting at 0.
dataPoints to a buffer that receives the data.
lenNumber of bytes to read.
Returns:
Always 0.

Definition at line 150 of file flashc.c.

References memcpy().

Referenced by Avr32FlashcParamRead(), and Avr32FlashcParamWrite().

Here is the call graph for this function:

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.

Parameters:
offStart location within the chip, starting at 0.
dataPoints to a buffer that contains the bytes to be written. If this is a NULL pointer, then the sector will be erased.
lenNumber of bytes to write, 1 full sector max.
Returns:
0 on success or -1 in case of an error.

Definition at line 169 of file flashc.c.

References Avr32FlashcCmd(), Avr32FlashcSectorErase(), and FLASH_WRITE_WAIT.

Referenced by Avr32FlashcParamWrite().

Here is the call graph for this function:

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/

Definition at line 200 of file flashc.c.

References Avr32FlashcCmd(), and FLASH_ERASE_WAIT.

Referenced by Avr32FlashcSectorWrite().

Here is the call graph for this function:

int Avr32FlashcRegionLock ( unsigned int  off)

Lock specified region.

Parameters:
offLocation within the region to be locked.
Returns:
0 on success or -1 in case of an error.

Definition at line 212 of file flashc.c.

References Avr32FlashcCmd(), and FLASH_WRITE_WAIT.

Referenced by Avr32FlashcParamWrite().

Here is the call graph for this function:

int Avr32FlashcRegionUnlock ( unsigned int  off)

Unlock specified region.

Parameters:
offLocation within the region to be unlocked.
Returns:
0 on success or -1 in case of an error.

Definition at line 224 of file flashc.c.

References Avr32FlashcCmd(), and FLASH_WRITE_WAIT.

Referenced by Avr32FlashcParamWrite().

Here is the call graph for this function:

int Avr32FlashcParamRead ( unsigned int  pos,
void *  data,
unsigned int  len 
)

Load configuration parameters from embedded flash memory.

Applications should call NutNvMemLoad().

Parameters:
posStart location within configuration sector.
dataPoints to a buffer that receives the contents.
lenNumber of bytes to read.
Returns:
Always 0.

Definition at line 240 of file flashc.c.

References Avr32FlashcSectorRead(), and FLASH_CONF_SECTOR.

Here is the call graph for this function:

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.

Parameters:
posStart location within configuration sector.
dataPoints to a buffer that contains the bytes to store.
lenNumber of bytes to store.
Returns:
0 on success or -1 in case of an error.

Definition at line 259 of file flashc.c.

References Avr32FlashcRegionLock(), Avr32FlashcRegionUnlock(), Avr32FlashcSectorRead(), Avr32FlashcSectorWrite(), FLASH_CONF_SECTOR, FLASH_CONF_SIZE, free(), malloc(), memcmp(), and memcpy().

Here is the call graph for this function: