Chat here about code rewrites, mods, etc... with respect to the github project https://github.com/esp8266/Arduino

Moderator: igrr

User avatar
By cosmok82
#14813 Hi everybody.

I ported the SPI code driver of <David Ogilvy> on ESP8266 Arduino IDE, because the previous release of SPI gives me some errors.

I use Ogilvy's code methods with some improvement; that's only a test alpha, but compiling errors of Arduino IDE are the major problem to use it properly.

I found that the IDE cannot expands some of the macros and it fails with lots of the declarations, because "they are not declared in its scope". I think could be a problem with IDE and not with code, but to dispel all doubts I have posted everything on my github.

Follow the errors identified for further troubleshooting:

Code: Select allIn file included from C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/ets_sys.h:12:0,
                 from C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.h:32,
                 from C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:26:
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp: In static member function 'static void SPIClass::begin(uint8)':
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:53:37: error: 'SPI_USER' was not declared in this scope
  SET_PERI_REG_MASK(SPI_USER(SPI_type), SPI_CS_SETUP|SPI_CS_HOLD);
                                     ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:45:34: note: in definition of macro 'ETS_UNCACHED_ADDR'
 #define ETS_UNCACHED_ADDR(addr) (addr)
                                  ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:52:40: note: in expansion of macro 'WRITE_PERI_REG'
 #define SET_PERI_REG_MASK(reg, mask)   WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)))
                                        ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:53:2: note: in expansion of macro 'SET_PERI_REG_MASK'
  SET_PERI_REG_MASK(SPI_USER(SPI_type), SPI_CS_SETUP|SPI_CS_HOLD);
  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:54:42: error: 'SPI_FLASH_MODE' was not declared in this scope
  CLEAR_PERI_REG_MASK(SPI_USER(SPI_type), SPI_FLASH_MODE);
                                          ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:50:98: note: in definition of macro 'WRITE_PERI_REG'
 #define WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)ETS_UNCACHED_ADDR(addr))) = (uint32_t)(val)
                                                                                                  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:54:2: note: in expansion of macro 'CLEAR_PERI_REG_MASK'
  CLEAR_PERI_REG_MASK(SPI_USER(SPI_type), SPI_FLASH_MODE);
  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp: In static member function 'static void SPIClass::end()':
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:60:7: error: no match for 'operator!' (operand type is 'SPIClass')
   if (!SPI)
       ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:60:7: note: candidate is:
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:60:7: note: operator!(bool) <built-in>
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:60:7: note:   no known conversion for argument 1 from 'SPIClass' to 'bool'
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:62:10: error: type 'class SPIClass' argument given to 'delete', expected pointer
   delete SPI;
          ^
