AVR-LibC  2.2.1
Standard C library for AVR-GCC

AVR-LibC Documentation

Logo

AVR-LibC Development Pages

Main Page

User Manual

Library Reference

FAQ

Example Projects

File List

Loading...
Searching...
No Matches
<avr/eeprom.h>: EEPROM handling

Macros

#define EEMEM   __attribute__((__section__(".eeprom")))
#define eeprom_is_ready()
#define eeprom_busy_wait()

Functions

uint8_t eeprom_read_byte (const uint8_t *__p)
uint16_t eeprom_read_word (const uint16_t *__p)
uint32_t eeprom_read_dword (const uint32_t *__p)
uint64_t eeprom_read_qword (const uint64_t *__p)
float eeprom_read_float (const float *__p)
double eeprom_read_double (const double *__p)
long double eeprom_read_long_double (const long double *__p)
void eeprom_read_block (void *__dst, const void *__src, size_t __n)
void eeprom_write_byte (uint8_t *__p, uint8_t __value)
void eeprom_write_word (uint16_t *__p, uint16_t __value)
void eeprom_write_dword (uint32_t *__p, uint32_t __value)
void eeprom_write_qword (uint64_t *__p, uint64_t __value)
void eeprom_write_float (float *__p, float __value)
void eeprom_write_double (double *__p, double __value)
void eeprom_write_long_double (long double *__p, long double __value)
void eeprom_write_block (const void *__src, void *__dst, size_t __n)
void eeprom_update_byte (uint8_t *__p, uint8_t __value)
void eeprom_update_word (uint16_t *__p, uint16_t __value)
void eeprom_update_dword (uint32_t *__p, uint32_t __value)
void eeprom_update_qword (uint64_t *__p, uint64_t __value)
void eeprom_update_float (float *__p, float __value)
void eeprom_update_double (double *__p, double __value)
void eeprom_update_long_double (long double *__p, long double __value)
void eeprom_update_block (const void *__src, void *__dst, size_t __n)

IAR C compatibility defines

#define _EEPUT(addr, val)
#define __EEPUT(addr, val)
#define _EEGET(var, addr)
#define __EEGET(var, addr)

Detailed Description

#include <avr/eeprom.h>

This header file declares the interface to some simple library routines suitable for handling the data EEPROM contained in the AVR microcontrollers. The implementation uses a simple polled mode interface. Applications that require interrupt-controlled EEPROM access to ensure that no time will be wasted in spinloops will have to deploy their own implementation.

Notes:

Macro Definition Documentation

◆ __EEGET

#define __EEGET ( var,
addr )
Value:
(var) = eeprom_read_byte ((const uint8_t *)(addr))
uint8_t eeprom_read_byte(const uint8_t *__p)
unsigned char uint8_t
Definition stdint.h:83

Read a byte from EEPROM. Compatibility define for IAR C.

◆ __EEPUT

#define __EEPUT ( addr,
val )
Value:
eeprom_write_byte ((uint8_t *)(addr), (uint8_t)(val))
void eeprom_write_byte(uint8_t *__p, uint8_t __value)

Write a byte to EEPROM. Compatibility define for IAR C.

◆ _EEGET

#define _EEGET ( var,
addr )
Value:
(var) = eeprom_read_byte ((const uint8_t *)(addr))

Read a byte from EEPROM. Compatibility define for IAR C.

◆ _EEPUT

#define _EEPUT ( addr,
val )
Value:
eeprom_write_byte ((uint8_t *)(addr), (uint8_t)(val))

Write a byte to EEPROM. Compatibility define for IAR C.

◆ EEMEM

#define EEMEM   __attribute__((__section__(".eeprom")))

Attribute expression causing a variable to be allocated within the .eeprom section.

◆ eeprom_busy_wait

#define eeprom_busy_wait ( )
Value:
do {} while (!eeprom_is_ready())
#define eeprom_is_ready()
Definition eeprom.h:113

Loops until the eeprom is no longer busy.

Returns
Nothing.

