When trying to compile my sketch, there is an error claiming that string.h does not exist.
The Wifiu101 library contains a file wifiMDNSResponder.cpp. In that file there is a #include <strings.h> entry.
I have searched the entire hard drive on this iMac and cannot locate the strings.h file.
PickyBiker:
When trying to compile my sketch, there is an error claiming that string.h does not exist.
The Wifiu101 library contains a file wifiMDNSResponder.cpp. In that file there is a #include <strings.h> entry.
Editing WiFiMDNSResponder.cpp to change "strings.h" to "string.h" allows the example "MDNS_WiFiWebServer" to compile without error. There are a number of warnings, but no errors:
In file included from /Users/john/Documents/Arduino/libraries/WiFi101/examples/MDNS_WiFiWebServer/MDNS_WiFiWebServer.ino:31:0:
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.h:51:0: warning: "EXTERNAL_NUM_INTERRUPTS" redefined
#define EXTERNAL_NUM_INTERRUPTS NUM_TOTAL_PINS
^
In file included from /Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/cores/arduino/UART.h:28:0,
from /Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/cores/arduino/Arduino.h:139,
from sketch/MDNS_WiFiWebServer.ino.cpp:1:
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/variants/uno2018/pins_arduino.h:40:0: note: this is the location of the previous definition
#define EXTERNAL_NUM_INTERRUPTS 48
^
In file included from /Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.cpp:20:0:
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.h:51:0: warning: "EXTERNAL_NUM_INTERRUPTS" redefined
#define EXTERNAL_NUM_INTERRUPTS NUM_TOTAL_PINS
^
In file included from /Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/cores/arduino/UART.h:28:0,
from /Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/cores/arduino/Arduino.h:139,
from /Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.h:23,
from /Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.cpp:20:
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/variants/uno2018/pins_arduino.h:40:0: note: this is the location of the previous definition
#define EXTERNAL_NUM_INTERRUPTS 48
^
In file included from /Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.h:23:0,
from /Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.cpp:20:
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.cpp: In member function 'void SPIClass::detachMaskedInterrupts()':
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/cores/arduino/Arduino.h:127:147: warning: invalid conversion from 'volatile uint8_t* {aka volatile unsigned char*}' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
#define getPINnCTRLregister(port, bit_pos) ( ((port != NULL) && (bit_pos < NOT_A_PIN)) ? ((volatile uint8_t *)&(port->PIN0CTRL) + bit_pos) : NULL )
^
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.cpp:134:31: note: in expansion of macro 'getPINnCTRLregister'
uint8_t* pin_ctrl_reg = getPINnCTRLregister(portToPortStruct(shift/8), shift%8);
^
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/cores/arduino/Arduino.h:127:147: warning: invalid conversion from 'volatile uint8_t* {aka volatile unsigned char*}' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
#define getPINnCTRLregister(port, bit_pos) ( ((port != NULL) && (bit_pos < NOT_A_PIN)) ? ((volatile uint8_t *)&(port->PIN0CTRL) + bit_pos) : NULL )
^
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.cpp:145:31: note: in expansion of macro 'getPINnCTRLregister'
uint8_t* pin_ctrl_reg = getPINnCTRLregister(portToPortStruct(shift/8), shift%8);
^
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.cpp: In member function 'void SPIClass::reattachMaskedInterrupts()':
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/cores/arduino/Arduino.h:127:147: warning: invalid conversion from 'volatile uint8_t* {aka volatile unsigned char*}' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
#define getPINnCTRLregister(port, bit_pos) ( ((port != NULL) && (bit_pos < NOT_A_PIN)) ? ((volatile uint8_t *)&(port->PIN0CTRL) + bit_pos) : NULL )
^
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.cpp:159:31: note: in expansion of macro 'getPINnCTRLregister'
uint8_t* pin_ctrl_reg = getPINnCTRLregister(portToPortStruct(shift/8), shift%8);
^
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/cores/arduino/Arduino.h:127:147: warning: invalid conversion from 'volatile uint8_t* {aka volatile unsigned char*}' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
#define getPINnCTRLregister(port, bit_pos) ( ((port != NULL) && (bit_pos < NOT_A_PIN)) ? ((volatile uint8_t *)&(port->PIN0CTRL) + bit_pos) : NULL )
^
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.cpp:169:31: note: in expansion of macro 'getPINnCTRLregister'
uint8_t* pin_ctrl_reg = getPINnCTRLregister(portToPortStruct(shift/8), shift%8);
^
In file included from /Users/john/Documents/Arduino/libraries/WiFi101/src/bus_wrapper/source/nm_bus_wrapper_samd21.cpp:46:0:
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.h:51:0: warning: "EXTERNAL_NUM_INTERRUPTS" redefined
#define EXTERNAL_NUM_INTERRUPTS NUM_TOTAL_PINS
^
In file included from /Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/cores/arduino/UART.h:28:0,
from /Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/cores/arduino/Arduino.h:139,
from /Users/john/Documents/Arduino/libraries/WiFi101/src/bus_wrapper/source/nm_bus_wrapper_samd21.cpp:45:
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/variants/uno2018/pins_arduino.h:40:0: note: this is the location of the previous definition
#define EXTERNAL_NUM_INTERRUPTS 48
^
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/cores/arduino/UNO_compat.cpp:20:2: warning: #warning "ATMEGA328 registers emulation is enabled. You may encounter some speed issue. Please consider to disable it in the Tools menu" [-Wcpp]
#warning "ATMEGA328 registers emulation is enabled. You may encounter some speed issue. Please consider to disable it in the Tools menu"
^
Sketch uses 30042 bytes (61%) of program storage space. Maximum is 49152 bytes.
Global variables use 2607 bytes (42%) of dynamic memory, leaving 3537 bytes for local variables. Maximum is 6144 bytes.
The fact remains that it's very unlikely someone would use an Arduino WiFi Shield 101 on an Uno WiFi Rev2, since the Uno WiFi Rev2 already has WiFi functionality built in.
If PickyBiker really is using an Arduino WiFi Shield 101 on their Uno WiFi Rev2, I'd be interested to to know why, just out of curiosity, and perhaps to determine whether it's worth fixing this issue in the WiFi101 library.
pert:
The fact remains that it's very unlikely someone would use an Arduino WiFi Shield 101 on an Uno WiFi Rev2, since the Uno WiFi Rev2 already has WiFi functionality built in.
I don't know why the OP was (apparently) trying to use the WiFi101 library on the Arduino UNO WiFi Rev 2 since that board uses the "WiFiNINA" (ESP32) library. Perhaps they wanted to use the MDNS example that came with the WiFi101 library. To do that I think they will have to port that example from the WiFi101 library to the WiFiNINA library.
Okay, this is resolved. When I outgrew the memory on the Arduino UNO with a WiFi Shield on it, I switched to the UNO WiFi Rev2 (without a wifi shield). The first time I tried to compile the sketch, it generated the missing strings.h error. I got hung up on tracking that down instead of switching the library from WiFi101 to WiFINina. Once I switched to the correct library and made another couple adjustments, the sketch is compiling normally.
Just a dumb mistake on my part.
Thanks to all all of you for getting me on the right track.
As you know, the Wifi Rev2 doesn't work on my iMac running Win 10. That forces me to use Mac os and that is a real chore for me. I have been working on PC and windows since before windows was invented. I feel like a duck out of water using Mac. I am probably going to give up on this until either they make the the Rev2 work on my system or possibly find an alternative board.