Legion2 / CorsairLightingProtocol

Control LEDs connected to an Arduino with iCUE, create an unofficial Corsair iCUE compatible Arduino LED controller.
Apache License 2.0
516 stars 64 forks source link

I cant compile code for rp2040... #304

Closed Nikpesu closed 2 years ago

Nikpesu commented 2 years ago

Error Libraries

if i replace "CorsairLightingProtocolTinyUSBHID" to "CorsairLightingProtocolSerial" code works :/

This is textual bit of error:

In file included from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\src/FastLEDController.h:18,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\src/CorsairLightingProtocol.h:34,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\examples\TinyUSB\TinyUSB.ino:16:
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/FastLED.h:14:21: note: '#pragma message: FastLED version 3.004.000'
   14 | #    pragma message "FastLED version 3.004.000"
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/FastLED.h:48,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\src/FastLEDController.h:18,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\src/CorsairLightingProtocol.h:34,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\examples\TinyUSB\TinyUSB.ino:16:
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/fastpin.h:120:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  120 |  inline void hi(register port_ptr_t port) __attribute__ ((always_inline)) { *port |= mPinMask; }
      |                                     ^~~~
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/fastpin.h:121:37: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  121 |  inline void lo(register port_ptr_t port) __attribute__ ((always_inline)) { *port &= ~mPinMask; }
      |                                     ^~~~
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/fastpin.h:122:34: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  122 |  inline void set(register port_t val) __attribute__ ((always_inline)) { *mPort = val; }
      |                                  ^~~
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/fastpin.h:124:42: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  124 |  inline void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port  = val; }
      |                                          ^~~~
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/fastpin.h:124:64: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  124 |  inline void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port  = val; }
      |                                                                ^~~
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\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)) { }
      |                                            ^~~~
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\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)) { }
      |                                            ^~~~
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\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)) { }
      |                                         ^~~
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\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)) { }
      |                                                 ^~~~
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\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 C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/FastLED.h:49,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\src/FastLEDController.h:18,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\src/CorsairLightingProtocol.h:34,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\examples\TinyUSB\TinyUSB.ino:16:
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\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; }
      |                                                                                  ^~~~
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\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); }
      |                                                                                  ^~~~
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\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 C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/platforms/arm/rp2040/fastled_arm_rp2040.h:5,
                 from C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/platforms.h:35,
                 from C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/FastLED.h:52,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\src/FastLEDController.h:18,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\src/CorsairLightingProtocol.h:34,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\examples\TinyUSB\TinyUSB.ino:16:
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/platforms/arm/rp2040/fastpin_arm_rp2040.h:28:42: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   28 |   inline static void set(register port_t val) __attribute__ ((always_inline)) { sio_hw->gpio_out = val; }
      |                                          ^~~
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/platforms/arm/rp2040/fastpin_arm_rp2040.h:34:45: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   34 |   inline static void hi(register port_ptr_t port) __attribute__ ((always_inline)) { hi(); }
      |                                             ^~~~
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/platforms/arm/rp2040/fastpin_arm_rp2040.h:35:45: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   35 |   inline static void lo(register port_ptr_t port) __attribute__ ((always_inline)) { lo(); }
      |                                             ^~~~
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/platforms/arm/rp2040/fastpin_arm_rp2040.h:36:50: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   36 |   inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port = val; }
      |                                                  ^~~~
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/platforms/arm/rp2040/fastpin_arm_rp2040.h:36:72: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   36 |   inline static void fastset(register port_ptr_t port, register port_t val) __attribute__ ((always_inline)) { *port = val; }
      |                                                                        ^~~
In file included from C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/platforms/arm/rp2040/clockless_arm_rp2040.h:5,
                 from C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/platforms/arm/rp2040/fastled_arm_rp2040.h:6,
                 from C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/platforms.h:35,
                 from C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/FastLED.h:52,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\src/FastLEDController.h:18,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\src/CorsairLightingProtocol.h:34,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\examples\TinyUSB\TinyUSB.ino:16:
