Closed PicoEmma closed 6 years ago
@PicoEmma you'll want to post this issue on espressif/arduino. I am only using this fork to improve i2c communications. There are only five files that I am modifiying:
../libraries/Wire/Wire.h ../libraries/Wire/Wire.cpp ../cores/esp32/esp32-hal-i2c.h ../cores/esp32/esp32-hal-i2c.c ../cores/esp32/esp32-hal-log.h
All of the errors you posted refer to:
../libraries/EEPROM/EEPROM.cpp
So, any changes would be lost when my fork is merged back into espressif/arduino.
Chuck.
My apologies. I will bring EEPROM up with them.
After fixing the EEPROM issues the compiler errors out in the i2c file ../cores/esp32/esp32-hal-i2c.c
C:\Users\e\Documents\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-i2c.c:75:5: warning: missing initializer for field 'exitCode' of 'i2c_t {aka struct i2c_struct_t}' [-Wmissing-field-initializers]
{(volatile i2c_dev_t *)(DR_REG_I2C_EXT_BASE_FIXED), NULL, 0,I2C_NONE,I2C_NONE,I2C_ERROR_OK,NULL,NULL,NULL,0,0,0},
^
C:\Users\e\Documents\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-i2c.c:51:14: note: 'exitCode' declared here
uint32_t exitCode;
^
C:\Users\e\Documents\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-i2c.c:76:5: warning: missing initializer for field 'exitCode' of 'i2c_t {aka struct i2c_struct_t}' [-Wmissing-field-initializers]
{(volatile i2c_dev_t *)(DR_REG_I2C1_EXT_BASE_FIXED), NULL, 1,I2C_NONE,I2C_NONE,I2C_ERROR_OK,NULL,NULL,NULL,0,0,0}
^
C:\Users\e\Documents\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-i2c.c:51:14: note: 'exitCode' declared here
uint32_t exitCode;
^
C:\Users\e\Documents\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-i2c.c: In function 'dumpCmdQueue':
C:\Users\e\Documents\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-i2c.c:399:17: warning: variable 'c' set but not used [-Wunused-but-set-variable]
I2C_COMMAND_t c;
^
C:\Users\e\Documents\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-i2c.c: In function 'i2c_isr_handler_default':
C:\Users\e\Documents\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-i2c.c:836:12: warning: unused variable 'oldInt' [-Wunused-variable]
uint32_t oldInt =activeInt;
^
C:\Users\e\Documents\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-i2c.c:813:38: warning: unused variable 'xResult' [-Wunused-variable]
portBASE_TYPE HPTaskAwoken = pdFALSE,xResult;
^
C:\Users\e\Documents\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-i2c.c:813:15: warning: unused variable 'HPTaskAwoken' [-Wunused-variable]
portBASE_TYPE HPTaskAwoken = pdFALSE,xResult;
^
C:\Users\e\Documents\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-i2c.c: In function 'i2cProcQueue':
C:\Users\e\Documents\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-i2c.c:997:12: warning: unused variable 'ret' [-Wunused-variable]
uint32_t ret=xEventGroupClearBits(i2c->i2c_event, 0xFF);
^
C:\Users\e\Documents\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-i2c.c:1111:14: warning: unused variable 'tAfter' [-Wunused-variable]
portTickType tAfter=xTaskGetTickCount();
^
C:\Users\e\Documents\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-i2c.c:1101:14: warning: unused variable 'tBefore' [-Wunused-variable]
portTickType tBefore=xTaskGetTickCount();
^
C:\Users\e\Documents\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-i2c.c: In function 'i2cReleaseISR':
C:\Users\e\Documents\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-i2c.c:1223:13: warning: unused variable 'error' [-Wunused-variable]
esp_err_t error =esp_intr_free(i2c->intr_handle);
^
C:\Users\e\Documents\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-i2c.c: In function 'i2cProcQueue':
C:\Users\e\Documents\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-i2c.c:1088:5: error: 'ret' may be used uninitialized in this function [-Werror=maybe-uninitialized]
if(ret!=ESP_OK){
^
cc1.exe: some warnings being treated as errors
After initializing ret
to 0 everything compiles just fine with warnings but no errors
@PicoEmma Don't apologize for my mistakes. I fixed most of those errors, but, three still exist. I initialize a variable but only use it in a print statement, the compiler complains even though I am using the value:
C:\Users\e\Documents\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-i2c.c: In function 'dumpCmdQueue':
C:\Users\e\Documents\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-i2c.c:399:17: warning: variable 'c' set but not used [-Wunused-but-set-variable]
I2C_COMMAND_t c;
^
C:\Users\e\Documents\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-i2c.c:1111:14: warning: unused variable 'tAfter' [-Wunused-variable]
portTickType tAfter=xTaskGetTickCount();
^
C:\Users\e\Documents\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-i2c.c:1101:14: warning: unused variable 'tBefore' [-Wunused-variable]
portTickType tBefore=xTaskGetTickCount();
^
Do you know how to work around these warnings?
Chuck.
For that first one I see that there is a possibility that the print statement does not get mapped to a method:
#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_ERROR
#define log_e(format, ...) log_printf(ARDUHAL_LOG_FORMAT(E, format), ##__VA_ARGS__)
#else
#define log_e(format, ...) // no mapping
#endif
I'm not sure I have the same files and branch as you have so I don't trust what I'm getting in compilation. But I believe that ensuring that all code paths use the variable will fix the "not used" warning? If you know it isn't going to print in all cases and that is desirable behavior you can probably just ignore the warning
Compiling on Arduino IDE 1.8.5 with maximum compiler warnings causes compilation to fail. (warnings treated as errors).
example console output: