Program for nRF 51822(softdevice s130 v2.0.x) board on mbed OS 2.0 will halt on BLE stack

09 Dec 2016

When I create a BLE application of mbed's online compiler nRF 51822 board (soft device s 130 v 2.0), the BLE stack jumps to the default signal handler and the program stops. When I debug, there were the following differences.

startup_nrf51_at_mbed

External Interrupts
                DCD      GPIOTE_IRQHandler_v ;GPIOTE
                DCD      ADC_IRQHandler_v ;ADC
                DCD      TIMER0_IRQHandler ;TIMER0
                DCD      TIMER1_IRQHandler_v ;TIMER1
                DCD      TIMER2_IRQHandler_v ;TIMER2
                DCD      RTC0_IRQHandler ;RTC0
                DCD      TEMP_IRQHandler ;TEMP
                DCD      RNG_IRQHandler ;RNG
                DCD      ECB_IRQHandler ;ECB
                DCD      CCM_AAR_IRQHandler ;CCM_AAR
                DCD      WDT_IRQHandler_v ;WDT
                DCD      RTC1_IRQHandler_v ;RTC1
                DCD      QDEC_IRQHandler_v ;QDEC
                DCD      LPCOMP_IRQHandler_v ;LPCOMP_COMP
                DCD      SWI0_IRQHandler_v ;SWI0
                DCD      SWI1_IRQHandler_v ;SWI1
                DCD      SWI2_IRQHandler_v ;SWI2
                DCD      SWI3_IRQHandler_v ;SWI3
                DCD      SWI4_IRQHandler ;SWI4
                DCD      SWI5_IRQHandler ;SWI5

startup_nrf51_at_nRF51_SDK

                DCD     GPIOTE_IRQHandler
                DCD     ADC_IRQHandler
                DCD     TIMER0_IRQHandler
                DCD     TIMER1_IRQHandler
                DCD     TIMER2_IRQHandler
                DCD     RTC0_IRQHandler
                DCD     TEMP_IRQHandler
                DCD     RNG_IRQHandler
                DCD     ECB_IRQHandler
                DCD     CCM_AAR_IRQHandler
                DCD     WDT_IRQHandler
                DCD     RTC1_IRQHandler
                DCD     QDEC_IRQHandler
                DCD     LPCOMP_IRQHandler
                DCD     SWI0_IRQHandler
                DCD     SWI1_IRQHandler
                DCD     SWI2_IRQHandler
                DCD     SWI3_IRQHandler
                DCD     SWI4_IRQHandler
                DCD     SWI5_IRQHandler

I solved the problem by using the offline compiler to make the file-"startup_nrf51.s" contents of nRF51_SDK 12.1.0.