c:\users\nikpe\documents\arduino\libraries\fastled-rp2040\src\platforms\arm\common\m0clockless.h: In function 'int showLedData(volatile uint32_t*, uint32_t, const uint8_t*, uint32_t, M0ClocklessData*)':
c:\users\nikpe\documents\arduino\libraries\fastled-rp2040\src\platforms\arm\common\m0clockless.h:16:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   16 |   register uint32_t scratch=0;
      |                     ^~~~~~~
c:\users\nikpe\documents\arduino\libraries\fastled-rp2040\src\platforms\arm\common\m0clockless.h:17:36: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   17 |   register struct M0ClocklessData *base = pData;
      |                                    ^~~~
c:\users\nikpe\documents\arduino\libraries\fastled-rp2040\src\platforms\arm\common\m0clockless.h:18:31: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   18 |   register volatile uint32_t *port = _port;
      |                               ^~~~
c:\users\nikpe\documents\arduino\libraries\fastled-rp2040\src\platforms\arm\common\m0clockless.h:19:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   19 |   register uint32_t d=0;
      |                     ^
c:\users\nikpe\documents\arduino\libraries\fastled-rp2040\src\platforms\arm\common\m0clockless.h:20:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   20 |   register uint32_t counter=num_leds;
      |                     ^~~~~~~
c:\users\nikpe\documents\arduino\libraries\fastled-rp2040\src\platforms\arm\common\m0clockless.h:21:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   21 |   register uint32_t bn=0;
      |                     ^~
c:\users\nikpe\documents\arduino\libraries\fastled-rp2040\src\platforms\arm\common\m0clockless.h:22:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   22 |   register uint32_t b=0;
      |                     ^
c:\users\nikpe\documents\arduino\libraries\fastled-rp2040\src\platforms\arm\common\m0clockless.h:23:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   23 |   register uint32_t bitmask = _bitmask;
      |                     ^~~~~~~
c:\users\nikpe\documents\arduino\libraries\fastled-rp2040\src\platforms\arm\common\m0clockless.h:26:27: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   26 |   register const uint8_t *leds = _leds;
      |                           ^~~~
In file included from C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/fastspi.h:9,
                 from C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/FastLED.h:65,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\src/FastLEDController.h:18,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\src/CorsairLightingProtocol.h:34,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\examples\TinyUSB\TinyUSB.ino:16:
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/fastspi_bitbang.h: At global scope:
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\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) {
      |                                                       ^~~~
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\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); }
      |                                    ^~~~
In file included from C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/FastLED.h:65,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\src/FastLEDController.h:18,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\src/CorsairLightingProtocol.h:34,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\examples\TinyUSB\TinyUSB.ino:16:
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/fastspi.h:160:23: note: '#pragma message: Forcing software SPI - no hardware SPI for you!'
  160 | #      pragma message "Forcing software SPI - no hardware SPI for you!"
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/FastLED.h:66,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\src/FastLEDController.h:18,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\src/CorsairLightingProtocol.h:34,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\examples\TinyUSB\TinyUSB.ino:16:
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\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); }
      |                                                                                ^~~~
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/chipsets.h: In member function 'virtual void LPD6803Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::showPixels(PixelController<RGB_ORDER>&)':
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/chipsets.h:175:31: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  175 |             register uint16_t command;
      |                               ^~~~~~~
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/chipsets.h: In member function 'void P9813Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::writeLed(uint8_t, uint8_t, uint8_t)':
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\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);
      |                    ^~~
C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\examples\TinyUSB\TinyUSB.ino: At global scope:
TinyUSB:31:1: error: 'CorsairLightingProtocolTinyUSBHID' does not name a type; did you mean 'CorsairLightingProtocolController'?
   31 | CorsairLightingProtocolTinyUSBHID cHID(&cLP);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      | CorsairLightingProtocolController
C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\examples\TinyUSB\TinyUSB.ino: In function 'void setup()':
TinyUSB:34:2: error: 'cHID' was not declared in this scope
   34 |  cHID.setup();
      |  ^~~~
C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\examples\TinyUSB\TinyUSB.ino: In function 'void loop()':
TinyUSB:43:2: error: 'cHID' was not declared in this scope
   43 |  cHID.update();
      |  ^~~~
