Hi Nordic team,
I'm having a custom board and custom application made for that board. Application is based on the zephyr v2.3.0.
I decided to move to the NCS because i want to try out your Nordic BLE LL controller instead of zephyr BLE controller.
Since the NCS version v1.3.2 uses the same zephyr v2.3.0 underhood i was able to run my application without any problems, but only if i use zephyr BLE LL (CONFIG_BT_LL_SW_SPLIT=y) config.
When configured my application to use Nordic BLE Link Layer implementation (CONFIG_BT_LL_NRFXLIB=y) my device didn't want to bootup at all.
After debugging the issue i have found that the device asserts on some condition inside the hci_core.c file:
[00:00:01.675,140] <inf> bt_ctlr_hci_driver: BLE controller build revision:
6b 05 51 03 45 62 05 0e 65 d1 a0 45 8d a7 b6 24 |k.Q.Eb.. e..E...$
3a 17 ea 5c |:..\
ASSERTION FAIL [!bt_hci_evt_is_prio(hdr->evt)] @ WEST_TOPDIR/zephyr/subsys/bluetooth/host/hci_core.c:5238
[00:00:01.675,872] <err> os: r0/a1: 0x00000003 r1/a2: 0x2002bf50 r2/a3: 0x00000000
[00:00:01.675,903] <err> os: r3/a4: 0x20030cf4 r12/ip: 0xaaaaaaaa r14/lr: 0x0005f763
[00:00:01.675,903] <err> os: xpsr: 0x61000000
[00:00:01.675,933] <err> os: Faulting instruction address (r15/pc): 0x0005f76e
[00:00:01.675,933] <err> os: >>> ZEPHYR FATAL ERROR 3: Kernel oops on CPU 0
[00:00:01.675,964] <err> os: Current thread: 0x20019140 (BT RX)
The event code that it asserts on is the 0x0e. Looking in the hci.h file the 0x0e is the BT_HCI_EVT_CMD_COMPLETE code.
My questions would be:
- Am i missing some of the configuration options for the BLE in order to utilize your Nordic BLE Link Layer implementation?
- Or using Nordic BLE Link Layer is still not supported with the NCS(1.3.2) version i'm using?
My environment:
- NCS version: v1.3.2
- Hardware used:
- Custom board with nrf52840 chipset
- BLE stack configuration
- CONFIG_BT_LL_NRFXLIB=y
- CONFIG_BT_LL_NRFXLIB_DEFAULT=y
- CONFIG_BT_LL_NRFXLIB_VS_INCLUDE=y
Thank you in advance!