Microchip® Advanced Software Framework

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Data in Huge Data Memory Space

Due to shortcomings of the GCC compiler for 8-bit AVR, custom functions are needed for access to data beyond the 64 kB boundary, i.e., addresses that are larger than 16-bit.

The definition of huge memory space can differ between architectures, so the implementation is architecture specific.

This module supplies functions for copying a number of bytes between huge and 64 kB data memory space, and is needed solely for code compatibility across compilers.

Modules

 Hugemem implementation for 8-bit AVR.
 
 Generic hugemem implementation.
 

Macros

#define HUGEMEM_NULL   NULL
 
#define HUGEMEM_NULL   0
 

Typedefs

typedef void * hugemem_ptr_t
 
typedef uint32_t hugemem_ptr_t
 Type to use for pointers to huge memory. More...
 

Functions

uint_fast16_t hugemem_read16 (const hugemem_ptr_t from)
 
uint_fast32_t hugemem_read32 (const hugemem_ptr_t from)
 
static uint_fast8_t hugemem_read8 (const hugemem_ptr_t from)
 
void hugemem_read_block (void *to, const hugemem_ptr_t from, size_t size)
 
static void hugemem_write16 (hugemem_ptr_t to, uint16_t val)
 
void hugemem_write16 (hugemem_ptr_t to, uint_fast16_t val)
 Write 16-bit value val to huge memory address to. More...
 
static void hugemem_write32 (hugemem_ptr_t to, uint32_t val)
 
void hugemem_write32 (hugemem_ptr_t to, uint_fast32_t val)
 Write 32-bit value val to huge memory address to. More...
 
static void hugemem_write8 (hugemem_ptr_t to, uint8_t val)
 
static void hugemem_write8 (hugemem_ptr_t to, uint_fast8_t val)
 
void hugemem_write_block (hugemem_ptr_t to, const void *from, size_t size)
 

#define HUGEMEM_NULL   NULL
#define HUGEMEM_NULL   0

typedef void* hugemem_ptr_t

Type to use for pointers to huge memory.

uint_fast16_t hugemem_read16 ( const hugemem_ptr_t  from)
uint_fast32_t hugemem_read32 ( const hugemem_ptr_t  from)
static uint_fast8_t hugemem_read8 ( const hugemem_ptr_t  from)
inlinestatic
void hugemem_read_block ( void *  to,
const hugemem_ptr_t  from,
size_t  size 
)
static void hugemem_write16 ( hugemem_ptr_t  to,
uint16_t  val 
)
inlinestatic
void hugemem_write16 ( hugemem_ptr_t  to,
uint_fast16_t  val 
)

Write 16-bit value val to huge memory address to.

static void hugemem_write32 ( hugemem_ptr_t  to,
uint32_t  val 
)
inlinestatic
void hugemem_write32 ( hugemem_ptr_t  to,
uint_fast32_t  val 
)
static void hugemem_write8 ( hugemem_ptr_t  to,
uint8_t  val 
)
inlinestatic
static void hugemem_write8 ( hugemem_ptr_t  to,
uint_fast8_t  val 
)
inlinestatic
void hugemem_write_block ( hugemem_ptr_t  to,
const void *  from,
size_t  size 
)