srwi / FastLEDHub

Control multiple FastLED lightstrip animations on the ESP8266 and ESP32 without reuploading.
GNU Lesser General Public License v2.1
58 stars 3 forks source link

Cannot compile the example sketch in README.MD #10

Closed baqwas closed 1 year ago

baqwas commented 1 year ago

Cannot compile the example shown in README.MD -> Usage -> Creating the main sketch. Only the first error message of the very long list (naturally perhaps owing to my newbie mistake) is shown below:

from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/noise.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:24:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   24 |     inline static void set(register port_t val) __attribute__ ((always_inline)) { if(PIN < 16) { _GPB._GPO = val; } else { GP16O = val; }}
      |                                            ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:3,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/noise.cpp:2:

Board is Generic ESP8266. Tried other variations but still unsuccessful. What would be the recommended board for a Hello World type of exercise?

srwi commented 1 year ago

Are you able to successfully compile a normal FastLED example sketch?

Also the provided output just shows a warning. It would be great if you could show the entire output.

baqwas commented 1 year ago

Hello @stnkl,

Thank you very much for stepping up. Granted 99% are error messages. Here is the error message for a Generic ESP8266 Module board. (I dropped the idea of trying to make it work with the LOLIN(WEMOS) D1 R2 board):

/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:249:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  249 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:250:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  250 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:251:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  251 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytes(uint8_t*, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:270:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  270 |   register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                        ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:271:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  271 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:276:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  276 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:277:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  277 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:278:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  278 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:279:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  279 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:289:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  289 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:290:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  290 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:291:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:292:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  292 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writePixels(PixelController<RGB_ORDER>)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:333:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  333 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:336:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  336 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:339:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  339 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:340:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  340 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:341:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  341 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:342:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  342 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:357:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  357 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:358:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  358 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:359:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  359 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:360:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  360 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:68,
                 from /home/reza/Arduino/libraries/FastLED/src/lib8tion.cpp:3:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:88:80: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   88 |   __attribute__((always_inline)) inline static uint8_t adjust(register uint8_t data) { return ((data>>1) | 0x80) + ((data && (data<254)) & 0x01); }
      |                                                                                ^~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'virtual void LPD6803Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::showPixels(PixelController<RGB_ORDER>&)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:175:31: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  175 |             register uint16_t command;
      |                               ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'void P9813Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::writeLed(uint8_t, uint8_t, uint8_t)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:349:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  349 |   register uint8_t top = 0xC0 | ((~b & 0xC0) >> 2) | ((~g & 0xC0) >> 4) | ((~r & 0xC0) >> 6);
      |                    ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:62:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   62 |  inline void lo(register port_ptr_t port) __attribute__ ((always_inline)) { *port &= ~mPinMask; }
      |                                     ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:63:34: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   63 |  inline void set(register port_t val) __attribute__ ((always_inline)) { *mPort = val; }
      |                                  ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:65:42: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   65 |  inline void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port  = val; }
      |                                          ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:65:64: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   65 |  inline void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port  = val; }
      |                                                                ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:228:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  228 |  inline static void hi(register port_ptr_t port) __attribute__ ((always_inline)) { }
      |                                            ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:229:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  229 |  inline static void lo(register port_ptr_t port) __attribute__ ((always_inline)) { }
      |                                            ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:230:41: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  230 |  inline static void set(register port_t val) __attribute__ ((always_inline)) { }
      |                                         ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:232:49: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |  inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { }
      |                                                 ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:232:71: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |  inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { }
      |                                                                       ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:51,
                 from /home/reza/Arduino/libraries/FastLED/src/hsv2rgb.cpp:4:
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:22:82: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   22 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data) { return data; }
      |                                                                                  ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:23:82: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   23 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data, register uint8_t scale) { return scale8(data, scale); }
      |                                                                                  ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:23:105: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   23 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data, register uint8_t scale) { return scale8(data, scale); }
      |                                                                                                         ^~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:3,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/hsv2rgb.cpp:4:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:24:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   24 |     inline static void set(register port_t val) __attribute__ ((always_inline)) { if(PIN < 16) { _GPB._GPO = val; } else { GP16O = val; }}
      |                                            ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:3,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/hsv2rgb.cpp:4:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:30:47: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   30 |     inline static void hi(register port_ptr_t port) __attribute__ ((always_inline)) { hi(); }
      |                                               ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:31:47: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   31 |     inline static void lo(register port_ptr_t port) __attribute__ ((always_inline)) { lo(); }
      |                                               ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:32:52: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   32 |     inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port = val; }
      |                                                    ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:32:74: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   32 |     inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port = val; }
      |                                                                          ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:4,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/hsv2rgb.cpp:4:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:53:102: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   53 |  template<int BITS> __attribute__ ((always_inline)) inline static bool writeBits(register uint32_t & last_mark, register uint32_t b)  {
      |                                                                                                      ^~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:4,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/hsv2rgb.cpp:4:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:53:131: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   53 |  template<int BITS> __attribute__ ((always_inline)) inline static bool writeBits(register uint32_t & last_mark, register uint32_t b)  {
      |                                                                                                                                   ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h: In static member function 'static bool ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::writeBits(uint32_t&, uint32_t)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:55:27: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   55 |     for(register uint32_t i = BITS; i > 0; --i) {
      |                           ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h: In static member function 'static uint32_t ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::showRGBInternal(PixelController<RGB_ORDER>)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:83:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   83 |   register uint32_t b = pixels.loadAndScale0();
      |                     ^
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:5,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/hsv2rgb.cpp:4:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:73:111: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   73 |    template<int BITS,int PX> __attribute__ ((always_inline)) inline static void writeBits(register uint32_t & last_mark, register Lines & b, PixelController<RGB_ORDER, LANES, PORT_MASK> &pixels) { // , register uint32_t & b2)  {
      |                                                                                                               ^~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:73:139: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   73 |    template<int BITS,int PX> __attribute__ ((always_inline)) inline static void writeBits(register uint32_t & last_mark, register Lines & b, PixelController<RGB_ORDER, LANES, PORT_MASK> &pixels) { // , register uint32_t & b2)  {
      |                                                                                                                                           ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h: In static member function 'static void InlineBlockClocklessController<LANES, FIRST_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::writeBits(uint32_t&, InlineBlockClocklessController<LANES, FIRST_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::Lines&, PixelController<RGB_ORDER, LANES, (((1 << ((LANES < 6) ? LANES : 6)) - 1) & 65535)>&)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:77:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   77 |   register uint8_t d = pixels.template getd<PX>(pixels);
      |                    ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:78:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   78 |   register uint8_t scale = pixels.template getscale<PX>(pixels);
      |                    ^~~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:80:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   80 |   for(register uint32_t i = 0; i < USED_LANES; ++i) {
      |                         ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:95:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   95 |   for(register uint32_t i = USED_LANES; i < 8; ++i) {
      |                         ^
In file included from /home/reza/Arduino/libraries/FastLED/src/fastspi.h:9,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:67,
                 from /home/reza/Arduino/libraries/FastLED/src/hsv2rgb.cpp:4:
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:262:55: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  262 |  template <class D> void writeBytes(register uint8_t *data, int len) {
      |                                                       ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:307:36: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  307 |  void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(data, len); }
      |                                    ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In static member function 'static void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytesValueRaw(uint8_t, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:232:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:237:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  237 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:238:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  238 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:239:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  239 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:240:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  240 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:241:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  241 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:248:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  248 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:249:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  249 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:250:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  250 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:251:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  251 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytes(uint8_t*, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:270:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  270 |   register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                        ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:271:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  271 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:276:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  276 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:277:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  277 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:278:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  278 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:279:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  279 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:289:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  289 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:290:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  290 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:291:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:292:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  292 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writePixels(PixelController<RGB_ORDER>)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:333:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  333 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:336:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  336 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:339:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  339 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:340:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  340 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:341:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  341 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:342:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  342 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:357:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  357 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:358:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  358 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:359:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  359 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:360:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  360 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:68,
                 from /home/reza/Arduino/libraries/FastLED/src/hsv2rgb.cpp:4:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:88:80: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   88 |   __attribute__((always_inline)) inline static uint8_t adjust(register uint8_t data) { return ((data>>1) | 0x80) + ((data && (data<254)) & 0x01); }
      |                                                                                ^~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'virtual void LPD6803Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::showPixels(PixelController<RGB_ORDER>&)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:175:31: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  175 |             register uint16_t command;
      |                               ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'void P9813Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::writeLed(uint8_t, uint8_t, uint8_t)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:349:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  349 |   register uint8_t top = 0xC0 | ((~b & 0xC0) >> 2) | ((~g & 0xC0) >> 4) | ((~r & 0xC0) >> 6);
      |                    ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:62:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   62 |  inline void lo(register port_ptr_t port) __attribute__ ((always_inline)) { *port &= ~mPinMask; }
      |                                     ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:63:34: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   63 |  inline void set(register port_t val) __attribute__ ((always_inline)) { *mPort = val; }
      |                                  ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:65:42: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   65 |  inline void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port  = val; }
      |                                          ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:65:64: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   65 |  inline void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port  = val; }
      |                                                                ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:228:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  228 |  inline static void hi(register port_ptr_t port) __attribute__ ((always_inline)) { }
      |                                            ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:229:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  229 |  inline static void lo(register port_ptr_t port) __attribute__ ((always_inline)) { }
      |                                            ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:230:41: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  230 |  inline static void set(register port_t val) __attribute__ ((always_inline)) { }
      |                                         ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:232:49: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |  inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { }
      |                                                 ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:232:71: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |  inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { }
      |                                                                       ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:51,
                 from /home/reza/Arduino/libraries/FastLED/src/power_mgt.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:22:82: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   22 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data) { return data; }
      |                                                                                  ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:23:82: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   23 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data, register uint8_t scale) { return scale8(data, scale); }
      |                                                                                  ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:23:105: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   23 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data, register uint8_t scale) { return scale8(data, scale); }
      |                                                                                                         ^~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:3,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/power_mgt.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:24:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   24 |     inline static void set(register port_t val) __attribute__ ((always_inline)) { if(PIN < 16) { _GPB._GPO = val; } else { GP16O = val; }}
      |                                            ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:3,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/power_mgt.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:30:47: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   30 |     inline static void hi(register port_ptr_t port) __attribute__ ((always_inline)) { hi(); }
      |                                               ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:31:47: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   31 |     inline static void lo(register port_ptr_t port) __attribute__ ((always_inline)) { lo(); }
      |                                               ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:32:52: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   32 |     inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port = val; }
      |                                                    ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:32:74: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   32 |     inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port = val; }
      |                                                                          ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:4,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/power_mgt.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:53:102: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   53 |  template<int BITS> __attribute__ ((always_inline)) inline static bool writeBits(register uint32_t & last_mark, register uint32_t b)  {
      |                                                                                                      ^~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:4,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/power_mgt.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:53:131: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   53 |  template<int BITS> __attribute__ ((always_inline)) inline static bool writeBits(register uint32_t & last_mark, register uint32_t b)  {
      |                                                                                                                                   ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h: In static member function 'static bool ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::writeBits(uint32_t&, uint32_t)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:55:27: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   55 |     for(register uint32_t i = BITS; i > 0; --i) {
      |                           ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h: In static member function 'static uint32_t ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::showRGBInternal(PixelController<RGB_ORDER>)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:83:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   83 |   register uint32_t b = pixels.loadAndScale0();
      |                     ^
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:5,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/power_mgt.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:73:111: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   73 |    template<int BITS,int PX> __attribute__ ((always_inline)) inline static void writeBits(register uint32_t & last_mark, register Lines & b, PixelController<RGB_ORDER, LANES, PORT_MASK> &pixels) { // , register uint32_t & b2)  {
      |                                                                                                               ^~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:73:139: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   73 |    template<int BITS,int PX> __attribute__ ((always_inline)) inline static void writeBits(register uint32_t & last_mark, register Lines & b, PixelController<RGB_ORDER, LANES, PORT_MASK> &pixels) { // , register uint32_t & b2)  {
      |                                                                                                                                           ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h: In static member function 'static void InlineBlockClocklessController<LANES, FIRST_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::writeBits(uint32_t&, InlineBlockClocklessController<LANES, FIRST_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::Lines&, PixelController<RGB_ORDER, LANES, (((1 << ((LANES < 6) ? LANES : 6)) - 1) & 65535)>&)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:77:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   77 |   register uint8_t d = pixels.template getd<PX>(pixels);
      |                    ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:78:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   78 |   register uint8_t scale = pixels.template getscale<PX>(pixels);
      |                    ^~~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:80:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   80 |   for(register uint32_t i = 0; i < USED_LANES; ++i) {
      |                         ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:95:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   95 |   for(register uint32_t i = USED_LANES; i < 8; ++i) {
      |                         ^
In file included from /home/reza/Arduino/libraries/FastLED/src/fastspi.h:9,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:67,
                 from /home/reza/Arduino/libraries/FastLED/src/power_mgt.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:262:55: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  262 |  template <class D> void writeBytes(register uint8_t *data, int len) {
      |                                                       ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:307:36: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  307 |  void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(data, len); }
      |                                    ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In static member function 'static void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytesValueRaw(uint8_t, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:232:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:237:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  237 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:238:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  238 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:239:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  239 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:240:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  240 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:241:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  241 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:248:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  248 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:249:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  249 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:250:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  250 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:251:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  251 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytes(uint8_t*, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:270:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  270 |   register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                        ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:271:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  271 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:276:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  276 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:277:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  277 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:278:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  278 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:279:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  279 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:289:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  289 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:290:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  290 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:291:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:292:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  292 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writePixels(PixelController<RGB_ORDER>)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:333:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  333 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:336:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  336 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:339:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  339 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:340:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  340 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:341:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  341 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:342:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  342 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:357:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  357 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:358:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  358 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:359:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  359 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:360:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  360 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:68,
                 from /home/reza/Arduino/libraries/FastLED/src/power_mgt.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:88:80: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   88 |   __attribute__((always_inline)) inline static uint8_t adjust(register uint8_t data) { return ((data>>1) | 0x80) + ((data && (data<254)) & 0x01); }
      |                                                                                ^~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'virtual void LPD6803Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::showPixels(PixelController<RGB_ORDER>&)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:175:31: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  175 |             register uint16_t command;
      |                               ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'void P9813Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::writeLed(uint8_t, uint8_t, uint8_t)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:349:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  349 |   register uint8_t top = 0xC0 | ((~b & 0xC0) >> 2) | ((~g & 0xC0) >> 4) | ((~r & 0xC0) >> 6);
      |                    ^~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:307:36: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  307 |  void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(data, len); }
      |                                    ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In static member function 'static void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytesValueRaw(uint8_t, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:232:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:237:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  237 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:238:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  238 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:239:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  239 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:240:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  240 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:241:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  241 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:248:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  248 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:249:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  249 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:250:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  250 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:251:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  251 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytes(uint8_t*, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:270:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  270 |   register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                        ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:271:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  271 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:276:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  276 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:277:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  277 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:278:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  278 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:279:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  279 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:289:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  289 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:290:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  290 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:291:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:292:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  292 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writePixels(PixelController<RGB_ORDER>)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:333:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  333 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:336:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  336 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:339:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  339 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:340:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  340 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:341:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  341 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:342:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  342 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:357:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  357 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:358:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  358 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:359:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  359 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:360:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  360 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:68,
                 from /home/reza/Arduino/libraries/FastLED/src/bitswap.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:88:80: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   88 |   __attribute__((always_inline)) inline static uint8_t adjust(register uint8_t data) { return ((data>>1) | 0x80) + ((data && (data<254)) & 0x01); }
      |                                                                                ^~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'virtual void LPD6803Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::showPixels(PixelController<RGB_ORDER>&)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:175:31: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  175 |             register uint16_t command;
      |                               ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'void P9813Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::writeLed(uint8_t, uint8_t, uint8_t)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:349:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  349 |   register uint8_t top = 0xC0 | ((~b & 0xC0) >> 2) | ((~g & 0xC0) >> 4) | ((~r & 0xC0) >> 6);
      |                    ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/fastspi.h:9,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:67,
                 from /home/reza/Arduino/libraries/FastLED/src/noise.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:262:55: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  262 |  template <class D> void writeBytes(register uint8_t *data, int len) {
      |                                                       ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:307:36: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  307 |  void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(data, len); }
      |                                    ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In static member function 'static void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytesValueRaw(uint8_t, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:232:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:237:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  237 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:238:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  238 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:239:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  239 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:240:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  240 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:241:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  241 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:248:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  248 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:249:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  249 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:250:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  250 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:251:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  251 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytes(uint8_t*, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:270:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  270 |   register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                        ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:271:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  271 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:276:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  276 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:277:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  277 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:278:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  278 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:279:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  279 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:289:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  289 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:290:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  290 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:291:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:292:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  292 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writePixels(PixelController<RGB_ORDER>)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:333:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  333 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:336:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  336 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:339:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  339 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:340:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  340 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:341:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  341 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:342:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  342 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:357:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  357 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:358:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  358 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:359:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  359 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:360:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  360 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:68,
                 from /home/reza/Arduino/libraries/FastLED/src/noise.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:88:80: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   88 |   __attribute__((always_inline)) inline static uint8_t adjust(register uint8_t data) { return ((data>>1) | 0x80) + ((data && (data<254)) & 0x01); }
      |                                                                                ^~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'virtual void LPD6803Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::showPixels(PixelController<RGB_ORDER>&)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:175:31: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  175 |             register uint16_t command;
      |                               ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'void P9813Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::writeLed(uint8_t, uint8_t, uint8_t)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:349:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  349 |   register uint8_t top = 0xC0 | ((~b & 0xC0) >> 2) | ((~g & 0xC0) >> 4) | ((~r & 0xC0) >> 6);
      |                    ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:50,
                 from /home/reza/Arduino/libraries/FastLED/src/wiring.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:61:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   61 |  inline void hi(register port_ptr_t port) __attribute__ ((always_inline)) { *port |= mPinMask; }
      |                                     ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:62:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   62 |  inline void lo(register port_ptr_t port) __attribute__ ((always_inline)) { *port &= ~mPinMask; }
      |                                     ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:63:34: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   63 |  inline void set(register port_t val) __attribute__ ((always_inline)) { *mPort = val; }
      |                                  ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:65:42: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   65 |  inline void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port  = val; }
      |                                          ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:65:64: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   65 |  inline void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port  = val; }
      |                                                                ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:228:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  228 |  inline static void hi(register port_ptr_t port) __attribute__ ((always_inline)) { }
      |                                            ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:229:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  229 |  inline static void lo(register port_ptr_t port) __attribute__ ((always_inline)) { }
      |                                            ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:230:41: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  230 |  inline static void set(register port_t val) __attribute__ ((always_inline)) { }
      |                                         ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:232:49: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |  inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { }
      |                                                 ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:232:71: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |  inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { }
      |                                                                       ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:51,
                 from /home/reza/Arduino/libraries/FastLED/src/wiring.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:22:82: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   22 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data) { return data; }
      |                                                                                  ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:23:82: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   23 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data, register uint8_t scale) { return scale8(data, scale); }
      |                                                                                  ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:23:105: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   23 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data, register uint8_t scale) { return scale8(data, scale); }
      |                                                                                                         ^~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:3,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/wiring.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:24:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   24 |     inline static void set(register port_t val) __attribute__ ((always_inline)) { if(PIN < 16) { _GPB._GPO = val; } else { GP16O = val; }}
      |                                            ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:3,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/wiring.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:30:47: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   30 |     inline static void hi(register port_ptr_t port) __attribute__ ((always_inline)) { hi(); }
      |                                               ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:31:47: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   31 |     inline static void lo(register port_ptr_t port) __attribute__ ((always_inline)) { lo(); }
      |                                               ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:32:52: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   32 |     inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port = val; }
      |                                                    ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:32:74: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   32 |     inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port = val; }
      |                                                                          ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:4,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/wiring.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:53:102: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   53 |  template<int BITS> __attribute__ ((always_inline)) inline static bool writeBits(register uint32_t & last_mark, register uint32_t b)  {
      |                                                                                                      ^~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:4,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/wiring.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:53:131: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   53 |  template<int BITS> __attribute__ ((always_inline)) inline static bool writeBits(register uint32_t & last_mark, register uint32_t b)  {
      |                                                                                                                                   ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h: In static member function 'static bool ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::writeBits(uint32_t&, uint32_t)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:55:27: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   55 |     for(register uint32_t i = BITS; i > 0; --i) {
      |                           ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h: In static member function 'static uint32_t ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::showRGBInternal(PixelController<RGB_ORDER>)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:83:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   83 |   register uint32_t b = pixels.loadAndScale0();
      |                     ^
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:5,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Arduino/libraries/FastLED/src/wiring.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:73:111: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   73 |    template<int BITS,int PX> __attribute__ ((always_inline)) inline static void writeBits(register uint32_t & last_mark, register Lines & b, PixelController<RGB_ORDER, LANES, PORT_MASK> &pixels) { // , register uint32_t & b2)  {
      |                                                                                                               ^~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:73:139: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   73 |    template<int BITS,int PX> __attribute__ ((always_inline)) inline static void writeBits(register uint32_t & last_mark, register Lines & b, PixelController<RGB_ORDER, LANES, PORT_MASK> &pixels) { // , register uint32_t & b2)  {
      |                                                                                                                                           ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h: In static member function 'static void InlineBlockClocklessController<LANES, FIRST_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::writeBits(uint32_t&, InlineBlockClocklessController<LANES, FIRST_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::Lines&, PixelController<RGB_ORDER, LANES, (((1 << ((LANES < 6) ? LANES : 6)) - 1) & 65535)>&)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:77:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   77 |   register uint8_t d = pixels.template getd<PX>(pixels);
      |                    ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:78:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   78 |   register uint8_t scale = pixels.template getscale<PX>(pixels);
      |                    ^~~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:80:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   80 |   for(register uint32_t i = 0; i < USED_LANES; ++i) {
      |                         ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:95:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   95 |   for(register uint32_t i = USED_LANES; i < 8; ++i) {
      |                         ^
In file included from /home/reza/Arduino/libraries/FastLED/src/fastspi.h:9,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:67,
                 from /home/reza/Arduino/libraries/FastLED/src/wiring.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:262:55: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  262 |  template <class D> void writeBytes(register uint8_t *data, int len) {
      |                                                       ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:307:36: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  307 |  void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(data, len); }
      |                                    ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In static member function 'static void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytesValueRaw(uint8_t, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:232:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:237:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  237 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:238:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  238 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:239:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  239 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:240:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  240 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:241:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  241 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:248:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  248 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:249:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  249 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:250:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  250 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:251:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  251 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytes(uint8_t*, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:270:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  270 |   register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                        ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:271:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  271 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:276:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  276 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:277:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  277 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:278:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  278 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:279:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  279 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:289:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  289 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:290:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  290 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:291:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:292:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  292 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writePixels(PixelController<RGB_ORDER>)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:333:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  333 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:336:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  336 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:339:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  339 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:340:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  340 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:341:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  341 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:342:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  342 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:357:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  357 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:358:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  358 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:359:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  359 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:360:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  360 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:68,
                 from /home/reza/Arduino/libraries/FastLED/src/wiring.cpp:2:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:88:80: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   88 |   __attribute__((always_inline)) inline static uint8_t adjust(register uint8_t data) { return ((data>>1) | 0x80) + ((data && (data<254)) & 0x01); }
      |                                                                                ^~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'virtual void LPD6803Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::showPixels(PixelController<RGB_ORDER>&)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:175:31: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  175 |             register uint16_t command;
      |                               ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'void P9813Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::writeLed(uint8_t, uint8_t, uint8_t)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:349:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  349 |   register uint8_t top = 0xC0 | ((~b & 0xC0) >> 2) | ((~g & 0xC0) >> 4) | ((~r & 0xC0) >> 6);
      |                    ^~~
In file included from /home/reza/Arduino/libraries/WebSockets/src/libb64/cdecode.c:9:
/home/reza/.arduino15/packages/esp8266/hardware/esp8266/3.1.0/cores/esp8266/core_esp8266_features.h:132:38: error: expected ',' or ';' before 'esp_is_8285'
  132 | bool __attribute__((const, nothrow)) esp_is_8285();
      |                                      ^~~~~~~~~~~
In file included from /home/reza/Arduino/libraries/WebSockets/src/libb64/cencode.c:9:
/home/reza/.arduino15/packages/esp8266/hardware/esp8266/3.1.0/cores/esp8266/core_esp8266_features.h:132:38: error: expected ',' or ';' before 'esp_is_8285'
  132 | bool __attribute__((const, nothrow)) esp_is_8285();
      |                                      ^~~~~~~~~~~

exit status 1

Compilation error: exit status 1

FWIW, the simplest FastLED example compiles with the Generic ESP8266 board but I would like to use your library. I've just started using IDE 2 (at 2.0.3 now). I don't have to use ESP8266 for self-paced learning purposes. Let me know which board you would prefer that I do my first test. Thanks.

Regards.

baqwas commented 1 year ago

The output for the compilation of the simplest FastLED example for the same Generic ESP8266 follows below:

In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:50,
                 from /home/reza/Videos/esp32/Blink/HelloBlink/HelloBlink.ino:1:
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:61:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   61 |  inline void hi(register port_ptr_t port) __attribute__ ((always_inline)) { *port |= mPinMask; }
      |                                     ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:62:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   62 |  inline void lo(register port_ptr_t port) __attribute__ ((always_inline)) { *port &= ~mPinMask; }
      |                                     ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:63:34: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   63 |  inline void set(register port_t val) __attribute__ ((always_inline)) { *mPort = val; }
      |                                  ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:65:42: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   65 |  inline void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port  = val; }
      |                                          ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:65:64: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   65 |  inline void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port  = val; }
      |                                                                ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:228:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  228 |  inline static void hi(register port_ptr_t port) __attribute__ ((always_inline)) { }
      |                                            ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:229:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  229 |  inline static void lo(register port_ptr_t port) __attribute__ ((always_inline)) { }
      |                                            ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:230:41: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  230 |  inline static void set(register port_t val) __attribute__ ((always_inline)) { }
      |                                         ^~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:232:49: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |  inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { }
      |                                                 ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastpin.h:232:71: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |  inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { }
      |                                                                       ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:51,
                 from /home/reza/Videos/esp32/Blink/HelloBlink/HelloBlink.ino:1:
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:22:82: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   22 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data) { return data; }
      |                                                                                  ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:23:82: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   23 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data, register uint8_t scale) { return scale8(data, scale); }
      |                                                                                  ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_types.h:23:105: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   23 |     static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data, register uint8_t scale) { return scale8(data, scale); }
      |                                                                                                         ^~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:3,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Videos/esp32/Blink/HelloBlink/HelloBlink.ino:1:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:24:44: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   24 |     inline static void set(register port_t val) __attribute__ ((always_inline)) { if(PIN < 16) { _GPB._GPO = val; } else { GP16O = val; }}
      |                                            ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:3,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Videos/esp32/Blink/HelloBlink/HelloBlink.ino:1:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:30:47: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   30 |     inline static void hi(register port_ptr_t port) __attribute__ ((always_inline)) { hi(); }
      |                                               ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:31:47: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   31 |     inline static void lo(register port_ptr_t port) __attribute__ ((always_inline)) { lo(); }
      |                                               ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:32:52: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   32 |     inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port = val; }
      |                                                    ^~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastpin_esp8266.h:32:74: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   32 |     inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port = val; }
      |                                                                          ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:4,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Videos/esp32/Blink/HelloBlink/HelloBlink.ino:1:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:53:102: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   53 |  template<int BITS> __attribute__ ((always_inline)) inline static bool writeBits(register uint32_t & last_mark, register uint32_t b)  {
      |                                                                                                      ^~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:4,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Videos/esp32/Blink/HelloBlink/HelloBlink.ino:1:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:53:131: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   53 |  template<int BITS> __attribute__ ((always_inline)) inline static bool writeBits(register uint32_t & last_mark, register uint32_t b)  {
      |                                                                                                                                   ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h: In static member function 'static bool ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::writeBits(uint32_t&, uint32_t)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:55:27: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   55 |     for(register uint32_t i = BITS; i > 0; --i) {
      |                           ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h: In static member function 'static uint32_t ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::showRGBInternal(PixelController<RGB_ORDER>)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:83:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   83 |   register uint32_t b = pixels.loadAndScale0();
      |                     ^
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:5,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Videos/esp32/Blink/HelloBlink/HelloBlink.ino:1:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:73:111: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   73 |    template<int BITS,int PX> __attribute__ ((always_inline)) inline static void writeBits(register uint32_t & last_mark, register Lines & b, PixelController<RGB_ORDER, LANES, PORT_MASK> &pixels) { // , register uint32_t & b2)  {
      |                                                                                                               ^~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:73:139: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   73 |    template<int BITS,int PX> __attribute__ ((always_inline)) inline static void writeBits(register uint32_t & last_mark, register Lines & b, PixelController<RGB_ORDER, LANES, PORT_MASK> &pixels) { // , register uint32_t & b2)  {
      |                                                                                                                                           ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h: In static member function 'static void InlineBlockClocklessController<LANES, FIRST_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::writeBits(uint32_t&, InlineBlockClocklessController<LANES, FIRST_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::Lines&, PixelController<RGB_ORDER, LANES, (((1 << ((LANES < 6) ? LANES : 6)) - 1) & 65535)>&)':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:77:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   77 |   register uint8_t d = pixels.template getd<PX>(pixels);
      |                    ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:78:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   78 |   register uint8_t scale = pixels.template getscale<PX>(pixels);
      |                    ^~~~~
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:80:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   80 |   for(register uint32_t i = 0; i < USED_LANES; ++i) {
      |                         ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_block_esp8266.h:95:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   95 |   for(register uint32_t i = USED_LANES; i < 8; ++i) {
      |                         ^
In file included from /home/reza/Arduino/libraries/FastLED/src/fastspi.h:9,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:67,
                 from /home/reza/Videos/esp32/Blink/HelloBlink/HelloBlink.ino:1:
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:262:55: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  262 |  template <class D> void writeBytes(register uint8_t *data, int len) {
      |                                                       ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:307:36: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  307 |  void writeBytes(register uint8_t *data, int len) { writeBytes<DATA_NOP>(data, len); }
      |                                    ^~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In static member function 'static void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytesValueRaw(uint8_t, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:232:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  232 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:237:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  237 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:238:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  238 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:239:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  239 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:240:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  240 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:241:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  241 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:248:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  248 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:249:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  249 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:250:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  250 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:251:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  251 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writeBytes(uint8_t*, int)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:270:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  270 |   register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                        ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:271:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  271 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:276:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  276 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:277:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  277 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:278:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  278 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:279:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  279 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:289:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  289 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:290:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  290 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:291:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  291 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:292:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  292 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h: In member function 'void AVRSoftwareSPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>::writePixels(PixelController<RGB_ORDER>)':
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:333:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  333 |   register data_ptr_t datapin = FastPin<DATA_PIN>::port();
      |                       ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:336:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  336 |    register clock_ptr_t clockpin = FastPin<CLOCK_PIN>::port();
      |                         ^~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:339:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  339 |    register data_t datahi = FastPin<DATA_PIN>::hival();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:340:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  340 |    register data_t datalo = FastPin<DATA_PIN>::loval();
      |                    ^~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:341:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  341 |    register clock_t clockhi = FastPin<CLOCK_PIN>::hival();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:342:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  342 |    register clock_t clocklo = FastPin<CLOCK_PIN>::loval();
      |                     ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:357:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  357 |    register data_t datahi_clockhi = FastPin<DATA_PIN>::hival() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:358:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  358 |    register data_t datalo_clockhi = FastPin<DATA_PIN>::loval() | FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:359:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  359 |    register data_t datahi_clocklo = FastPin<DATA_PIN>::hival() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
/home/reza/Arduino/libraries/FastLED/src/fastspi_bitbang.h:360:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  360 |    register data_t datalo_clocklo = FastPin<DATA_PIN>::loval() & ~FastPin<CLOCK_PIN>::mask();
      |                    ^~~~~~~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:67,
                 from /home/reza/Videos/esp32/Blink/HelloBlink/HelloBlink.ino:1:
/home/reza/Arduino/libraries/FastLED/src/fastspi.h: At global scope:
/home/reza/Arduino/libraries/FastLED/src/fastspi.h:145:23: note: '#pragma message: No hardware SPI pins defined.  All SPI access will default to bitbanged output'
  145 | #      pragma message "No hardware SPI pins defined.  All SPI access will default to bitbanged output"
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:68,
                 from /home/reza/Videos/esp32/Blink/HelloBlink/HelloBlink.ino:1:
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:88:80: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   88 |   __attribute__((always_inline)) inline static uint8_t adjust(register uint8_t data) { return ((data>>1) | 0x80) + ((data && (data<254)) & 0x01); }
      |                                                                                ^~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'virtual void LPD6803Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::showPixels(PixelController<RGB_ORDER>&)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:175:31: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  175 |             register uint16_t command;
      |                               ^~~~~~~
/home/reza/Arduino/libraries/FastLED/src/chipsets.h: In member function 'void P9813Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::writeLed(uint8_t, uint8_t, uint8_t)':
/home/reza/Arduino/libraries/FastLED/src/chipsets.h:349:20: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  349 |   register uint8_t top = 0xC0 | ((~b & 0xC0) >> 2) | ((~g & 0xC0) >> 4) | ((~r & 0xC0) >> 6);
      |                    ^~~
In file included from /home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/fastled_esp8266.h:4,
                 from /home/reza/Arduino/libraries/FastLED/src/platforms.h:34,
                 from /home/reza/Arduino/libraries/FastLED/src/FastLED.h:54,
                 from /home/reza/Videos/esp32/Blink/HelloBlink/HelloBlink.ino:1:
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h: In instantiation of 'static uint32_t ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::showRGBInternal(PixelController<RGB_ORDER>) [with int DATA_PIN = 5; int T1 = 26; int T2 = 26; int T3 = 52; EOrder RGB_ORDER = RGB; int XTRA0 = 0; bool FLIP = false; int WAIT_TIME = 85; uint32_t = unsigned int]':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:41:27:   required from 'void ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::showPixels(PixelController<RGB_ORDER>&) [with int DATA_PIN = 5; int T1 = 26; int T2 = 26; int T3 = 52; EOrder RGB_ORDER = RGB; int XTRA0 = 0; bool FLIP = false; int WAIT_TIME = 85]'
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:38:15:   required from here
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:83:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   83 |   register uint32_t b = pixels.loadAndScale0();
      |                     ^
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h: In instantiation of 'static bool ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::writeBits(uint32_t&, uint32_t) [with int BITS = 8; int DATA_PIN = 5; int T1 = 26; int T2 = 26; int T3 = 52; EOrder RGB_ORDER = RGB; int XTRA0 = 0; bool FLIP = false; int WAIT_TIME = 85; uint32_t = unsigned int]':
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:113:27:   required from 'static uint32_t ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::showRGBInternal(PixelController<RGB_ORDER>) [with int DATA_PIN = 5; int T1 = 26; int T2 = 26; int T3 = 52; EOrder RGB_ORDER = RGB; int XTRA0 = 0; bool FLIP = false; int WAIT_TIME = 85; uint32_t = unsigned int]'
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:41:27:   required from 'void ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::showPixels(PixelController<RGB_ORDER>&) [with int DATA_PIN = 5; int T1 = 26; int T2 = 26; int T3 = 52; EOrder RGB_ORDER = RGB; int XTRA0 = 0; bool FLIP = false; int WAIT_TIME = 85]'
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:38:15:   required from here
/home/reza/Arduino/libraries/FastLED/src/platforms/esp/8266/clockless_esp8266.h:55:27: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   55 |     for(register uint32_t i = BITS; i > 0; --i) {
      |                           ^
. Variables and constants in RAM (global, static), used 28416 / 80192 bytes (35%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ DATA     1496     initialized variables
╠══ RODATA   920      constants       
╚══ BSS      26000    zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 59151 / 65536 bytes (90%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ ICACHE   32768    reserved space for flash instruction cache
╚══ IRAM     26383    code in IRAM    
. Code in flash (default, ICACHE_FLASH_ATTR), used 233828 / 1048576 bytes (22%)
║   SEGMENT  BYTES    DESCRIPTION
╚══ IROM     233828   code in flash   

The final message is Done Compiling. I've haven't rigged my setup to transfer the code to the board. The code is:


#include <FastLED.h>

#define NUM_LEDS 100
#define LED_TYPE WS2813
#define DATA_PIN 5

CRGB leds[NUM_LEDS];

void setup()
{
 FastLED.addLeds<LED_TYPE, DATA_PIN>(leds, NUM_LEDS); 
}

void loop()
{
    leds[0] = CRGB::White; FastLED.show(); delay(30);
    leds[0] = CRGB::Black; FastLED.show(); delay(30);
}

Is there a compiler option to suppress warning messages? Thanks.

Regards.

srwi commented 1 year ago

Looks like there is two things coming together:

  1. Apparently Arduino is now using C++17 and therefore the register keyword does not exist anymore, leading to those warnings. https://github.com/FastLED/FastLED/issues/1457 Unfortunately I couldn't really find a way to specify the C++ version specifically in my tests.
  2. There seems to be a bug in the ESP8266 platform version 3.1.0 which has supposedly been fixed only a few hours ago in version 3.1.1 (https://github.com/esp8266/Arduino/pull/8795). Looks like it surfaces with arduinoWebSockets, which FastLEDHub is using. Could you try updating to 3.1.1?

Unfortunately I can't reproduce the second error on my machine, even not with platform version 3.2.0 so it is a little hard for me to say what exactly is going wrong.

I don't think it really matters which board you use for testing as it should not fail like this for any of them.

srwi commented 1 year ago

For disabling the warning you can add the compiler flag -Wno-register, which will disable this particular warning. Since I don't use the Arduino IDE, I don't know for sure how to set compiler flags there, but it looks like you can change them in the platform.txt file and add the flag to compiler.c.flags.

baqwas commented 1 year ago

Hello @stnkl,

Thanks for your understanding. I will do as you have suggested. I will slowly but surely get there to using FastLEDHub.

Apologies again for seeking help through the Issues section when it was a self-inflicted operator user error.

Regards.

srwi commented 1 year ago

No worries. Let me know if you have any other problems!