Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bluetooth: controller: Introduce s/w based TRX switching #24

Merged

Conversation

cvinayak
Copy link
Contributor

@cvinayak cvinayak commented May 1, 2017

Introduce alternative TRX switching using dedicated timers
and peripheral interconnect. This will enable the
possibility to independently configure the Tx and Rx
settings between the tIFS.

Note, this will also provide the opportunity to design a
soft realtime Radio ISR.

Signed-off-by: Vinayak Chettimada vinayak.kariappa.chettimada@nordicsemi.no


This change is Reviewable

@cvinayak cvinayak force-pushed the github_bluetooth_sw_trx_switch branch from a3b24c7 to ed5569f Compare May 2, 2017 11:44
@cvinayak cvinayak changed the base branch from bluetooth to master May 2, 2017 13:34
Introduce alternative TRX switching using dedicated timers
and peripheral interconnect. This will enable the
possibility to independently configure the Tx and Rx
settings between the tIFS.

Note, this will also provide the opportunity to design a
soft realtime Radio ISR.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
@cvinayak cvinayak force-pushed the github_bluetooth_sw_trx_switch branch from ed5569f to c8f580f Compare May 3, 2017 13:52
rsalveti pushed a commit to rsalveti/zephyr that referenced this pull request May 3, 2017
The current implementation of stm32_gpio_set() uses the GPIO output data
register to change the state of individual GPIOs. The generated
assembler needs at least 3 instructions: load / modify / store.

This opens a small race window, for example if a thread and an
interrupt both try to change the state of the same GPIO bank.

Use the GPIO bit set/reset register to perform the atomic change without
locking.

This also has the benefit of a more optimised implementation, which can
be useful for GPIO-intensive work. Compare the new version:

08000c98 <stm32_gpio_set>:
 8000c98:       f001 010f       and.w   r1, r1, zephyrproject-rtos#15
 8000c9c:       2301            movs    r3, zephyrproject-rtos#1
 8000c9e:       b902            cbnz    r2, 8000ca2 <stm32_gpio_set+0xa>
 8000ca0:       3110            adds    r1, zephyrproject-rtos#16
 8000ca2:       408b            lsls    r3, r1
 8000ca4:       6183            str     r3, [r0, zephyrproject-rtos#24]
 8000ca6:       2000            movs    r0, #0
 8000ca8:       4770            bx      lr

and the old one:

08000c98 <stm32_gpio_set>:
 8000c98:       2301            movs    r3, zephyrproject-rtos#1
 8000c9a:       f001 010f       and.w   r1, r1, zephyrproject-rtos#15
 8000c9e:       fa03 f101       lsl.w   r1, r3, r1
 8000ca2:       6943            ldr     r3, [r0, zephyrproject-rtos#20]
 8000ca4:       b10a            cbz     r2, 8000caa <stm32_gpio_set+0x12>
 8000ca6:       4319            orrs    r1, r3
 8000ca8:       e001            b.n     8000cae <stm32_gpio_set+0x16>
 8000caa:       ea23 0101       bic.w   r1, r3, r1
 8000cae:       6141            str     r1, [r0, zephyrproject-rtos#20]
 8000cb0:       2000            movs    r0, #0
 8000cb2:       4770            bx      lr

Change-Id: Ie5800d1c345016028d1b9a099f5d74cac35f592a
Signed-off-by: Florian Vaussard <florian.vaussard@heig-vd.ch>
@jhedberg jhedberg self-assigned this May 4, 2017
@jhedberg jhedberg merged commit 75bff19 into zephyrproject-rtos:master May 4, 2017
@cvinayak cvinayak deleted the github_bluetooth_sw_trx_switch branch May 5, 2017 03:27
nagineni pushed a commit to nagineni/zephyr that referenced this pull request Nov 20, 2017
[deps] Apply overlay of new defconfig files to zephyr tree
frasa added a commit to blik-GmbH/zephyr that referenced this pull request Mar 25, 2019
Fix: LIS3DH DTS support for the akita_gen2 BSP

Closes zephyrproject-rtos#24

See merge request blik/embedded/zephyr!27
agansari added a commit to agansari/zephyr that referenced this pull request Dec 16, 2019
zephyrproject-rtos/hal_nxp#24
Add a mask for KSZ8081 PHY's control register to set power down.

Signed-off-by: Andrei Gansari <andrei.gansari@nxp.com>
pkunieck pushed a commit to pkunieck/zephyr that referenced this pull request Jul 18, 2023
Requirements were split, so download them all before we install.

Fixes zephyrproject-rtos#24
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
LukaszMrugala pushed a commit to LukaszMrugala/zephyr that referenced this pull request Jul 3, 2024
- Shouldn't freak out if someone passes "main-intel" as the base branch.
So make it not freak out; rather accept either "main" OR "main-intel"
and all is well with the world.

Signed-off-by: Connor Graydon <connor.graydon@intel.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants