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.
|
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 |
Type to use for pointers to huge memory.
void hugemem_read_block |
( |
void * |
to, |
|
|
const hugemem_ptr_t |
from, |
|
|
size_t |
size |
|
) |
| |
Write 16-bit value val to huge memory address to.
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 |
|
) |
| |