Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

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