-
-
Notifications
You must be signed in to change notification settings - Fork 49
Commit b94e757
Fix SPISettings name collision in ArduinoISP sketch when compiled in bitbanged SPI mode for board using ArduinoCore-API
When using bit banged SPI, which the sketch did when compiled for any architecture other than AVR, a `SPISettings` class was declared by the sketch. At the time the sketch was written, it was reasonable to expect this would not cause a name collision, since SPI.h is not `#include`d when doing bit banged SPI. However, since then a `SPISettings` class has been declared in [ArduinoCore-API's HardwareSPI.h](https://github.com/arduino/ArduinoCore-API/blob/932c7c7d4d4d334b10484284cc846672ad59607c/api/HardwareSPI.h#L37), causing the ArduinoISP sketch to not compile for any board whose core uses ArduinoCoreAPI (currently Arduino Mega AVR Boards, "Arduino nRF528x Boards (Mbed OS]", and "Arduino Mbed OS Boards (nRF52840 / STM32H747)"):
```
/github/workspace/examples/11.ArduinoISP/ArduinoISP/ArduinoISP.ino:191:27: error: reference to 'SPISettings' is ambiguous
void beginTransaction(SPISettings settings) {
^~~~~~~~~~~
/github/workspace/examples/11.ArduinoISP/ArduinoISP/ArduinoISP.ino:167:7: note: candidates are: class SPISettings
class SPISettings {
^~~~~~~~~~~
In file included from /github/home/.arduino15/packages/arduino/hardware/megaavr/1.8.6/cores/arduino/api/ArduinoAPI.h:31:0,
from /github/home/.arduino15/packages/arduino/hardware/megaavr/1.8.6/cores/arduino/Arduino.h:23,
from /github/workspace/examples/11.ArduinoISP/ArduinoISP/ArduinoISP.ino:39:
/github/home/.arduino15/packages/arduino/hardware/megaavr/1.8.6/cores/arduino/api/HardwareSPI.h:37:7: note: class arduino::SPISettings
class SPISettings {
^~~~~~~~~~~
```
The fix is to use the `ARDUINO_API_VERSION` macro defined by ArduinoCore-API to detect when it is in use and make the bitbanged SPI code use the `SPISettings` class from ArduinoCore-API in this case.1 parent 50228bf commit b94e757
1 file changed
+9
-5
lines changedOriginal file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
164 | 164 |
| |
165 | 165 |
| |
166 | 166 |
| |
167 | + | ||
167 | 168 |
| |
168 | 169 |
| |
169 | 170 |
| |
170 | - | ||
171 | + | ||
171 | 172 |
| |
172 | 173 |
| |
173 | 174 |
| |
174 | 175 |
| |
175 | - | ||
176 | - | ||
176 | + | ||
177 | + | ||
178 | + | ||
177 | 179 |
| |
178 | - | ||
180 | + | ||
181 | + | ||
179 | 182 |
| |
183 | + | ||
180 | 184 |
| |
181 | 185 |
| |
182 | 186 |
| |
| |||
189 | 193 |
| |
190 | 194 |
| |
191 | 195 |
| |
192 | - | ||
196 | + | ||
193 | 197 |
| |
194 | 198 |
| |
195 | 199 |
| |
|
0 commit comments