mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-08-24 11:26:18 +00:00
The following readings were obtained after running the peripheral and central_hr apps in qemu combined with the controller (hci_uart) on nRF51 and nRF52: Main Stack 380 Idle Stack: 68 ISR stack: 532 Controller RX Stack: 388 HCI TX Stack: 516 The numbers set in this change provide a safety margin from the ones measured empirically. Change-id: Ice7ad7f081502e0ea1accf856a7937c0bf0783b2 Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no> |
||
---|---|---|
.. | ||
beacon | ||
central | ||
central_hr | ||
eddystone | ||
gatt | ||
handsfree | ||
hci_uart | ||
hci_usb | ||
ipsp | ||
peripheral | ||
peripheral_csc | ||
peripheral_dis | ||
peripheral_esp | ||
peripheral_hids | ||
peripheral_hr | ||
peripheral_sc_only | ||
README |
Bluetooth subsystem = Building = Build samples $ make -C samples/bluetooth/<app> = Bluetooth Sample application = Host Bluetooth controller is connected to the second qemu serial line through a UNIX socket (qemu option -serial unix:/tmp/bt-server-bredr). This option is already added to qemu through QEMU_EXTRA_FLAGS in Makefile. On the host side BlueZ allows to "connect" Bluetooth controller through a so-called user channel. Use the btproxy tool for that: $ sudo tools/btproxy -u Listening on /tmp/bt-server-bredr Note that before calling btproxy make sure that Bluetooth controller is down. Now running qemu result connecting second serial line to 'bt-server-bredr' UNIX socket. When Bluetooth (CONFIG_BLUETOOTH) and Bluetooth HCI UART driver (CONFIG_BLUETOOTH_H4) are enabled, Bluetooth driver registers to the system. From now on Bluetooth might be used by the application. To run application in the qemu run: $ make qemu = Bluetooth sanity check = There is smoke test application in tests directory which gets run in sanity check script: $ scripts/sanitycheck [-P <platform>] To only run Bluetooth tests use the -t bluetooth switch: $ scripts/sanitycheck -t bluetooth = Summary of available applications = beacon: A simple application demonstrating the BLE Broadcaster role functionality by advertising an Eddystone URL (the Zephyr website). central: Application demonstrating very basic BLE Central role functionality by scanning for other BLE devices and establishing a connection to the first one with a strong enough signal. central_hr: Similar to 'central', except that this application specifically looks for heart-rate monitors and reports the heart-rate readings once connected. eddystone: Application demostrating Eddystone Configuration Service: https://github.com/google/eddystone/tree/master/configuration-service gatt: Not an application, but a set of reusable modules for common GATT profiles & services. hci_uart: Expose Zephyr Bluetooth Controller support over UART to another device/CPU using the H:4 HCI transport protocol (requires HW flow control from the UART). hci_usb: Make a USB Bluetooth dongle out of Zephyr. Requires USB device support from the board it runs on (e.g. Arduino 101 has this). ipsp: Application demonstrating the IPSP (Internet Protocol Support Profile) Node role. IPSP is the Bluetooth profile that underneath utilizes 6LoWPAN, i.e. gives you IPv6 connectivity over BLE. peripheral: Application demonstrating the BLE Peripheral role. It has several well-known and vendor-specific GATT services that it exposes. peripheral_csc: Similar to 'peripheral', except that this application specifically exposes the CSC (Cycling Speed and Cadence) GATT Service. peripheral_dis: Similar to 'peripheral', except that this application specifically exposes the DIS (Device Information) GATT Service. peripheral_esp: Similar to 'peripheral', except that this application specifically exposes the ESP (Environmental Sensing Profile) GATT Service. peripheral_hr: Similar to 'peripheral', except that this application specifically exposes the HR (Heart Rate) GATT Service. Once a device connects it will generate dummy heart-rate values. peripheral_hids: Similar to 'peripheral', except that this application specifically exposes the HID GATT Service. The report map used is for a generic mouse.