nRF5x Add registering bluetooth's IRQn vector by NVIC_SetVector.

pull/2943/head
Andrzej Puzdrowski 2016-10-07 12:42:33 +02:00
parent b49f85fe46
commit 00b0fafd9e
9 changed files with 51 additions and 44 deletions

View File

@ -58,10 +58,13 @@ extern "C" {
#include "nRF5xServiceDiscovery.h" #include "nRF5xServiceDiscovery.h"
#include "nRF5xCharacteristicDescriptorDiscoverer.h" #include "nRF5xCharacteristicDescriptorDiscoverer.h"
bool isEventsSignaled = false; bool isEventsSignaled = false;
extern "C" void assert_nrf_callback(uint16_t line_num, const uint8_t *p_file_name); extern "C" void assert_nrf_callback(uint16_t line_num, const uint8_t *p_file_name);
void app_error_handler(uint32_t error_code, uint32_t line_num, const uint8_t *p_file_name); void app_error_handler(uint32_t error_code, uint32_t line_num, const uint8_t *p_file_name);
extern "C" void SD_EVT_IRQHandler(void); // export the softdevice event handler for registration by nvic-set-vector.
static void btle_handler(ble_evt_t *p_ble_evt); static void btle_handler(ble_evt_t *p_ble_evt);
@ -112,10 +115,14 @@ static uint32_t signalEvent()
return NRF_SUCCESS; return NRF_SUCCESS;
} }
error_t btle_init(void) error_t btle_init(void)
{ {
nrf_clock_lf_cfg_t clockConfiguration; nrf_clock_lf_cfg_t clockConfiguration;
// register softdevice hanlder vector
NVIC_SetVector(SD_EVT_IRQn, (uint32_t) SD_EVT_IRQHandler);
// Configure the LF clock according to values provided by btle_clock.h. // Configure the LF clock according to values provided by btle_clock.h.
// It is input from the chain of the yotta configuration system. // It is input from the chain of the yotta configuration system.
clockConfiguration.source = LFCLK_CONF_SOURCE; clockConfiguration.source = LFCLK_CONF_SOURCE;

View File

@ -64,8 +64,8 @@ __Vectors DCD __initial_sp ; Top of Stack
DCD QDEC_IRQHandler_v ;QDEC DCD QDEC_IRQHandler_v ;QDEC
DCD LPCOMP_IRQHandler_v ;LPCOMP_COMP DCD LPCOMP_IRQHandler_v ;LPCOMP_COMP
DCD SWI0_IRQHandler_v ;SWI0 DCD SWI0_IRQHandler_v ;SWI0
DCD SWI1_IRQHandler ;SWI1 DCD SWI1_IRQHandler_v ;SWI1
DCD SWI2_IRQHandler ;SWI2 DCD SWI2_IRQHandler_v ;SWI2
DCD SWI3_IRQHandler_v ;SWI3 DCD SWI3_IRQHandler_v ;SWI3
DCD SWI4_IRQHandler ;SWI4 DCD SWI4_IRQHandler ;SWI4
DCD SWI5_IRQHandler ;SWI5 DCD SWI5_IRQHandler ;SWI5
@ -152,8 +152,8 @@ Default_Handler PROC
EXPORT QDEC_IRQHandler_v [WEAK] EXPORT QDEC_IRQHandler_v [WEAK]
EXPORT LPCOMP_IRQHandler_v [WEAK] EXPORT LPCOMP_IRQHandler_v [WEAK]
EXPORT SWI0_IRQHandler_v [WEAK] EXPORT SWI0_IRQHandler_v [WEAK]
EXPORT SWI1_IRQHandler [WEAK] EXPORT SWI1_IRQHandler_v [WEAK]
EXPORT SWI2_IRQHandler [WEAK] EXPORT SWI2_IRQHandler_v [WEAK]
EXPORT SWI3_IRQHandler_v [WEAK] EXPORT SWI3_IRQHandler_v [WEAK]
EXPORT SWI4_IRQHandler [WEAK] EXPORT SWI4_IRQHandler [WEAK]
EXPORT SWI5_IRQHandler [WEAK] EXPORT SWI5_IRQHandler [WEAK]
@ -177,8 +177,8 @@ RTC1_IRQHandler_v
QDEC_IRQHandler_v QDEC_IRQHandler_v
LPCOMP_IRQHandler_v LPCOMP_IRQHandler_v
SWI0_IRQHandler_v SWI0_IRQHandler_v
SWI1_IRQHandler SWI1_IRQHandler_v
SWI2_IRQHandler SWI2_IRQHandler_v
SWI3_IRQHandler_v SWI3_IRQHandler_v
SWI4_IRQHandler SWI4_IRQHandler
SWI5_IRQHandler SWI5_IRQHandler

View File

@ -64,8 +64,8 @@ __Vectors DCD __initial_sp ; Top of Stack
DCD QDEC_IRQHandler_v ;QDEC DCD QDEC_IRQHandler_v ;QDEC
DCD LPCOMP_COMP_IRQHandler_v ;LPCOMP_COMP DCD LPCOMP_COMP_IRQHandler_v ;LPCOMP_COMP
DCD SWI0_IRQHandler_v ;SWI0 DCD SWI0_IRQHandler_v ;SWI0
DCD SWI1_IRQHandler ;SWI1 DCD SWI1_IRQHandler_v ;SWI1
DCD SWI2_IRQHandler ;SWI2 DCD SWI2_IRQHandler_v ;SWI2
DCD SWI3_IRQHandler_v ;SWI3 DCD SWI3_IRQHandler_v ;SWI3
DCD SWI4_IRQHandler ;SWI4 DCD SWI4_IRQHandler ;SWI4
DCD SWI5_IRQHandler ;SWI5 DCD SWI5_IRQHandler ;SWI5
@ -158,8 +158,8 @@ Default_Handler PROC
EXPORT QDEC_IRQHandler_v [WEAK] EXPORT QDEC_IRQHandler_v [WEAK]
EXPORT LPCOMP_COMP_IRQHandler_v [WEAK] EXPORT LPCOMP_COMP_IRQHandler_v [WEAK]
EXPORT SWI0_IRQHandler_v [WEAK] EXPORT SWI0_IRQHandler_v [WEAK]
EXPORT SWI1_IRQHandler [WEAK] EXPORT SWI1_IRQHandler_v [WEAK]
EXPORT SWI2_IRQHandler [WEAK] EXPORT SWI2_IRQHandler_v [WEAK]
EXPORT SWI3_IRQHandler_v [WEAK] EXPORT SWI3_IRQHandler_v [WEAK]
EXPORT SWI4_IRQHandler [WEAK] EXPORT SWI4_IRQHandler [WEAK]
EXPORT SWI5_IRQHandler [WEAK] EXPORT SWI5_IRQHandler [WEAK]
@ -183,8 +183,8 @@ RTC1_IRQHandler_v
QDEC_IRQHandler_v QDEC_IRQHandler_v
LPCOMP_COMP_IRQHandler_v LPCOMP_COMP_IRQHandler_v
SWI0_IRQHandler_v SWI0_IRQHandler_v
SWI1_IRQHandler SWI1_IRQHandler_v
SWI2_IRQHandler SWI2_IRQHandler_v
SWI3_IRQHandler_v SWI3_IRQHandler_v
SWI4_IRQHandler SWI4_IRQHandler
SWI5_IRQHandler SWI5_IRQHandler

View File

@ -69,8 +69,8 @@ __vector_table
DCD QDEC_IRQHandler_v ;QDEC DCD QDEC_IRQHandler_v ;QDEC
DCD LPCOMP_COMP_IRQHandler_v ;LPCOMP_COMP DCD LPCOMP_COMP_IRQHandler_v ;LPCOMP_COMP
DCD SWI0_IRQHandler ;SWI0 DCD SWI0_IRQHandler ;SWI0
DCD SWI1_IRQHandler ;SWI1 DCD SWI1_IRQHandler_v ;SWI1
DCD SWI2_IRQHandler ;SWI2 DCD SWI2_IRQHandler_v ;SWI2
DCD SWI3_IRQHandler_v ;SWI3 DCD SWI3_IRQHandler_v ;SWI3
DCD SWI4_IRQHandler ;SWI4 DCD SWI4_IRQHandler ;SWI4
DCD SWI5_IRQHandler ;SWI5 DCD SWI5_IRQHandler ;SWI5
@ -215,13 +215,13 @@ LPCOMP_COMP_IRQHandler_v
SECTION .text:CODE:REORDER:NOROOT(1) SECTION .text:CODE:REORDER:NOROOT(1)
SWI0_IRQHandler SWI0_IRQHandler
B . B .
PUBWEAK SWI1_IRQHandler PUBWEAK SWI1_IRQHandler_v
SECTION .text:CODE:REORDER:NOROOT(1) SECTION .text:CODE:REORDER:NOROOT(1)
SWI1_IRQHandler SWI1_IRQHandler_v
B . B .
PUBWEAK SWI2_IRQHandler PUBWEAK SWI2_IRQHandler_v
SECTION .text:CODE:REORDER:NOROOT(1) SECTION .text:CODE:REORDER:NOROOT(1)
SWI2_IRQHandler SWI2_IRQHandler_v
B . B .
PUBWEAK SWI3_IRQHandler_v PUBWEAK SWI3_IRQHandler_v
SECTION .text:CODE:REORDER:NOROOT(1) SECTION .text:CODE:REORDER:NOROOT(1)

View File

@ -69,8 +69,8 @@ __vector_table
DCD QDEC_IRQHandler_v ;QDEC DCD QDEC_IRQHandler_v ;QDEC
DCD LPCOMP_COMP_IRQHandler_v ;LPCOMP_COMP DCD LPCOMP_COMP_IRQHandler_v ;LPCOMP_COMP
DCD SWI0_IRQHandler ;SWI0 DCD SWI0_IRQHandler ;SWI0
DCD SWI1_IRQHandler ;SWI1 DCD SWI1_IRQHandler_v ;SWI1
DCD SWI2_IRQHandler ;SWI2 DCD SWI2_IRQHandler_v ;SWI2
DCD SWI3_IRQHandler_v ;SWI3 DCD SWI3_IRQHandler_v ;SWI3
DCD SWI4_IRQHandler ;SWI4 DCD SWI4_IRQHandler ;SWI4
DCD SWI5_IRQHandler ;SWI5 DCD SWI5_IRQHandler ;SWI5
@ -215,13 +215,13 @@ LPCOMP_COMP_IRQHandler_v
SECTION .text:CODE:REORDER:NOROOT(1) SECTION .text:CODE:REORDER:NOROOT(1)
SWI0_IRQHandler SWI0_IRQHandler
B . B .
PUBWEAK SWI1_IRQHandler PUBWEAK SWI1_IRQHandler_v
SECTION .text:CODE:REORDER:NOROOT(1) SECTION .text:CODE:REORDER:NOROOT(1)
SWI1_IRQHandler SWI1_IRQHandler_v
B . B .
PUBWEAK SWI2_IRQHandler PUBWEAK SWI2_IRQHandler_v
SECTION .text:CODE:REORDER:NOROOT(1) SECTION .text:CODE:REORDER:NOROOT(1)
SWI2_IRQHandler SWI2_IRQHandler_v
B . B .
PUBWEAK SWI3_IRQHandler_v PUBWEAK SWI3_IRQHandler_v
SECTION .text:CODE:REORDER:NOROOT(1) SECTION .text:CODE:REORDER:NOROOT(1)

View File

@ -109,8 +109,8 @@ __Vectors:
.long QDEC_IRQHandler_v /*QDEC */ .long QDEC_IRQHandler_v /*QDEC */
.long LPCOMP_IRQHandler_v /*LPCOMP */ .long LPCOMP_IRQHandler_v /*LPCOMP */
.long SWI0_IRQHandler_v /*SWI0 */ .long SWI0_IRQHandler_v /*SWI0 */
.long SWI1_IRQHandler /*SWI1 */ .long SWI1_IRQHandler_v /*SWI1 */
.long SWI2_IRQHandler /*SWI2 */ .long SWI2_IRQHandler_v /*SWI2 */
.long SWI3_IRQHandler_v /*SWI3 */ .long SWI3_IRQHandler_v /*SWI3 */
.long SWI4_IRQHandler /*SWI4 */ .long SWI4_IRQHandler /*SWI4 */
.long SWI5_IRQHandler /*SWI5 */ .long SWI5_IRQHandler /*SWI5 */
@ -256,8 +256,8 @@ Default_Handler:
IRQ QDEC_IRQHandler_v IRQ QDEC_IRQHandler_v
IRQ LPCOMP_IRQHandler_v IRQ LPCOMP_IRQHandler_v
IRQ SWI0_IRQHandler_v IRQ SWI0_IRQHandler_v
IRQ SWI1_IRQHandler /* restricted for Radio Notification */ IRQ SWI1_IRQHandler_v /* restricted for Radio Notification */
IRQ SWI2_IRQHandler /* blocked for SoftDevice Event */ IRQ SWI2_IRQHandler_v /* blocked for SoftDevice Event */
IRQ SWI3_IRQHandler_v IRQ SWI3_IRQHandler_v
IRQ SWI4_IRQHandler /* blocked */ IRQ SWI4_IRQHandler /* blocked */
IRQ SWI5_IRQHandler /* blocked */ IRQ SWI5_IRQHandler /* blocked */

View File

@ -76,8 +76,8 @@ __Vectors DCD __initial_sp ; Top of Stack
DCD QDEC_IRQHandler_v DCD QDEC_IRQHandler_v
DCD COMP_LPCOMP_IRQHandler_v DCD COMP_LPCOMP_IRQHandler_v
DCD SWI0_EGU0_IRQHandler_v DCD SWI0_EGU0_IRQHandler_v
DCD SWI1_EGU1_IRQHandler DCD SWI1_EGU1_IRQHandler_v
DCD SWI2_EGU2_IRQHandler DCD SWI2_EGU2_IRQHandler_v
DCD SWI3_EGU3_IRQHandler_v DCD SWI3_EGU3_IRQHandler_v
DCD SWI4_EGU4_IRQHandler DCD SWI4_EGU4_IRQHandler
DCD SWI5_EGU5_IRQHandler DCD SWI5_EGU5_IRQHandler
@ -387,8 +387,8 @@ Default_Handler PROC
EXPORT QDEC_IRQHandler_v [WEAK] EXPORT QDEC_IRQHandler_v [WEAK]
EXPORT COMP_LPCOMP_IRQHandler_v [WEAK] EXPORT COMP_LPCOMP_IRQHandler_v [WEAK]
EXPORT SWI0_EGU0_IRQHandler_v [WEAK] EXPORT SWI0_EGU0_IRQHandler_v [WEAK]
EXPORT SWI1_EGU1_IRQHandler [WEAK] EXPORT SWI1_EGU1_IRQHandler_v [WEAK]
EXPORT SWI2_EGU2_IRQHandler [WEAK] EXPORT SWI2_EGU2_IRQHandler_v [WEAK]
EXPORT SWI3_EGU3_IRQHandler_v [WEAK] EXPORT SWI3_EGU3_IRQHandler_v [WEAK]
EXPORT SWI4_EGU4_IRQHandler [WEAK] EXPORT SWI4_EGU4_IRQHandler [WEAK]
EXPORT SWI5_EGU5_IRQHandler [WEAK] EXPORT SWI5_EGU5_IRQHandler [WEAK]
@ -424,8 +424,8 @@ RTC1_IRQHandler_v
QDEC_IRQHandler_v QDEC_IRQHandler_v
COMP_LPCOMP_IRQHandler_v COMP_LPCOMP_IRQHandler_v
SWI0_EGU0_IRQHandler_v SWI0_EGU0_IRQHandler_v
SWI1_EGU1_IRQHandler SWI1_EGU1_IRQHandler_v
SWI2_EGU2_IRQHandler SWI2_EGU2_IRQHandler_v
SWI3_EGU3_IRQHandler_v SWI3_EGU3_IRQHandler_v
SWI4_EGU4_IRQHandler SWI4_EGU4_IRQHandler
SWI5_EGU5_IRQHandler SWI5_EGU5_IRQHandler

View File

@ -88,8 +88,8 @@ __Vectors:
.long QDEC_IRQHandler_v .long QDEC_IRQHandler_v
.long COMP_LPCOMP_IRQHandler_v .long COMP_LPCOMP_IRQHandler_v
.long SWI0_EGU0_IRQHandler_v .long SWI0_EGU0_IRQHandler_v
.long SWI1_EGU1_IRQHandler .long SWI1_EGU1_IRQHandler_v
.long SWI2_EGU2_IRQHandler .long SWI2_EGU2_IRQHandler_v
.long SWI3_EGU3_IRQHandler_v .long SWI3_EGU3_IRQHandler_v
.long SWI4_EGU4_IRQHandler .long SWI4_EGU4_IRQHandler
.long SWI5_EGU5_IRQHandler .long SWI5_EGU5_IRQHandler
@ -450,8 +450,8 @@ Default_Handler:
IRQ QDEC_IRQHandler_v IRQ QDEC_IRQHandler_v
IRQ COMP_LPCOMP_IRQHandler_v IRQ COMP_LPCOMP_IRQHandler_v
IRQ SWI0_EGU0_IRQHandler_v IRQ SWI0_EGU0_IRQHandler_v
IRQ SWI1_EGU1_IRQHandler /* restricted for Radio Notification */ IRQ SWI1_EGU1_IRQHandler_v /* restricted for Radio Notification */
IRQ SWI2_EGU2_IRQHandler /* blocked for SoftDevice Event */ IRQ SWI2_EGU2_IRQHandler_v /* blocked for SoftDevice Event */
IRQ SWI3_EGU3_IRQHandler_v IRQ SWI3_EGU3_IRQHandler_v
IRQ SWI4_EGU4_IRQHandler /* blocked */ IRQ SWI4_EGU4_IRQHandler /* blocked */
IRQ SWI5_EGU5_IRQHandler /* blocked */ IRQ SWI5_EGU5_IRQHandler /* blocked */

View File

@ -100,8 +100,8 @@ __vector_table
DCD QDEC_IRQHandler_v DCD QDEC_IRQHandler_v
DCD COMP_LPCOMP_IRQHandler_v DCD COMP_LPCOMP_IRQHandler_v
DCD SWI0_EGU0_IRQHandler_v DCD SWI0_EGU0_IRQHandler_v
DCD SWI1_EGU1_IRQHandler DCD SWI1_EGU1_IRQHandler_v
DCD SWI2_EGU2_IRQHandler DCD SWI2_EGU2_IRQHandler_v
DCD SWI3_EGU3_IRQHandler_v DCD SWI3_EGU3_IRQHandler_v
DCD SWI4_EGU4_IRQHandler DCD SWI4_EGU4_IRQHandler
DCD SWI5_EGU5_IRQHandler DCD SWI5_EGU5_IRQHandler
@ -495,14 +495,14 @@ COMP_LPCOMP_IRQHandler_v
SWI0_EGU0_IRQHandler_v SWI0_EGU0_IRQHandler_v
B . B .
PUBWEAK SWI1_EGU1_IRQHandler PUBWEAK SWI1_EGU1_IRQHandler_v
SECTION .text:CODE:NOROOT(1) SECTION .text:CODE:NOROOT(1)
SWI1_EGU1_IRQHandler SWI1_EGU1_IRQHandler_v
B . B .
PUBWEAK SWI2_EGU2_IRQHandler PUBWEAK SWI2_EGU2_IRQHandler_v
SECTION .text:CODE:NOROOT(1) SECTION .text:CODE:NOROOT(1)
SWI2_EGU2_IRQHandler SWI2_EGU2_IRQHandler_v
B . B .
PUBWEAK SWI3_EGU3_IRQHandler_v PUBWEAK SWI3_EGU3_IRQHandler_v