mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-28 08:37:22 +00:00
port/zephyr: update for Zephyr v4.0
This commit is contained in:
parent
76f06a045a
commit
bf029eddf7
@ -34,20 +34,20 @@ source env.sh
|
||||
|
||||
You can build an example using:
|
||||
```sh
|
||||
west build -b nrf52840dk_nrf52840
|
||||
west build -b nrf52840dk/nrf52840
|
||||
```
|
||||
|
||||
`nrf52840dk_nrf52840` selected the Nordic nRF52840 DK. For the older nRF52 DK with nRF52832, you can specify nrf52dk_nrf52832.
|
||||
`nrf52840dk/nrf52840` selected the Nordic nRF52840 DK. For the older nRF52 DK with nRF52832, you can specify nrf52dk/nrf52832.
|
||||
To get a list of all supported Zephyr targets, run `west boards`
|
||||
|
||||
To change zephyr platform settings use:
|
||||
```sh
|
||||
west build -b nrf52840dk_nrf52840 -t menuconfig
|
||||
west build -b nrf52840dk/nrf52840 -t menuconfig
|
||||
```
|
||||
|
||||
To build a different example, e.g. the `gatt_streamer_server`, set the EXAMPLE environment variable:
|
||||
```sh
|
||||
EXAMPLE=gatt_streamer_server west build -b nrf52840dk_nrf52840
|
||||
EXAMPLE=gatt_streamer_server west build -b nrf52840dk/nrf52840
|
||||
```
|
||||
|
||||
### 2. Flash Example
|
||||
@ -63,19 +63,19 @@ The nrf5340 is a dual core SoC, where one core is used for Bluetooth HCI functio
|
||||
the other for the high level application logic. So both cores need to be programmed separately.
|
||||
Using the nRF5340-DK for example allows debug output on both cores to separate UART ports.
|
||||
For the nRF5340 a network core firmware is required, which one depends on the use-case.
|
||||
With 2a and 2b two options are given.
|
||||
With 2. an options is given.
|
||||
|
||||
### 1. Building the application
|
||||
build using:
|
||||
```sh
|
||||
west build -b nrf5340dk_nrf5340_cpuapp
|
||||
west build -b nrf5340dk/nrf5340/cpuapp
|
||||
```
|
||||
with debug:
|
||||
```sh
|
||||
west build -b nrf5340dk_nrf5340_cpuapp -- -DOVERLAY_CONFIG=debug_overlay.conf
|
||||
west build -b nrf5340dk/nrf5340/cpuapp -- -DOVERLAY_CONFIG=debug_overlay.conf
|
||||
```
|
||||
|
||||
### 2a. Using zephyr network core image
|
||||
### 2. Using zephyr network core image
|
||||
the `hci_rgmsg` application needs to be loaded first to the network core.
|
||||
Configure network core by selecting the appropriate config file, for example `nrf5340_cpunet_iso-bt_ll_sw_split.conf`.
|
||||
additionally it's required to increase the main stack size from
|
||||
@ -88,22 +88,15 @@ CONFIG_MAIN_STACK_SIZE=4096
|
||||
```
|
||||
then the network core image can be compiled and flashed
|
||||
```sh
|
||||
west build -b nrf5340dk_nrf5340_cpunet -- -DCONF_FILE=nrf5340_cpunet_iso-bt_ll_sw_split.conf
|
||||
west build -b nrf5340dk/nrf5340/cpunet -- -DCONF_FILE=nrf5340_cpunet_iso-bt_ll_sw_split.conf
|
||||
west flash
|
||||
```
|
||||
or with debugging
|
||||
```sh
|
||||
west build -b nrf5340dk_nrf5340_cpunet -- -DCONF_FILE=nrf5340_cpunet_iso-bt_ll_sw_split.conf -DOVERLAY_CONFIG=debug_overlay.conf
|
||||
west build -b nrf5340dk/nrf5340/cpunet -- -DCONF_FILE=nrf5340_cpunet_iso-bt_ll_sw_split.conf -DOVERLAY_CONFIG=debug_overlay.conf
|
||||
west flash
|
||||
```
|
||||
|
||||
### 2b. Using Packetcraft binary network core image
|
||||
for nrf5340 the latest netcore firmware is located at [sdk-nrf](https://github.com/nrfconnect/sdk-nrf/tree/main/lib/bin/bt_ll_acs_nrf53/bin)
|
||||
to program it:
|
||||
```sh
|
||||
nrfjprog --program ble5-ctr-rpmsg_<version number>.hex --chiperase --coprocessor CP_NETWORK -r
|
||||
```
|
||||
|
||||
## TODO
|
||||
|
||||
- Allow/document use of Zephyr HCI Drivers
|
||||
|
@ -33,7 +33,7 @@ CONFIG_BT_BUF_CMD_TX_SIZE=255
|
||||
CONFIG_BT_BUF_EVT_DISCARDABLE_SIZE=255
|
||||
CONFIG_BT_CTLR_ASSERT_HANDLER=y
|
||||
CONFIG_BT_MAX_CONN=16
|
||||
CONFIG_BT_TINYCRYPT_ECC=n
|
||||
#CONFIG_BT_TINYCRYPT_ECC=n
|
||||
#CONFIG_BT_CTLR_DTM_HCI=y
|
||||
|
||||
CONFIG_BT_CTLR_PRIVACY=n
|
||||
@ -56,4 +56,4 @@ CONFIG_ISR_STACK_SIZE=1024
|
||||
|
||||
# Workaround: Unable to allocate command buffer when using K_NO_WAIT since
|
||||
# Host number of completed commands does not follow normal flow control.
|
||||
CONFIG_BT_BUF_CMD_TX_COUNT=10
|
||||
#CONFIG_BT_BUF_CMD_TX_COUNT=10
|
||||
|
@ -191,11 +191,11 @@ static void btstack_run_loop_zephyr_execute(void) {
|
||||
k_timeout_t timeout;
|
||||
timeout.ticks = btstack_run_loop_base_get_time_until_timeout(now);
|
||||
if (timeout.ticks < 0){
|
||||
timeout.ticks = K_TICKS_FOREVER;
|
||||
timeout = K_FOREVER;
|
||||
}
|
||||
|
||||
// process RX fifo only
|
||||
struct net_buf *buf = net_buf_get(&rx_queue, timeout);
|
||||
struct net_buf *buf = k_fifo_get(&rx_queue, timeout);
|
||||
if (buf){
|
||||
transport_deliver_controller_packet(buf);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user