#include <cfg/cpu_detect.h>
#include <cfg/compiler.h> /* For intXX_t */
+#include <cfg/cpu.h> /* For CPU_HARVARD */
#if CPU_AVR
})
- #else
+ #else /* !__AVR_ENHANCED__ */
+
#define pgm_read_char(addr) \
({ \
uint16_t __addr16 = (uint16_t)(addr); \
__result; \
})
+ #endif /* !__AVR_ENHANCED__ */
+
+ #if SIZEOF_INT == 2
+ #define pgm_read_int(addr) ((int)pgm_read_uint16_t(addr))
+ #else
+ #error Missing support for CPU word size != 16bit
#endif
#ifndef PROGMEM
#endif
#ifndef PROGMEM
-#define PROGMEM /* nothing */
+#define PROGMEM /* nothing */
#endif
/*!
#ifdef _PROGMEM
#define PGM_READ_CHAR(s) pgm_read_char(s)
#define PGM_FUNC(x) x ## _P
- #define PGM_STR(x) PSTR(x)
+ #define PGM_STR(x) PSTR(x)
#define PGM_ATTR PROGMEM
#else
#define PGM_READ_CHAR(s) (*(s))
#define PGM_FUNC(x) x
- #define PGM_STR(x) x
+ #define PGM_STR(x) x
#define PGM_ATTR /* nothing */
#endif
/* \} */