Skip to content

Commit 00b0faf

Browse files
committed
nRF5x Add registering bluetooth's IRQn vector by NVIC_SetVector.
1 parent b49f85f commit 00b0faf

File tree

9 files changed

+51
-44
lines changed

9 files changed

+51
-44
lines changed

features/FEATURE_BLE/targets/TARGET_NORDIC/TARGET_NRF5/source/btle/btle.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,13 @@ extern "C" {
5858
#include "nRF5xServiceDiscovery.h"
5959
#include "nRF5xCharacteristicDescriptorDiscoverer.h"
6060

61+
6162
bool isEventsSignaled = false;
6263

6364
extern "C" void assert_nrf_callback(uint16_t line_num, const uint8_t *p_file_name);
6465
void app_error_handler(uint32_t error_code, uint32_t line_num, const uint8_t *p_file_name);
66+
extern "C" void SD_EVT_IRQHandler(void); // export the softdevice event handler for registration by nvic-set-vector.
67+
6568

6669
static void btle_handler(ble_evt_t *p_ble_evt);
6770

@@ -112,10 +115,14 @@ static uint32_t signalEvent()
112115
return NRF_SUCCESS;
113116
}
114117

118+
115119
error_t btle_init(void)
116120
{
117121
nrf_clock_lf_cfg_t clockConfiguration;
118122

123+
// register softdevice hanlder vector
124+
NVIC_SetVector(SD_EVT_IRQn, (uint32_t) SD_EVT_IRQHandler);
125+
119126
// Configure the LF clock according to values provided by btle_clock.h.
120127
// It is input from the chain of the yotta configuration system.
121128
clockConfiguration.source = LFCLK_CONF_SOURCE;

targets/TARGET_NORDIC/TARGET_MCU_NRF51822/device/TOOLCHAIN_ARM_STD/TARGET_MCU_NORDIC_16K/startup_nRF51822.S

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ __Vectors DCD __initial_sp ; Top of Stack
6464
DCD QDEC_IRQHandler_v ;QDEC
6565
DCD LPCOMP_IRQHandler_v ;LPCOMP_COMP
6666
DCD SWI0_IRQHandler_v ;SWI0
67-
DCD SWI1_IRQHandler ;SWI1
68-
DCD SWI2_IRQHandler ;SWI2
67+
DCD SWI1_IRQHandler_v ;SWI1
68+
DCD SWI2_IRQHandler_v ;SWI2
6969
DCD SWI3_IRQHandler_v ;SWI3
7070
DCD SWI4_IRQHandler ;SWI4
7171
DCD SWI5_IRQHandler ;SWI5
@@ -152,8 +152,8 @@ Default_Handler PROC
152152
EXPORT QDEC_IRQHandler_v [WEAK]
153153
EXPORT LPCOMP_IRQHandler_v [WEAK]
154154
EXPORT SWI0_IRQHandler_v [WEAK]
155-
EXPORT SWI1_IRQHandler [WEAK]
156-
EXPORT SWI2_IRQHandler [WEAK]
155+
EXPORT SWI1_IRQHandler_v [WEAK]
156+
EXPORT SWI2_IRQHandler_v [WEAK]
157157
EXPORT SWI3_IRQHandler_v [WEAK]
158158
EXPORT SWI4_IRQHandler [WEAK]
159159
EXPORT SWI5_IRQHandler [WEAK]
@@ -177,8 +177,8 @@ RTC1_IRQHandler_v
177177
QDEC_IRQHandler_v
178178
LPCOMP_IRQHandler_v
179179
SWI0_IRQHandler_v
180-
SWI1_IRQHandler
181-
SWI2_IRQHandler
180+
SWI1_IRQHandler_v
181+
SWI2_IRQHandler_v
182182
SWI3_IRQHandler_v
183183
SWI4_IRQHandler
184184
SWI5_IRQHandler

targets/TARGET_NORDIC/TARGET_MCU_NRF51822/device/TOOLCHAIN_ARM_STD/TARGET_MCU_NORDIC_32K/startup_nRF51822.S

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ __Vectors DCD __initial_sp ; Top of Stack
6464
DCD QDEC_IRQHandler_v ;QDEC
6565
DCD LPCOMP_COMP_IRQHandler_v ;LPCOMP_COMP
6666
DCD SWI0_IRQHandler_v ;SWI0
67-
DCD SWI1_IRQHandler ;SWI1
68-
DCD SWI2_IRQHandler ;SWI2
67+
DCD SWI1_IRQHandler_v ;SWI1
68+
DCD SWI2_IRQHandler_v ;SWI2
6969
DCD SWI3_IRQHandler_v ;SWI3
7070
DCD SWI4_IRQHandler ;SWI4
7171
DCD SWI5_IRQHandler ;SWI5
@@ -158,8 +158,8 @@ Default_Handler PROC
158158
EXPORT QDEC_IRQHandler_v [WEAK]
159159
EXPORT LPCOMP_COMP_IRQHandler_v [WEAK]
160160
EXPORT SWI0_IRQHandler_v [WEAK]
161-
EXPORT SWI1_IRQHandler [WEAK]
162-
EXPORT SWI2_IRQHandler [WEAK]
161+
EXPORT SWI1_IRQHandler_v [WEAK]
162+
EXPORT SWI2_IRQHandler_v [WEAK]
163163
EXPORT SWI3_IRQHandler_v [WEAK]
164164
EXPORT SWI4_IRQHandler [WEAK]
165165
EXPORT SWI5_IRQHandler [WEAK]
@@ -183,8 +183,8 @@ RTC1_IRQHandler_v
183183
QDEC_IRQHandler_v
184184
LPCOMP_COMP_IRQHandler_v
185185
SWI0_IRQHandler_v
186-
SWI1_IRQHandler
187-
SWI2_IRQHandler
186+
SWI1_IRQHandler_v
187+
SWI2_IRQHandler_v
188188
SWI3_IRQHandler_v
189189
SWI4_IRQHandler
190190
SWI5_IRQHandler

targets/TARGET_NORDIC/TARGET_MCU_NRF51822/device/TOOLCHAIN_IAR/TARGET_MCU_NORDIC_16K/startup_NRF51822_IAR.S

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ __vector_table
6969
DCD QDEC_IRQHandler_v ;QDEC
7070
DCD LPCOMP_COMP_IRQHandler_v ;LPCOMP_COMP
7171
DCD SWI0_IRQHandler ;SWI0
72-
DCD SWI1_IRQHandler ;SWI1
73-
DCD SWI2_IRQHandler ;SWI2
72+
DCD SWI1_IRQHandler_v ;SWI1
73+
DCD SWI2_IRQHandler_v ;SWI2
7474
DCD SWI3_IRQHandler_v ;SWI3
7575
DCD SWI4_IRQHandler ;SWI4
7676
DCD SWI5_IRQHandler ;SWI5
@@ -215,13 +215,13 @@ LPCOMP_COMP_IRQHandler_v
215215
SECTION .text:CODE:REORDER:NOROOT(1)
216216
SWI0_IRQHandler
217217
B .
218-
PUBWEAK SWI1_IRQHandler
218+
PUBWEAK SWI1_IRQHandler_v
219219
SECTION .text:CODE:REORDER:NOROOT(1)
220-
SWI1_IRQHandler
220+
SWI1_IRQHandler_v
221221
B .
222-
PUBWEAK SWI2_IRQHandler
222+
PUBWEAK SWI2_IRQHandler_v
223223
SECTION .text:CODE:REORDER:NOROOT(1)
224-
SWI2_IRQHandler
224+
SWI2_IRQHandler_v
225225
B .
226226
PUBWEAK SWI3_IRQHandler_v
227227
SECTION .text:CODE:REORDER:NOROOT(1)

targets/TARGET_NORDIC/TARGET_MCU_NRF51822/device/TOOLCHAIN_IAR/TARGET_MCU_NORDIC_32K/startup_NRF51822_IAR.S

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ __vector_table
6969
DCD QDEC_IRQHandler_v ;QDEC
7070
DCD LPCOMP_COMP_IRQHandler_v ;LPCOMP_COMP
7171
DCD SWI0_IRQHandler ;SWI0
72-
DCD SWI1_IRQHandler ;SWI1
73-
DCD SWI2_IRQHandler ;SWI2
72+
DCD SWI1_IRQHandler_v ;SWI1
73+
DCD SWI2_IRQHandler_v ;SWI2
7474
DCD SWI3_IRQHandler_v ;SWI3
7575
DCD SWI4_IRQHandler ;SWI4
7676
DCD SWI5_IRQHandler ;SWI5
@@ -215,13 +215,13 @@ LPCOMP_COMP_IRQHandler_v
215215
SECTION .text:CODE:REORDER:NOROOT(1)
216216
SWI0_IRQHandler
217217
B .
218-
PUBWEAK SWI1_IRQHandler
218+
PUBWEAK SWI1_IRQHandler_v
219219
SECTION .text:CODE:REORDER:NOROOT(1)
220-
SWI1_IRQHandler
220+
SWI1_IRQHandler_v
221221
B .
222-
PUBWEAK SWI2_IRQHandler
222+
PUBWEAK SWI2_IRQHandler_v
223223
SECTION .text:CODE:REORDER:NOROOT(1)
224-
SWI2_IRQHandler
224+
SWI2_IRQHandler_v
225225
B .
226226
PUBWEAK SWI3_IRQHandler_v
227227
SECTION .text:CODE:REORDER:NOROOT(1)

targets/TARGET_NORDIC/TARGET_NRF5/TARGET_MCU_NRF51822_UNIFIED/device/TOOLCHAIN_GCC_ARM/startup_NRF51822.S

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,8 @@ __Vectors:
109109
.long QDEC_IRQHandler_v /*QDEC */
110110
.long LPCOMP_IRQHandler_v /*LPCOMP */
111111
.long SWI0_IRQHandler_v /*SWI0 */
112-
.long SWI1_IRQHandler /*SWI1 */
113-
.long SWI2_IRQHandler /*SWI2 */
112+
.long SWI1_IRQHandler_v /*SWI1 */
113+
.long SWI2_IRQHandler_v /*SWI2 */
114114
.long SWI3_IRQHandler_v /*SWI3 */
115115
.long SWI4_IRQHandler /*SWI4 */
116116
.long SWI5_IRQHandler /*SWI5 */
@@ -256,8 +256,8 @@ Default_Handler:
256256
IRQ QDEC_IRQHandler_v
257257
IRQ LPCOMP_IRQHandler_v
258258
IRQ SWI0_IRQHandler_v
259-
IRQ SWI1_IRQHandler /* restricted for Radio Notification */
260-
IRQ SWI2_IRQHandler /* blocked for SoftDevice Event */
259+
IRQ SWI1_IRQHandler_v /* restricted for Radio Notification */
260+
IRQ SWI2_IRQHandler_v /* blocked for SoftDevice Event */
261261
IRQ SWI3_IRQHandler_v
262262
IRQ SWI4_IRQHandler /* blocked */
263263
IRQ SWI5_IRQHandler /* blocked */

targets/TARGET_NORDIC/TARGET_NRF5/TARGET_MCU_NRF52832/device/TOOLCHAIN_ARM_STD/startup_nrf52832.s

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ __Vectors DCD __initial_sp ; Top of Stack
7676
DCD QDEC_IRQHandler_v
7777
DCD COMP_LPCOMP_IRQHandler_v
7878
DCD SWI0_EGU0_IRQHandler_v
79-
DCD SWI1_EGU1_IRQHandler
80-
DCD SWI2_EGU2_IRQHandler
79+
DCD SWI1_EGU1_IRQHandler_v
80+
DCD SWI2_EGU2_IRQHandler_v
8181
DCD SWI3_EGU3_IRQHandler_v
8282
DCD SWI4_EGU4_IRQHandler
8383
DCD SWI5_EGU5_IRQHandler
@@ -387,8 +387,8 @@ Default_Handler PROC
387387
EXPORT QDEC_IRQHandler_v [WEAK]
388388
EXPORT COMP_LPCOMP_IRQHandler_v [WEAK]
389389
EXPORT SWI0_EGU0_IRQHandler_v [WEAK]
390-
EXPORT SWI1_EGU1_IRQHandler [WEAK]
391-
EXPORT SWI2_EGU2_IRQHandler [WEAK]
390+
EXPORT SWI1_EGU1_IRQHandler_v [WEAK]
391+
EXPORT SWI2_EGU2_IRQHandler_v [WEAK]
392392
EXPORT SWI3_EGU3_IRQHandler_v [WEAK]
393393
EXPORT SWI4_EGU4_IRQHandler [WEAK]
394394
EXPORT SWI5_EGU5_IRQHandler [WEAK]
@@ -424,8 +424,8 @@ RTC1_IRQHandler_v
424424
QDEC_IRQHandler_v
425425
COMP_LPCOMP_IRQHandler_v
426426
SWI0_EGU0_IRQHandler_v
427-
SWI1_EGU1_IRQHandler
428-
SWI2_EGU2_IRQHandler
427+
SWI1_EGU1_IRQHandler_v
428+
SWI2_EGU2_IRQHandler_v
429429
SWI3_EGU3_IRQHandler_v
430430
SWI4_EGU4_IRQHandler
431431
SWI5_EGU5_IRQHandler

targets/TARGET_NORDIC/TARGET_NRF5/TARGET_MCU_NRF52832/device/TOOLCHAIN_GCC_ARM/startup_NRF52832.S

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,8 @@ __Vectors:
8888
.long QDEC_IRQHandler_v
8989
.long COMP_LPCOMP_IRQHandler_v
9090
.long SWI0_EGU0_IRQHandler_v
91-
.long SWI1_EGU1_IRQHandler
92-
.long SWI2_EGU2_IRQHandler
91+
.long SWI1_EGU1_IRQHandler_v
92+
.long SWI2_EGU2_IRQHandler_v
9393
.long SWI3_EGU3_IRQHandler_v
9494
.long SWI4_EGU4_IRQHandler
9595
.long SWI5_EGU5_IRQHandler
@@ -450,8 +450,8 @@ Default_Handler:
450450
IRQ QDEC_IRQHandler_v
451451
IRQ COMP_LPCOMP_IRQHandler_v
452452
IRQ SWI0_EGU0_IRQHandler_v
453-
IRQ SWI1_EGU1_IRQHandler /* restricted for Radio Notification */
454-
IRQ SWI2_EGU2_IRQHandler /* blocked for SoftDevice Event */
453+
IRQ SWI1_EGU1_IRQHandler_v /* restricted for Radio Notification */
454+
IRQ SWI2_EGU2_IRQHandler_v /* blocked for SoftDevice Event */
455455
IRQ SWI3_EGU3_IRQHandler_v
456456
IRQ SWI4_EGU4_IRQHandler /* blocked */
457457
IRQ SWI5_EGU5_IRQHandler /* blocked */

targets/TARGET_NORDIC/TARGET_NRF5/TARGET_MCU_NRF52832/device/TOOLCHAIN_IAR/startup_NRF52832_IAR.s

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ __vector_table
100100
DCD QDEC_IRQHandler_v
101101
DCD COMP_LPCOMP_IRQHandler_v
102102
DCD SWI0_EGU0_IRQHandler_v
103-
DCD SWI1_EGU1_IRQHandler
104-
DCD SWI2_EGU2_IRQHandler
103+
DCD SWI1_EGU1_IRQHandler_v
104+
DCD SWI2_EGU2_IRQHandler_v
105105
DCD SWI3_EGU3_IRQHandler_v
106106
DCD SWI4_EGU4_IRQHandler
107107
DCD SWI5_EGU5_IRQHandler
@@ -495,14 +495,14 @@ COMP_LPCOMP_IRQHandler_v
495495
SWI0_EGU0_IRQHandler_v
496496
B .
497497

498-
PUBWEAK SWI1_EGU1_IRQHandler
498+
PUBWEAK SWI1_EGU1_IRQHandler_v
499499
SECTION .text:CODE:NOROOT(1)
500-
SWI1_EGU1_IRQHandler
500+
SWI1_EGU1_IRQHandler_v
501501
B .
502502

503-
PUBWEAK SWI2_EGU2_IRQHandler
503+
PUBWEAK SWI2_EGU2_IRQHandler_v
504504
SECTION .text:CODE:NOROOT(1)
505-
SWI2_EGU2_IRQHandler
505+
SWI2_EGU2_IRQHandler_v
506506
B .
507507

508508
PUBWEAK SWI3_EGU3_IRQHandler_v

0 commit comments

Comments
 (0)