mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-01-09 15:39:08 +00:00
99 lines
3.5 KiB
Diff
99 lines
3.5 KiB
Diff
diff --git a/samples/bluetooth/hci_uart/flash_nrf51_pca10028.sh b/samples/bluetooth/hci_uart/flash_nrf51_pca10028.sh
|
|
new file mode 100755
|
|
index 0000000..d51907f
|
|
--- /dev/null
|
|
+++ b/samples/bluetooth/hci_uart/flash_nrf51_pca10028.sh
|
|
@@ -0,0 +1,4 @@
|
|
+#!/bin/sh
|
|
+nrfjprog --eraseall -f nrf51
|
|
+nrfjprog --program outdir/nrf51_pca10028/zephyr.hex -f nrf51
|
|
+nrfjprog --reset -f nrf51
|
|
diff --git a/samples/bluetooth/hci_uart/flash_nrf52_pca10040.sh b/samples/bluetooth/hci_uart/flash_nrf52_pca10040.sh
|
|
new file mode 100755
|
|
index 0000000..cc20145
|
|
--- /dev/null
|
|
+++ b/samples/bluetooth/hci_uart/flash_nrf52_pca10040.sh
|
|
@@ -0,0 +1,4 @@
|
|
+#!/bin/sh
|
|
+nrfjprog --eraseall -f nrf52
|
|
+nrfjprog --program outdir/nrf52_pca10040/zephyr.hex -f nrf52
|
|
+nrfjprog --reset -f nrf52
|
|
diff --git a/samples/bluetooth/hci_uart/nrf5.conf b/samples/bluetooth/hci_uart/nrf5.conf
|
|
index c3b362d..9fe511f 100644
|
|
--- a/samples/bluetooth/hci_uart/nrf5.conf
|
|
+++ b/samples/bluetooth/hci_uart/nrf5.conf
|
|
@@ -7,6 +7,6 @@ CONFIG_UART_INTERRUPT_DRIVEN=y
|
|
CONFIG_BLUETOOTH=y
|
|
CONFIG_BLUETOOTH_HCI_RAW=y
|
|
CONFIG_BLUETOOTH_MAX_CONN=16
|
|
-CONFIG_UART_NRF5_BAUD_RATE=1000000
|
|
+CONFIG_UART_NRF5_BAUD_RATE=115200
|
|
CONFIG_UART_NRF5_FLOW_CONTROL=y
|
|
CONFIG_BLUETOOTH_CONTROLLER_ASSERT_HANDLER=y
|
|
diff --git a/samples/bluetooth/hci_uart/src/Makefile b/samples/bluetooth/hci_uart/src/Makefile
|
|
index b666967..8606b24 100644
|
|
--- a/samples/bluetooth/hci_uart/src/Makefile
|
|
+++ b/samples/bluetooth/hci_uart/src/Makefile
|
|
@@ -1 +1,2 @@
|
|
obj-y += main.o
|
|
+ccflags-y += -I../../../subsys/bluetooth/controller/ll
|
|
diff --git a/samples/bluetooth/hci_uart/src/main.c b/samples/bluetooth/hci_uart/src/main.c
|
|
index 76e75e1..70da655 100644
|
|
--- a/samples/bluetooth/hci_uart/src/main.c
|
|
+++ b/samples/bluetooth/hci_uart/src/main.c
|
|
@@ -36,6 +36,9 @@
|
|
#include <bluetooth/buf.h>
|
|
#include <bluetooth/hci_raw.h>
|
|
|
|
+#include "ll.h"
|
|
+#include "nrf.h"
|
|
+
|
|
static struct device *hci_uart_dev;
|
|
|
|
#define STACK_SIZE 1024
|
|
@@ -354,6 +357,18 @@ static int hci_uart_init(struct device *unused)
|
|
DEVICE_INIT(hci_uart, "hci_uart", &hci_uart_init, NULL, NULL,
|
|
APPLICATION, CONFIG_KERNEL_INIT_PRIORITY_DEVICE);
|
|
|
|
+void little_endian_store_16(uint8_t *buffer, uint16_t pos, uint16_t value){
|
|
+ buffer[pos++] = value;
|
|
+ buffer[pos++] = value >> 8;
|
|
+}
|
|
+
|
|
+void little_endian_store_32(uint8_t *buffer, uint16_t pos, uint32_t value){
|
|
+ buffer[pos++] = value;
|
|
+ buffer[pos++] = value >> 8;
|
|
+ buffer[pos++] = value >> 16;
|
|
+ buffer[pos++] = value >> 24;
|
|
+}
|
|
+
|
|
void main(void)
|
|
{
|
|
/* incoming events and data from the controller */
|
|
@@ -373,6 +388,12 @@ void main(void)
|
|
NULL, K_PRIO_COOP(7), 0, K_NO_WAIT);
|
|
|
|
bt_enable_raw(&rx_queue);
|
|
+
|
|
+ // make Random Static Address available via HCI Read BD ADDR as fake public address
|
|
+ uint8_t addr[6];
|
|
+ little_endian_store_16(addr, 4, NRF_FICR->DEVICEADDR[1] | 0xc000);
|
|
+ little_endian_store_32(addr, 0, NRF_FICR->DEVICEADDR[0]);
|
|
+ ll_address_set(0, addr);
|
|
|
|
while (1) {
|
|
struct net_buf *buf;
|
|
diff --git a/subsys/bluetooth/controller/ll/ctrl.h b/subsys/bluetooth/controller/ll/ctrl.h
|
|
index f9b092d..b950083 100644
|
|
--- a/subsys/bluetooth/controller/ll/ctrl.h
|
|
+++ b/subsys/bluetooth/controller/ll/ctrl.h
|
|
@@ -79,7 +79,7 @@
|
|
* Controller Interface Defines
|
|
****************************************************************************/
|
|
#define RADIO_BLE_VERSION_NUMBER (0x08)
|
|
-#define RADIO_BLE_COMPANY_ID (0xFFFF)
|
|
+#define RADIO_BLE_COMPANY_ID (0x0059) // Nordic Semiconductor ASA
|
|
#define RADIO_BLE_SUB_VERSION_NUMBER (0xFFFF)
|
|
#define RADIO_BLE_FEATURES (0x1F) /* LE Ping, Slave Initiated
|
|
* Feature request, Extended
|