diff --git a/cores/esp8266/Arduino.h b/cores/esp8266/Arduino.h index e0d29efb5..0393ed9b4 100644 --- a/cores/esp8266/Arduino.h +++ b/cores/esp8266/Arduino.h @@ -27,6 +27,7 @@ #include #include "binary.h" +#include "pgmspace.h" #ifdef __cplusplus extern "C"{ @@ -140,7 +141,6 @@ void loop(void); // On the ATmega1280, the addresses of some of the port registers are // greater than 255, so we can't store them in uint8_t's. -#define PROGMEM #define NOT_A_PIN 0 diff --git a/cores/esp8266/pgmspace.h b/cores/esp8266/pgmspace.h new file mode 100644 index 000000000..11c9533cd --- /dev/null +++ b/cores/esp8266/pgmspace.h @@ -0,0 +1,43 @@ +#ifndef __PGMSPACE_H_ +#define __PGMSPACE_H_ + +#include + +#define PROGMEM +#define PGM_P const char * +#define PSTR(str) (str) + +#define _SFR_BYTE(n) (n) + +typedef void prog_void; +typedef char prog_char; +typedef unsigned char prog_uchar; +typedef int8_t prog_int8_t; +typedef uint8_t prog_uint8_t; +typedef int16_t prog_int16_t; +typedef uint16_t prog_uint16_t; +typedef int32_t prog_int32_t; +typedef uint32_t prog_uint32_t; + +#define memcpy_P(dest, src, num) memcpy((dest), (src), (num)) +#define strcpy_P(dest, src) strcpy((dest), (src)) +#define strcat_P(dest, src) strcat((dest), (src)) +#define strcmp_P(a, b) strcmp((a), (b)) +#define strstr_P(a, b) strstr((a), (b)) +#define strlen_P(s) strlen((const char *)(s)) + +#define pgm_read_byte(addr) (*(const unsigned char *)(addr)) +#define pgm_read_word(addr) (*(const unsigned short *)(addr)) +#define pgm_read_dword(addr) (*(const unsigned long *)(addr)) +#define pgm_read_float(addr) (*(const float *)(addr)) + +#define pgm_read_byte_near(addr) pgm_read_byte(addr) +#define pgm_read_word_near(addr) pgm_read_word(addr) +#define pgm_read_dword_near(addr) pgm_read_dword(addr) +#define pgm_read_float_near(addr) pgm_read_float(addr) +#define pgm_read_byte_far(addr) pgm_read_byte(addr) +#define pgm_read_word_far(addr) pgm_read_word(addr) +#define pgm_read_dword_far(addr) pgm_read_dword(addr) +#define pgm_read_float_far(addr) pgm_read_float(addr) + +#endif //__PGMSPACE_H_