Skip to content

[USB] Reorder "core_pins.h" includes for C++ compatibility#767

Open
forderud wants to merge 1 commit intoPaulStoffregen:masterfrom
forderud:core_pins_incl2
Open

[USB] Reorder "core_pins.h" includes for C++ compatibility#767
forderud wants to merge 1 commit intoPaulStoffregen:masterfrom
forderud:core_pins_incl2

Conversation

@forderud
Copy link

@forderud forderud commented Oct 7, 2024

Move the core_pins.h includes in usb.c and usb_seremu.c up to enable building the sources as C++ code. The core_pins.h include needs to be placed above the usb_serial.h and usb_seremu.h includes, since these headers contain C++ code that depends on functions in core_pins.h.

Fixes the following compiler errors if renaming the sources in question from .c to .cpp: In file included from teensy4\usb.cpp:5:

teensy4\usb_seremu.h: In member function 'void usb_seremu_class::begin(long int)': teensy4\usb_seremu.h:68:41: error: 'systick_millis_count' was not declared in this scope
   68 |                 uint32_t millis_begin = systick_millis_count;
      |                                         ^~~~~~~~~~~~~~~~~~~~
teensy4\usb_seremu.h:79:25: error: 'yield' was not declared in this scope
   79 |                         yield();
      |                         ^~~~~
teensy4\usb_seremu.h: In member function 'usb_seremu_class::operator bool()':
teensy4\usb_seremu.h:102:27: error: 'yield' was not declared in this scope
  102 |         operator bool() { yield(); return usb_configuration && usb_seremu_online; }
      |                           ^~~~~
In file included from teensy4\usb_seremu.cpp:32:
teensy4\usb_seremu.h: In member function 'void usb_seremu_class::begin(long int)':
teensy4\usb_seremu.h:68:41: error: 'systick_millis_count' was not declared in this scope
   68 |                 uint32_t millis_begin = systick_millis_count;
      |                                         ^~~~~~~~~~~~~~~~~~~~
teensy4\usb_seremu.h:79:25: error: 'yield' was not declared in this scope
   79 |                         yield();
      |                         ^~~~~
teensy4\usb_seremu.h: In member function 'usb_seremu_class::operator bool()':
teensy4\usb_seremu.h:102:27: error: 'yield' was not declared in this scope
  102 |         operator bool() { yield(); return usb_configuration && usb_seremu_online; }
      |                           ^~~~~

Move the "core_pins.h" includes in usb.c and usb_seremu.c up to enable building the sources as C++ code. The "core_pins.h" include needs to be placed above the "usb_serial.h" and "usb_seremu.h" includes, since these headers contain C++ code that depends on functions in "core_pins.h".

Fixes the following compiler errors if renaming the sources in question from .c to .cpp:
In file included from teensy4\usb.cpp:5:
teensy4\usb_seremu.h: In member function 'void usb_seremu_class::begin(long int)':
teensy4\usb_seremu.h:68:41: error: 'systick_millis_count' was not declared in this scope
   68 |                 uint32_t millis_begin = systick_millis_count;
      |                                         ^~~~~~~~~~~~~~~~~~~~
teensy4\usb_seremu.h:79:25: error: 'yield' was not declared in this scope
   79 |                         yield();
      |                         ^~~~~
teensy4\usb_seremu.h: In member function 'usb_seremu_class::operator bool()':
teensy4\usb_seremu.h:102:27: error: 'yield' was not declared in this scope
  102 |         operator bool() { yield(); return usb_configuration && usb_seremu_online; }
      |                           ^~~~~
In file included from teensy4\usb_seremu.cpp:32:
teensy4\usb_seremu.h: In member function 'void usb_seremu_class::begin(long int)':
teensy4\usb_seremu.h:68:41: error: 'systick_millis_count' was not declared in this scope
   68 |                 uint32_t millis_begin = systick_millis_count;
      |                                         ^~~~~~~~~~~~~~~~~~~~
teensy4\usb_seremu.h:79:25: error: 'yield' was not declared in this scope
   79 |                         yield();
      |                         ^~~~~
teensy4\usb_seremu.h: In member function 'usb_seremu_class::operator bool()':
teensy4\usb_seremu.h:102:27: error: 'yield' was not declared in this scope
  102 |         operator bool() { yield(); return usb_configuration && usb_seremu_online; }
      |                           ^~~~~
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 this pull request may close these issues.

1 participant