m5stack / M5StickC-Plus

M5StickCPlus Arduino Library
MIT License
359 stars 90 forks source link

M5StackCPlus Failure to Compile #60

Closed xcs011 closed 4 weeks ago

xcs011 commented 4 weeks ago

Describe the bug

Compile fails appear to be in-part caused by an ESP32 library update, which appears to have broken a bunch of libraries that require it. Much greater detail here: https://github.com/espressif/esp-idf/issues/9184 Appears that GPIO was never supposed to be exposed, and removing access to the struct is causing this issue.

It was fixed in the M5StickC library, but not the StickCPlus: https://github.com/m5stack/M5StickC/pull/171

To reproduce

Attempt to Compile

Expected behavior

Compile success

Screenshots

No response

Environment

Additional context

Full Error Attached In file included from c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:16: c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::spi_begin()': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:231:5: error: 'GPIO' was not declared in this scope 231 | GPIO.out_w1tc = (1 << TFT_CS); \ | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:58:9: note: in expansion of macro 'CS_L' 58 | CS_L; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::spi_end()': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:233:14: error: 'GPIO' was not declared in this scope 233 | #define CS_H GPIO.out_w1ts = (1 << TFT_CS) //;GPIO.out_w1ts = (1 << TFT_CS) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:74:13: note: in expansion of macro 'CS_H' 74 | CS_H; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::spi_begin_read()': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:231:5: error: 'GPIO' was not declared in this scope 231 | GPIO.out_w1tc = (1 << TFT_CS); \ | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:93:9: note: in expansion of macro 'CS_L' 93 | CS_L; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::spi_end_read()': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:233:14: error: 'GPIO' was not declared in this scope 233 | #define CS_H GPIO.out_w1ts = (1 << TFT_CS) //;GPIO.out_w1ts = (1 << TFT_CS) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:112:13: note: in expansion of macro 'CS_H' 112 | CS_H; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::writecommand(uint8_t)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:166:14: error: 'GPIO' was not declared in this scope 166 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC) //;GPIO.out_w1tc = (1 << TFT_DC) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:569:5: note: in expansion of macro 'DC_C' 569 | DC_C; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::writedata(uint8_t)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:167:14: error: 'GPIO' was not declared in this scope 167 | #define DC_D GPIO.out_w1ts = (1 << TFT_DC) //;GPIO.out_w1ts = (1 << TFT_DC) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:585:5: note: in expansion of macro 'DC_D' 585 | DC_D; // Play safe, but should already be in data mode | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'uint8_t TFT_eSPI::readcommand8(uint8_t, uint8_t)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:166:14: error: 'GPIO' was not declared in this scope 166 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC) //;GPIO.out_w1tc = (1 << TFT_DC) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:622:5: note: in expansion of macro 'DC_C' 622 | DC_C; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'uint16_t TFT_eSPI::readPixel(int32_t, int32_t)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:233:14: error: 'GPIO' was not declared in this scope 233 | #define CS_H GPIO.out_w1ts = (1 << TFT_CS) //;GPIO.out_w1ts = (1 << TFT_CS) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:748:5: note: in expansion of macro 'CS_H' 748 | CS_H; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::readRect(int32_t, int32_t, int32_t, int32_t, uint16_t*)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:233:14: error: 'GPIO' was not declared in this scope 233 | #define CS_H GPIO.out_w1ts = (1 << TFT_CS) //;GPIO.out_w1ts = (1 << TFT_CS) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:907:5: note: in expansion of macro 'CS_H' 907 | CS_H; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::readRectRGB(int32_t, int32_t, int32_t, int32_t, uint8_t*)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:233:14: error: 'GPIO' was not declared in this scope 233 | #define CS_H GPIO.out_w1ts = (1 << TFT_CS) //;GPIO.out_w1ts = (1 << TFT_CS) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:1589:5: note: in expansion of macro 'CS_H' 1589 | CS_H; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::setWindow(int32_t, int32_t, int32_t, int32_t)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:166:14: error: 'GPIO' was not declared in this scope 166 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC) //;GPIO.out_w1tc = (1 << TFT_DC) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:2949:5: note: in expansion of macro 'DC_C' 2949 | DC_C; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'void TFT_eSPI::readAddrWindow(int32_t, int32_t, int32_t, int32_t)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:166:14: error: 'GPIO' was not declared in this scope 166 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC) //;GPIO.out_w1tc = (1 << TFT_DC) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:3083:5: note: in expansion of macro 'DC_C' 3083 | DC_C; | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp: In member function 'virtual void TFT_eSPI::drawPixel(int32_t, int32_t, uint32_t)': c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.h:166:14: error: 'GPIO' was not declared in this scope 166 | #define DC_C GPIO.out_w1tc = (1 << TFT_DC) //;GPIO.out_w1tc = (1 << TFT_DC) | ^~~~ c:\Users\Laika\Documents\Arduino\libraries\M5StickCPlus\src\utility\In_eSPI.cpp:3318:5: note: in expansion of macro 'DC_C' 3318 | DC_C; | ^~~~

Issue checklist

xcs011 commented 4 weeks ago

Submitted pull request with fixes in #61