◆ eeprom_is_ready

#define eeprom_is_ready ( )
Returns
1 if EEPROM is ready for a new read/write operation, 0 if not.

Function Documentation

◆ eeprom_read_block()

void eeprom_read_block ( void * __dst,
const void * __src,
size_t __n )

Read a block of __n bytes from EEPROM address __src to SRAM __dst.

◆ eeprom_read_byte()

uint8_t eeprom_read_byte ( const uint8_t * __p)

Read one byte from EEPROM address __p.

◆ eeprom_read_double()

double eeprom_read_double ( const double * __p)

Read one double value (little endian) from EEPROM address __p.

◆ eeprom_read_dword()

uint32_t eeprom_read_dword ( const uint32_t * __p)

Read one 32-bit double word (little endian) from EEPROM address __p.

◆ eeprom_read_float()

float eeprom_read_float ( const float * __p)

Read one float value (little endian) from EEPROM address __p.

◆ eeprom_read_long_double()

long double eeprom_read_long_double ( const long double * __p)

Read one long double value (little endian) from EEPROM address __p.

◆ eeprom_read_qword()

uint64_t eeprom_read_qword ( const uint64_t * __p)

Read one 64-bit quad word (little endian) from EEPROM address __p.

◆ eeprom_read_word()

uint16_t eeprom_read_word ( const uint16_t * __p)

Read one 16-bit word (little endian) from EEPROM address __p.

◆ eeprom_update_block()

void eeprom_update_block ( const void * __src,
void * __dst,
size_t __n )

Update a block of __n bytes at EEPROM address __dst from __src.

Note
The argument order is mismatch with common functions like strcpy().

◆ eeprom_update_byte()

void eeprom_update_byte ( uint8_t * __p,
uint8_t __value )

Update a byte __value at EEPROM address __p.

◆ eeprom_update_double()

void eeprom_update_double ( double * __p,
double __value )

Update a double __value at EEPROM address __p.

◆ eeprom_update_dword()

void eeprom_update_dword ( uint32_t * __p,
uint32_t __value )

Update a 32-bit double word __value at EEPROM address __p.

◆ eeprom_update_float()

void eeprom_update_float ( float * __p,
float __value )

Update a float __value at EEPROM address __p.

◆ eeprom_update_long_double()

void eeprom_update_long_double ( long double * __p,
long double __value )

Update a long double __value at EEPROM address __p.

◆ eeprom_update_qword()

void eeprom_update_qword ( uint64_t * __p,
uint64_t __value )

Update a 64-bit quad word __value at EEPROM address __p.

◆ eeprom_update_word()

void eeprom_update_word ( uint16_t * __p,
uint16_t __value )

Update a word __value at EEPROM address __p.

◆ eeprom_write_block()

void eeprom_write_block ( const void * __src,
void * __dst,
size_t __n )

Write a block of __n bytes to EEPROM address __dst from __src.

Note
The argument order is mismatch with common functions like strcpy().

◆ eeprom_write_byte()

void eeprom_write_byte ( uint8_t * __p,
uint8_t __value )

Write a byte __value to EEPROM address __p.

◆ eeprom_write_double()

void eeprom_write_double ( double * __p,
double __value )

Write a double __value to EEPROM address __p.

◆ eeprom_write_dword()

void eeprom_write_dword ( uint32_t * __p,
uint32_t __value )

Write a 32-bit double word __value to EEPROM address __p.

◆ eeprom_write_float()

void eeprom_write_float ( float * __p,
float __value )

Write a float __value to EEPROM address __p.

◆ eeprom_write_long_double()

void eeprom_write_long_double ( long double * __p,
long double __value )

Write a long double __value to EEPROM address __p.

◆ eeprom_write_qword()

void eeprom_write_qword ( uint64_t * __p,
uint64_t __value )

Write a 64-bit quad word __value to EEPROM address __p.

◆ eeprom_write_word()

void eeprom_write_word ( uint16_t * __p,
uint16_t __value )

Write a word __value to EEPROM address __p.