In file included from C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/platforms/arm/rp2040/clockless_arm_rp2040.h:5,
                 from C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/platforms/arm/rp2040/fastled_arm_rp2040.h:6,
                 from C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/platforms.h:35,
                 from C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/FastLED.h:52,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\src/FastLEDController.h:18,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\src/CorsairLightingProtocol.h:34,
                 from C:\Users\nikpe\Documents\Arduino\libraries\CorsairLightingProtocol-dev\examples\TinyUSB\TinyUSB.ino:16:
c:\users\nikpe\documents\arduino\libraries\fastled-rp2040\src\platforms\arm\common\m0clockless.h: In instantiation of 'int showLedData(volatile uint32_t*, uint32_t, const uint8_t*, uint32_t, M0ClocklessData*) [with int HI_OFFSET = 4; int LO_OFFSET = 8; int T1 = 34; int T2 = 84; int T3 = 50; EOrder RGB_ORDER = GRB; int WAIT_TIME = 50; uint32_t = long unsigned int; uint8_t = unsigned char]':
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/platforms/arm/rp2040/clockless_arm_rp2040.h:314:78:   required from 'void ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::showRGBBlocking(PixelController<RGB_ORDER>) [with unsigned char DATA_PIN = 3; int T1 = 34; int T2 = 84; int T3 = 50; EOrder RGB_ORDER = GRB; int XTRA0 = 0; bool FLIP = false; int WAIT_TIME = 50]'
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/platforms/arm/rp2040/clockless_arm_rp2040.h:224:13:   required from 'void ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::showPixels(PixelController<RGB_ORDER>&) [with unsigned char DATA_PIN = 3; int T1 = 34; int T2 = 84; int T3 = 50; EOrder RGB_ORDER = GRB; int XTRA0 = 0; bool FLIP = false; int WAIT_TIME = 50]'
C:\Users\nikpe\Documents\Arduino\libraries\FastLED-rp2040\src/platforms/arm/rp2040/clockless_arm_rp2040.h:221:18:   required from here
c:\users\nikpe\documents\arduino\libraries\fastled-rp2040\src\platforms\arm\common\m0clockless.h:16:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   16 |   register uint32_t scratch=0;
      |                     ^~~~~~~
c:\users\nikpe\documents\arduino\libraries\fastled-rp2040\src\platforms\arm\common\m0clockless.h:17:36: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   17 |   register struct M0ClocklessData *base = pData;
      |                                    ^~~~
c:\users\nikpe\documents\arduino\libraries\fastled-rp2040\src\platforms\arm\common\m0clockless.h:18:31: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   18 |   register volatile uint32_t *port = _port;
      |                               ^~~~
c:\users\nikpe\documents\arduino\libraries\fastled-rp2040\src\platforms\arm\common\m0clockless.h:19:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   19 |   register uint32_t d=0;
      |                     ^
c:\users\nikpe\documents\arduino\libraries\fastled-rp2040\src\platforms\arm\common\m0clockless.h:20:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   20 |   register uint32_t counter=num_leds;
      |                     ^~~~~~~
c:\users\nikpe\documents\arduino\libraries\fastled-rp2040\src\platforms\arm\common\m0clockless.h:21:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   21 |   register uint32_t bn=0;
      |                     ^~
c:\users\nikpe\documents\arduino\libraries\fastled-rp2040\src\platforms\arm\common\m0clockless.h:22:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   22 |   register uint32_t b=0;
      |                     ^
c:\users\nikpe\documents\arduino\libraries\fastled-rp2040\src\platforms\arm\common\m0clockless.h:23:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   23 |   register uint32_t bitmask = _bitmask;
      |                     ^~~~~~~
c:\users\nikpe\documents\arduino\libraries\fastled-rp2040\src\platforms\arm\common\m0clockless.h:26:27: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   26 |   register const uint8_t *leds = _leds;
      |                           ^~~~
exit status 1
'CorsairLightingProtocolTinyUSBHID' does not name a type; did you mean 'CorsairLightingProtocolController'?
Nikpesu commented 2 years ago

I forgot to set USB Stack to Adafruit TinyUSB :O