Skip to content

Can't compile on new Arduino SAMD Cores #24

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
oscgonfer opened this issue Oct 24, 2023 · 0 comments · May be fixed by #25
Open

Can't compile on new Arduino SAMD Cores #24

oscgonfer opened this issue Oct 24, 2023 · 0 comments · May be fixed by #25

Comments

@oscgonfer
Copy link

As of new Arduino SAMD Cores >= 1.8.12 (tested), there is a change that doesn't allow to compile this library. Below there is the outcome of the compilation of the basic example while doing so with version 1.8.12 (1.8.13 is the same). We will do a PR as the fix is quite simple.

In file included from /home/oscar/.arduino15/packages/arduino/tools/CMSIS-Atmel/1.2.0/CMSIS/Device/ATMEL/samd21/include/samd21.h:69:0,
                 from /home/oscar/.arduino15/packages/arduino/tools/CMSIS-Atmel/1.2.0/CMSIS/Device/ATMEL/samd.h:105,
                 from /home/oscar/.arduino15/packages/arduino/hardware/samd/1.8.12/cores/arduino/WVariant.h:22,
                 from /home/oscar/.arduino15/packages/arduino/hardware/samd/1.8.12/variants/arduino_zero/variant.h:39,
                 from /home/oscar/.arduino15/packages/arduino/hardware/samd/1.8.12/libraries/Wire/Wire.h:24,
                 from /home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.h:31,
                 from /home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:29:
/home/oscar/.arduino15/packages/arduino/tools/CMSIS-Atmel/1.2.0/CMSIS/Device/ATMEL/samd21/include/samd21g18a.h:226:0: warning: "LITTLE_ENDIAN" redefined
 #define LITTLE_ENDIAN          1
 
In file included from /home/oscar/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/sys/types.h:67:0,
                 from /home/oscar/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/stdio.h:61,
                 from /home/oscar/.arduino15/packages/arduino/hardware/samd/1.8.12/cores/arduino/api/Print.h:22,
                 from /home/oscar/.arduino15/packages/arduino/hardware/samd/1.8.12/cores/arduino/api/Stream.h:25,
                 from /home/oscar/.arduino15/packages/arduino/hardware/samd/1.8.12/cores/arduino/api/HardwareI2C.h:22,
                 from /home/oscar/.arduino15/packages/arduino/hardware/samd/1.8.12/libraries/Wire/Wire.h:23,
                 from /home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.h:31,
                 from /home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:29:
/home/oscar/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/machine/endian.h:17:0: note: this is the location of the previous definition
 #define LITTLE_ENDIAN _LITTLE_ENDIAN
 
In file included from /home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:29:0:
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.h:76:28: error: 'TwoWire' has not been declared
  CCS811_Status_e beginCore(TwoWire &wirePort);
                            ^~~~~~~
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.h:96:2: error: 'TwoWire' does not name a type; did you mean 'TwoWire_h'?
  TwoWire *_i2cPort; //The generic connection to user's chosen I2C hardware
  ^~~~~~~
  TwoWire_h
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.h:112:13: error: 'TwoWire' has not been declared
  bool begin(TwoWire &wirePort = Wire);         //Use the Wire hardware by default
             ^~~~~~~
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.h:113:34: error: 'TwoWire' has not been declared
  CCS811_Status_e beginWithStatus(TwoWire &wirePort = Wire);    //Use the Wire hardware by default
                                  ^~~~~~~
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.h:112:33: error: could not convert 'Wire' from 'arduino::TwoWire' to 'int&'
  bool begin(TwoWire &wirePort = Wire);         //Use the Wire hardware by default
                                 ^~~~
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.h:113:54: error: could not convert 'Wire' from 'arduino::TwoWire' to 'int&'
  CCS811_Status_e beginWithStatus(TwoWire &wirePort = Wire);    //Use the Wire hardware by default
                                                      ^~~~
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:47:29: error: prototype for 'CCS811Core::CCS811_Status_e CCS811Core::beginCore(arduino::TwoWire&)' does not match any in class 'CCS811Core'
 CCS811Core::CCS811_Status_e CCS811Core::beginCore(TwoWire &wirePort)
                             ^~~~~~~~~~
In file included from /home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:29:0:
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.h:76:18: error: candidate is: CCS811Core::CCS811_Status_e CCS811Core::beginCore(int&)
  CCS811_Status_e beginCore(TwoWire &wirePort);
                  ^~~~~~~~~
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp: In member function 'CCS811Core::CCS811_Status_e CCS811Core::readRegister(uint8_t, uint8_t*)':
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:103:2: error: '_i2cPort' was not declared in this scope
  _i2cPort->beginTransmission(I2CAddress);
  ^~~~~~~~
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:103:2: note: suggested alternative: 'Port'
  _i2cPort->beginTransmission(I2CAddress);
  ^~~~~~~~
  Port
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp: In member function 'CCS811Core::CCS811_Status_e CCS811Core::multiReadRegister(uint8_t, uint8_t*, uint8_t)':
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:139:2: error: '_i2cPort' was not declared in this scope
  _i2cPort->beginTransmission(I2CAddress);
  ^~~~~~~~
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:139:2: note: suggested alternative: 'Port'
  _i2cPort->beginTransmission(I2CAddress);
  ^~~~~~~~
  Port
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp: In member function 'CCS811Core::CCS811_Status_e CCS811Core::writeRegister(uint8_t, uint8_t)':
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:174:2: error: '_i2cPort' was not declared in this scope
  _i2cPort->beginTransmission(I2CAddress);
  ^~~~~~~~
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:174:2: note: suggested alternative: 'Port'
  _i2cPort->beginTransmission(I2CAddress);
  ^~~~~~~~
  Port
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp: In member function 'CCS811Core::CCS811_Status_e CCS811Core::multiWriteRegister(uint8_t, uint8_t*, uint8_t)':
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:205:2: error: '_i2cPort' was not declared in this scope
  _i2cPort->beginTransmission(I2CAddress);
  ^~~~~~~~
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:205:2: note: suggested alternative: 'Port'
  _i2cPort->beginTransmission(I2CAddress);
  ^~~~~~~~
  Port
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp: At global scope:
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:244:6: error: prototype for 'bool CCS811::begin(arduino::TwoWire&)' does not match any in class 'CCS811'
 bool CCS811::begin(TwoWire &wirePort)
      ^~~~~~
In file included from /home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:29:0:
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.h:112:7: error: candidate is: bool CCS811::begin(int&)
  bool begin(TwoWire &wirePort = Wire);         //Use the Wire hardware by default
       ^~~~~
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:258:29: error: prototype for 'CCS811Core::CCS811_Status_e CCS811::beginWithStatus(arduino::TwoWire&)' does not match any in class 'CCS811'
 CCS811Core::CCS811_Status_e CCS811::beginWithStatus(TwoWire &wirePort)
                             ^~~~~~
In file included from /home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:29:0:
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.h:113:18: error: candidate is: CCS811Core::CCS811_Status_e CCS811::beginWithStatus(int&)
  CCS811_Status_e beginWithStatus(TwoWire &wirePort = Wire);    //Use the Wire hardware by default
                  ^~~~~~~~~~~~~~~
exit status 1
@oscgonfer oscgonfer linked a pull request Oct 24, 2023 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant