Skip to content
This repository was archived by the owner on Apr 16, 2021. It is now read-only.
This repository was archived by the owner on Apr 16, 2021. It is now read-only.

Bug in 1.1.6 release: using namespace mbed clash on Serial definition  #100

Open
@janjongboom

Description

@janjongboom

@facchinm Since the 1.1.6 release of this Arduino core we have naming issues between the Arduino and the Mbed serial interfaces. Has anything changed here?

Arduino: 1.8.13 (Windows 10), Board: “Arduino Nano 33 BLE”

In file included from sketch\static_buffer.ino.cpp:1:0:

C:\Users\kasim\OneDrive\Documents\Arduino\libraries\ei-plant_pot-arduino-1.0.1\examples\static_buffer\static_buffer.ino: In function ‘void setup()’:

C:\Users\kasim\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.6\cores\arduino/Arduino.h:128:16: error: reference to ‘SerialUSB’ is ambiguous

#define Serial SerialUSB

            ^
C:\Users\kasim\OneDrive\Documents\Arduino\libraries\ei-plant_pot-arduino-1.0.1\examples\static_buffer\static_buffer.ino:53:5: note: in expansion of macro ‘Serial’

 Serial.begin(115200);

 ^
In file included from C:\Users\kasim\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.6\cores\arduino/Arduino.h:127:0,

             from sketch\static_buffer.ino.cpp:1:
C:\Users\kasim\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.6\cores\arduino/USB/PluggableUSBSerial.h:279:27: note: candidates are: arduino::USBSerial SerialUSB

extern arduino::USBSerial SerialUSB;

                       ^~~~~~~~~
In file included from sketch\static_buffer.ino.cpp:1:0:

C:\Users\kasim\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.6\cores\arduino/Arduino.h:128:16: note: class mbed::SerialUSB

#define Serial SerialUSB

            ^
C:\Users\kasim\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.6\cores\arduino/mbed/drivers/Serial.h:56:7: note: in expansion of macro ‘Serial’

class Serial : public SerialBase, public Stream, private NonCopyable {

   ^~~~~~
C:\Users\kasim\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.6\cores\arduino/Arduino.h:128:16: error: reference to ‘SerialUSB’ is ambiguous

#define Serial SerialUSB

            ^
C:\Users\kasim\OneDrive\Documents\Arduino\libraries\ei-plant_pot-arduino-1.0.1\examples\static_buffer\static_buffer.ino:55:5: note: in expansion of macro ‘Serial’

 Serial.println("Edge Impulse Inferencing Demo");

 ^
In file included from C:\Users\kasim\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.6\cores\arduino/Arduino.h:127:0,

             from sketch\static_buffer.ino.cpp:1:
C:\Users\kasim\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.6\cores\arduino/USB/PluggableUSBSerial.h:279:27: note: candidates are: arduino::USBSerial SerialUSB

extern arduino::USBSerial SerialUSB;

                       ^~~~~~~~~
In file included from sketch\static_buffer.ino.cpp:1:0:

C:\Users\kasim\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.6\cores\arduino/Arduino.h:128:16: note: class mbed::SerialUSB

#define Serial SerialUSB

            ^
C:\Users\kasim\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.6\cores\arduino/mbed/drivers/Serial.h:56:7: note: in expansion of macro ‘Serial’

class Serial : public SerialBase, public Stream, private NonCopyable {

   ^~~~~~
C:\Users\kasim\OneDrive\Documents\Arduino\libraries\ei-plant_pot-arduino-1.0.1\examples\static_buffer\static_buffer.ino: In function ‘void ei_printf(const char*, …)’:

C:\Users\kasim\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.6\cores\arduino/Arduino.h:128:16: error: reference to ‘SerialUSB’ is ambiguous

#define Serial SerialUSB

            ^
C:\Users\kasim\OneDrive\Documents\Arduino\libraries\ei-plant_pot-arduino-1.0.1\examples\static_buffer\static_buffer.ino:122:9: note: in expansion of macro ‘Serial’

     Serial.write(print_buf);

     ^
In file included from C:\Users\kasim\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.6\cores\arduino/Arduino.h:127:0,

             from sketch\static_buffer.ino.cpp:1:
C:\Users\kasim\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.6\cores\arduino/USB/PluggableUSBSerial.h:279:27: note: candidates are: arduino::USBSerial SerialUSB

extern arduino::USBSerial SerialUSB;

                       ^~~~~~~~~
In file included from sketch\static_buffer.ino.cpp:1:0:

C:\Users\kasim\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.6\cores\arduino/Arduino.h:128:16: note: class mbed::SerialUSB

#define Serial SerialUSB

            ^
C:\Users\kasim\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.6\cores\arduino/mbed/drivers/Serial.h:56:7: note: in expansion of macro ‘Serial’

class Serial : public SerialBase, public Stream, private NonCopyable {

   ^~~~~~
exit status 1

Error compiling for board Arduino Nano 33 BLE.

This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.

Reported in https://forum.edgeimpulse.com/t/deployment-building-firmware-for-arduino-nano-error/625/5

Here is an Arduino library that demonstrates the problem: ei-continuous-gestures-demo-arduino-1.0.9.zip, and this is the sketch that fails to compile:

/* Includes ---------------------------------------------------------------- */
#include <continuous_gestures_demo_inference.h>

/**
 * @brief      Arduino setup function
 */
void setup()
{
    // put your setup code here, to run once:
    Serial.begin(115200);

    Serial.println("Edge Impulse Inferencing Demo");
}

/**
 * @brief      Arduino main function
 */
void loop()
{
    ei_printf("Edge Impulse standalone inferencing (Arduino)\n");

    delay(1000);
}

/**
 * @brief      Printf function uses vsnprintf and output using Arduino Serial
 *
 * @param[in]  format     Variable argument list
 */
void ei_printf(const char *format, ...) {
    static char print_buf[1024] = { 0 };

    va_list args;
    va_start(args, format);
    int r = vsnprintf(print_buf, sizeof(print_buf), format, args);
    va_end(args);

    if (r > 0) {
        Serial.write(print_buf);
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions