AVR-LibC
2.2.0
Standard C library for AVR-GCC
|
AVR-LibC Documentation |
AVR-LibC Development Pages |
||||
Main Page |
User Manual |
Library Reference |
FAQ |
Example Projects |
File List |
Macros | |
#define | _NOP() |
#define | _MemoryBarrier() |
Functions | |
void | ccp_write_io (volatile uint8_t *__ioaddr, uint8_t __value) |
void | ccp_write_spm (volatile uint8_t *__ioaddr, uint8_t __value) |
This header file contains macros that access special functions of the AVR CPU which do not fit into any of the other header files.
#define _MemoryBarrier | ( | ) |
Implement a read/write memory barrier. A memory barrier instructs the compiler to not cache any memory data in registers beyond the barrier. This can sometimes be more effective than blocking certain optimizations by declaring some object with a volatile
qualifier.
See Problems with reordering code for things to be taken into account with respect to compiler optimizations.
#define _NOP | ( | ) |
Execute a no operation (NOP) CPU instruction. This should not be used to implement delays, better use the functions from <util/delay_basic.h> or <util/delay.h> for this. For debugging purposes, a NOP can be useful to have an instruction that is guaranteed to be not optimized away by the compiler, so it can always become a breakpoint in the debugger.
Write __value to IO Register Protected (CCP) IO register at __ioaddr. . See also _PROTECTED_WRITE()
.
Write __value to SPM Instruction Protected (CCP) IO register at __ioaddr. See also _PROTECTED_WRITE_SPM()
.