This will replace the current goal of 'make qemu' with 'make run' and moves Qemu handling into its own file and into the boards instead of being architecture specific. We should be able to add new boards that support some other type of emulation (by adding scripts/Makefile.<emu type>) and allow the board to define their own options for the use type of emulation. 'make qemu' will still work, however it will be deprecated, starting with this commit it is recommended to use 'make run'. Jira: ZEP-359 Change-Id: I1cacd56b4ec09421a58cf5d010e22e9035214df6 Signed-off-by: Anas Nashif <anas.nashif@intel.com>
110 lines
3.5 KiB
Plaintext
110 lines
3.5 KiB
Plaintext
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 run
|
|
|
|
= 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.
|