1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/pkg/nordic_softdevice_ble
Martine Lenders 8f5f6dcacd nordic_softdevice_ble: document working Linux versions
It is not 100% clear if 4.12 is the last version the softdevice is able
to interact with, but newer kernel versions than 4.12 definitely
don't work (we tried 4.15 on Ubuntu 18.04 and 4.20 on a quite recent
Arch).

The reason I believe it's the 4.12 that last worked is that in the
documentation of the nRF5 SDK it is mentioned for something called
"legacy mode" [1]. However, we are using the nRF5 *IoT* SDK which
doesn't mention this legacy mode at all.

I don't know if we can update the `pkg` to the other SDK, so I just
updated the documentation accordingly for now.

[1]: https://www.nordicsemi.com/DocLib/Content/SDK_Doc/nRF5_SDK/v15-2-0/group__ble__6lowpan__config?9932#ga5285fd3eaf403092286f607cd66850f3
2019-01-18 14:46:13 +01:00
..
src pkg/nordic_softdevice_ble: Use MAC48 as hardware address 2019-01-17 18:08:55 +01:00
doc.txt pkg/nordic_softdevice_ble: add missing documentation 2018-03-01 15:31:08 +01:00
Makefile pkg: add prepare targets 2017-06-28 14:39:05 +02:00
Makefile.include nrf_softdevice_ble: blacklist LLVM/clang 2018-09-09 16:15:16 +02:00
Makefile.module nrf52dk: add BLE/6lo support utilizing Nordic's SoftDevice 2016-07-13 17:06:57 +02:00
README-BLE-6LoWPAN.md nordic_softdevice_ble: document working Linux versions 2019-01-18 14:46:13 +01:00
README.md nrf52dk: add BLE/6lo support utilizing Nordic's SoftDevice 2016-07-13 17:06:57 +02:00

Overview

This package provides necessary Makefiles and glue code to use the Nordic S132 SoftDevice as Bluetooth BLE transport for RIOT's 6lowpan stack.

Usage

"gnrc_netdev_default" has a dependency to "nordic_softdevice_ble", so all examples automatically download the SDK and compile / link / flash all needed code.

If you want to manually set up included modules, add "USEPKG += nordic_softdevice_ble" to your application's Makefile.

See README-BLE-6LoWPAN.md for instructions on how to set up 6lowpan over BLE on Linux.

Known issues

  • floating point ABI mismatch

The Nordic binaries are compiled using hard float ABI, which RIOT currently doesn't support (RIOT's context switching code doesn't preserve the floating point registers). If the softdevice is compiled in, RIOT will be compiled with hard float ABI in order for the linking to succeed. This works for some application, but will lead to serious and hard-to-find bugs for code using floating point instructions.

Hopefully, either the RIOT community adds hard-float support, or Nordic releases a soft-float version of the used binaries.