In file included from C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/ets_sys.h:12:0,
                 from C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.h:32,
                 from C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:26:
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp: In static member function 'static void SPIClass::spi_clock(uint16, uint8)':
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:123:36: error: 'SPI_CLOCK' was not declared in this scope
   WRITE_PERI_REG(SPI_CLOCK(SPI_type), SPI_CLK_EQU_SYSCLK);
                                    ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:45:34: note: in definition of macro 'ETS_UNCACHED_ADDR'
 #define ETS_UNCACHED_ADDR(addr) (addr)
                                  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:123:3: note: in expansion of macro 'WRITE_PERI_REG'
   WRITE_PERI_REG(SPI_CLOCK(SPI_type), SPI_CLK_EQU_SYSCLK);
   ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:127:36: error: 'SPI_CLOCK' was not declared in this scope
   WRITE_PERI_REG(SPI_CLOCK(SPI_type),
                                    ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:45:34: note: in definition of macro 'ETS_UNCACHED_ADDR'
 #define ETS_UNCACHED_ADDR(addr) (addr)
                                  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:127:3: note: in expansion of macro 'WRITE_PERI_REG'
   WRITE_PERI_REG(SPI_CLOCK(SPI_type),
   ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp: In static member function 'static void SPIClass::spi_tx_byte_order(uint8)':
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:161:38: error: 'SPI_USER' was not declared in this scope
   SET_PERI_REG_MASK(SPI_USER(SPI_type), SPI_WR_BYTE_ORDER);
                                      ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:45:34: note: in definition of macro 'ETS_UNCACHED_ADDR'
 #define ETS_UNCACHED_ADDR(addr) (addr)
                                  ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:52:40: note: in expansion of macro 'WRITE_PERI_REG'
 #define SET_PERI_REG_MASK(reg, mask)   WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)))
                                        ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:161:3: note: in expansion of macro 'SET_PERI_REG_MASK'
   SET_PERI_REG_MASK(SPI_USER(SPI_type), SPI_WR_BYTE_ORDER);
   ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:163:40: error: 'SPI_USER' was not declared in this scope
   CLEAR_PERI_REG_MASK(SPI_USER(SPI_type), SPI_WR_BYTE_ORDER);
                                        ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:45:34: note: in definition of macro 'ETS_UNCACHED_ADDR'
 #define ETS_UNCACHED_ADDR(addr) (addr)
                                  ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:51:40: note: in expansion of macro 'WRITE_PERI_REG'
 #define CLEAR_PERI_REG_MASK(reg, mask) WRITE_PERI_REG((reg), (READ_PERI_REG(reg)&(~(mask))))
                                        ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:163:3: note: in expansion of macro 'CLEAR_PERI_REG_MASK'
   CLEAR_PERI_REG_MASK(SPI_USER(SPI_type), SPI_WR_BYTE_ORDER);
   ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp: In static member function 'static void SPIClass::spi_txd(uint8, uint32)':
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:185:38: error: 'SPI_CMD' was not declared in this scope
  while(READ_PERI_REG(SPI_CMD(SPI_type))&SPI_USR);
                                      ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:45:34: note: in definition of macro 'ETS_UNCACHED_ADDR'
 #define ETS_UNCACHED_ADDR(addr) (addr)
                                  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:185:8: note: in expansion of macro 'READ_PERI_REG'
  while(READ_PERI_REG(SPI_CMD(SPI_type))&SPI_USR);
        ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:185:41: error: 'SPI_USR' was not declared in this scope
  while(READ_PERI_REG(SPI_CMD(SPI_type))&SPI_USR);
                                         ^
In file included from C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/ets_sys.h:12:0,
                 from C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.h:32,
                 from C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:26:
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:187:37: error: 'SPI_USER' was not declared in this scope
  SET_PERI_REG_MASK(SPI_USER(SPI_type), SPI_USR_MOSI);
                                     ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:45:34: note: in definition of macro 'ETS_UNCACHED_ADDR'
 #define ETS_UNCACHED_ADDR(addr) (addr)
                                  ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:52:40: note: in expansion of macro 'WRITE_PERI_REG'
 #define SET_PERI_REG_MASK(reg, mask)   WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)))
                                        ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:187:2: note: in expansion of macro 'SET_PERI_REG_MASK'
  SET_PERI_REG_MASK(SPI_USER(SPI_type), SPI_USR_MOSI);
  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:187:40: error: 'SPI_USR_MOSI' was not declared in this scope
  SET_PERI_REG_MASK(SPI_USER(SPI_type), SPI_USR_MOSI);
                                        ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:50:98: note: in definition of macro 'WRITE_PERI_REG'
 #define WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)ETS_UNCACHED_ADDR(addr))) = (uint32_t)(val)
                                                                                                  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:187:2: note: in expansion of macro 'SET_PERI_REG_MASK'
  SET_PERI_REG_MASK(SPI_USER(SPI_type), SPI_USR_MOSI);
  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:189:42: error: 'SPI_USR_MISO' was not declared in this scope
  CLEAR_PERI_REG_MASK(SPI_USER(SPI_type), SPI_USR_MISO|SPI_USR_COMMAND|SPI_USR_ADDR|SPI_USR_DUMMY);
                                          ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:50:98: note: in definition of macro 'WRITE_PERI_REG'
 #define WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)ETS_UNCACHED_ADDR(addr))) = (uint32_t)(val)
                                                                                                  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:189:2: note: in expansion of macro 'CLEAR_PERI_REG_MASK'
  CLEAR_PERI_REG_MASK(SPI_USER(SPI_type), SPI_USR_MISO|SPI_USR_COMMAND|SPI_USR_ADDR|SPI_USR_DUMMY);
  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:189:71: error: 'SPI_USR_ADDR' was not declared in this scope
  CLEAR_PERI_REG_MASK(SPI_USER(SPI_type), SPI_USR_MISO|SPI_USR_COMMAND|SPI_USR_ADDR|SPI_USR_DUMMY);
                                                                       ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:50:98: note: in definition of macro 'WRITE_PERI_REG'
 #define WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)ETS_UNCACHED_ADDR(addr))) = (uint32_t)(val)
                                                                                                  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:189:2: note: in expansion of macro 'CLEAR_PERI_REG_MASK'
  CLEAR_PERI_REG_MASK(SPI_USER(SPI_type), SPI_USR_MISO|SPI_USR_COMMAND|SPI_USR_ADDR|SPI_USR_DUMMY);
  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:189:84: error: 'SPI_USR_DUMMY' was not declared in this scope
  CLEAR_PERI_REG_MASK(SPI_USER(SPI_type), SPI_USR_MISO|SPI_USR_COMMAND|SPI_USR_ADDR|SPI_USR_DUMMY);
                                                                                    ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:50:98: note: in definition of macro 'WRITE_PERI_REG'
 #define WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)ETS_UNCACHED_ADDR(addr))) = (uint32_t)(val)
                                                                                                  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:189:2: note: in expansion of macro 'CLEAR_PERI_REG_MASK'
  CLEAR_PERI_REG_MASK(SPI_USER(SPI_type), SPI_USR_MISO|SPI_USR_COMMAND|SPI_USR_ADDR|SPI_USR_DUMMY);
  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:191:35: error: 'SPI_USER1' was not declared in this scope
  WRITE_PERI_REG(SPI_USER1(SPI_type), ((no_bits-1)&SPI_USR_MOSI_BITLEN)<<SPI_USR_MOSI_BITLEN_S); //set bits in MOSI BITLEN. Clears all ADDR/MISO/DUMMY BITLENs!
                                   ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:45:34: note: in definition of macro 'ETS_UNCACHED_ADDR'
 #define ETS_UNCACHED_ADDR(addr) (addr)
                                  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:191:2: note: in expansion of macro 'WRITE_PERI_REG'
  WRITE_PERI_REG(SPI_USER1(SPI_type), ((no_bits-1)&SPI_USR_MOSI_BITLEN)<<SPI_USR_MOSI_BITLEN_S); //set bits in MOSI BITLEN. Clears all ADDR/MISO/DUMMY BITLENs!
  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:191:51: error: 'SPI_USR_MOSI_BITLEN' was not declared in this scope
  WRITE_PERI_REG(SPI_USER1(SPI_type), ((no_bits-1)&SPI_USR_MOSI_BITLEN)<<SPI_USR_MOSI_BITLEN_S); //set bits in MOSI BITLEN. Clears all ADDR/MISO/DUMMY BITLENs!
                                                   ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:50:98: note: in definition of macro 'WRITE_PERI_REG'
 #define WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)ETS_UNCACHED_ADDR(addr))) = (uint32_t)(val)
                                                                                                  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:191:73: error: 'SPI_USR_MOSI_BITLEN_S' was not declared in this scope
  WRITE_PERI_REG(SPI_USER1(SPI_type), ((no_bits-1)&SPI_USR_MOSI_BITLEN)<<SPI_USR_MOSI_BITLEN_S); //set bits in MOSI BITLEN. Clears all ADDR/MISO/DUMMY BITLENs!
                                                                         ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:50:98: note: in definition of macro 'WRITE_PERI_REG'
 #define WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)ETS_UNCACHED_ADDR(addr))) = (uint32_t)(val)
                                                                                                  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:194:33: error: 'SPI_W0' was not declared in this scope
   WRITE_PERI_REG(SPI_W0(SPI_type), data<<(32-no_bits));
                                 ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:45:34: note: in definition of macro 'ETS_UNCACHED_ADDR'
 #define ETS_UNCACHED_ADDR(addr) (addr)
                                  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:194:3: note: in expansion of macro 'WRITE_PERI_REG'
   WRITE_PERI_REG(SPI_W0(SPI_type), data<<(32-no_bits));
   ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:201:33: error: 'SPI_W0' was not declared in this scope
   WRITE_PERI_REG(SPI_W0(SPI_type), ((0xFFFFFFFF<<(no_bits - extra_bits)&data)<<(8-extra_bits) | (0xFFFFFFFF>>(32-(no_bits - extra_bits)))&data));
                                 ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:45:34: note: in definition of macro 'ETS_UNCACHED_ADDR'
 #define ETS_UNCACHED_ADDR(addr) (addr)
                                  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:201:3: note: in expansion of macro 'WRITE_PERI_REG'
   WRITE_PERI_REG(SPI_W0(SPI_type), ((0xFFFFFFFF<<(no_bits - extra_bits)&data)<<(8-extra_bits) | (0xFFFFFFFF>>(32-(no_bits - extra_bits)))&data));
   ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:203:33: error: 'SPI_W0' was not declared in this scope
   WRITE_PERI_REG(SPI_W0(SPI_type), data);
                                 ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:45:34: note: in definition of macro 'ETS_UNCACHED_ADDR'
 #define ETS_UNCACHED_ADDR(addr) (addr)
                                  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:203:3: note: in expansion of macro 'WRITE_PERI_REG'
   WRITE_PERI_REG(SPI_W0(SPI_type), data);
   ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:206:36: error: 'SPI_CMD' was not declared in this scope
  SET_PERI_REG_MASK(SPI_CMD(SPI_type), SPI_USR);
                                    ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:45:34: note: in definition of macro 'ETS_UNCACHED_ADDR'
 #define ETS_UNCACHED_ADDR(addr) (addr)
                                  ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:52:40: note: in expansion of macro 'WRITE_PERI_REG'
 #define SET_PERI_REG_MASK(reg, mask)   WRITE_PERI_REG((reg), (READ_PERI_REG(reg)|(mask)))
                                        ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:206:2: note: in expansion of macro 'SET_PERI_REG_MASK'
  SET_PERI_REG_MASK(SPI_CMD(SPI_type), SPI_USR);
  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:206:39: error: 'SPI_USR' was not declared in this scope
  SET_PERI_REG_MASK(SPI_CMD(SPI_type), SPI_USR);
                                       ^
C:\Program Files\ArduinoESP-1.6.1/hardware/tools/esp8266/sdk/include/eagle_soc.h:50:98: note: in definition of macro 'WRITE_PERI_REG'
 #define WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)ETS_UNCACHED_ADDR(addr))) = (uint32_t)(val)
                                                                                                  ^
C:\Program Files\ArduinoESP-1.6.1\hardware\esp8266com\esp8266\libraries\SPI\SPI.cpp:206:2: note: in expansion of macro 'SET_PERI_REG_MASK'
  SET_PERI_REG_MASK(SPI_CMD(SPI_type), SPI_USR);
User avatar
By cosmok82
#15831 After some section tests, I might found an incompatibility from GPIO enabling and the module ESP8266-07.

Image

I made a simple blinking led example and on the GPIO4 it doesn't work, same thing on GPIO15 (that I have to put to GND to upload the sketch).
This could produce lots of problems in case of HSPI implementation.

Do you think it's possible?