-
-
Notifications
You must be signed in to change notification settings - Fork 8.5k
windows/bluetooth: Add support for nimble BLE to windows port. #7781
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
base: master
Are you sure you want to change the base?
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #7781 +/- ##
=======================================
Coverage 98.38% 98.38%
=======================================
Files 171 171
Lines 22299 22299
=======================================
Hits 21939 21939
Misses 360 360 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
c7a260c
to
91b8429
Compare
91b8429
to
35f5926
Compare
This is an automated heads-up that we've just merged a Pull Request See #13763 A search suggests this PR might apply the STATIC macro to some C code. If it Although this is an automated message, feel free to @-reply to me directly if |
Code size report:
|
6cfd095
to
25c277d
Compare
2d995d1
to
91c0b99
Compare
91c0b99
to
7f1c0f8
Compare
This was developed in conjunction with #7780 to provide support for nimble BLE on windows to the unix port.
This allows a usb/serial HCI controller to be used on windows to test and run bluetooth micropython code.
This has only been added to minwg / make based builds at this stage. The MSVC project has not been updated to match.
I suspect nimble builds may not be possible with MSVC due to a struct size issue that took quite a long time to debug.
Nimble uses struct size to test whether the correct HCI packet has been received, eg.
On linux/unix/arm builds
sizeof(struct ble_hci_ev_command_complete) == 4
as theuint8_t return_params[0];
is essentially ignored.On MSVC apparently this null array is apparently included as size 1, eg.
sizeof(struct ble_hci_ev_command_complete) == 5
- and by default mingw matches MSVC behavior on this. This was causing the code above toreturn BLE_HS_ECONTROLLER
error instead of correctly processing the hci packet.I had to add the compiler flag
-mno-ms-bitfields
to make mingw match "regular" gcc behavior - I don't know if a similar compile flag exists to make MSVC match gcc packed struct size - let alone whether the rest of the nimble codebase is at all compilable under msvc.