33#ifndef _AVR_CPUFUNC_H_
34#define _AVR_CPUFUNC_H_ 1
60#define _NOP() __asm__ __volatile__("nop")
62#define _NOP() __asm__ __volatile__("nop ; [[len=1]]")
79#define _MemoryBarrier() __asm__ __volatile__("" ::: "memory")
82#include <bits/attribs.h>
95#if __AVR_ARCH__ >= 100
96extern __ATTR_ALWAYS_INLINE__ __ATTR_GNU_INLINE__
102 if (__builtin_constant_p (__addr))
103 __asm__ __volatile__ (
"out %i0, %1" "\n\t"
104 "out %i2, %3 ; [[len=2]]"
111 __asm__ __volatile__ (
"out %i0, %1" "\n\t"
112 "st %a2, %3 ; [[len=2]]"
118#elif defined(__AVR_XMEGA__)
119 if (__builtin_constant_p (__addr))
120 __asm__ __volatile__ (
"out %i0, %1" "\n\t"
121 "sts %2, %3 ; [[len=3]]"
128 __asm__ __volatile__ (
"out %i0, %1" "\n\t"
129 "st %a2, %3 ; [[len=2]]"
146#if defined(__AVR_XMEGA__) || defined(CCP_SPM_gc)
147extern __ATTR_ALWAYS_INLINE__ __ATTR_GNU_INLINE__
152 if (__builtin_constant_p (__addr))
153 __asm__ __volatile__ (
"out %i0, %1" " ; [[len=1]]\n\t"
155 "out %i2, %3 ; [[len=1]]"
157 "sts %2, %3 ; [[len=sts]]"
165 __asm__ __volatile__ (
"out %i0, %1" "\n\t"
166 "st %a2, %3 ; [[len=2]]"
void ccp_write_io(volatile void *__ioaddr, uint8_t __value)
void ccp_write_spm(volatile void *__ioaddr, uint8_t __value)
uint16_t uintptr_t
Definition: stdint.h:183
unsigned char uint8_t
Definition: stdint.h:88