This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

BLE Blinky app with freeRTOS NRF_BREAKPOINT_COND when trying to connect with nRF Blinky

Hardware: customized board based on PCA10056

SW: nRF5_SDK_15.2.0_9412b96

Change:

Merge ble_app_blinky example into blinky_rtc_freertos.

/cfs-file/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-62d892acc0d346f8b35b4c8a635331b9/blinky_5F00_rtc_5F00_freertos_5F00_ble_5F00_added.zip

Kindly refer to the debug info below.

    F003FB93    bl 0x0002BD80 <nrfx_gpiote_in_event_enable>
--- app_button.c -- 185 ------------------------------------
{
ASSERT(mp_buttons);
uint32_t i;
for (i = 0; i < m_button_count; i++)
    9B01        ldr r3, [sp, #4]
    3301        adds r3, #1
    9301        str r3, [sp, #4]
--- app_button.c -- 189 ------------------------------------
for (i = 0; i < m_button_count; i++)
    4B06        ldr r3, =0x20003984 <m_button_count>
    781B        ldrb r3, [r3]
    461A        mov r2, r3
    9B01        ldr r3, [sp, #4]
    429A        cmp r2, r3
    D8EC        bhi 0x00028646
--- app_button.c -- 190 ------------------------------------
{
nrf_drv_gpiote_in_event_enable(mp_buttons[i].pin_no, true);
}
return NRF_SUCCESS;
    2300        movs r3, #0
--- app_button.c -- 195 ------------------------------------
}
    4618        mov r0, r3
    B003        add sp, sp, #12
    F85DFB04    pop.w {pc}
    BF00        nop
    3980        subs r1, #0x80
    2000        movs r0, #0
    20003984    .word 0x20003984
--- app_button.c -- 196 ------------------------------------
uint32_t app_button_disable(void)
{
    B500        push {lr}
    B083        sub sp, sp, #12
--- app_button.c -- 200 ------------------------------------
ASSERT(mp_buttons);
uint32_t i;
for (i = 0; i < m_button_count; i++)
    2300        movs r3, #0
    9301        str r3, [sp, #4]
    E00B        b 0x000286A2
--- app_button.c -- 204 ------------------------------------
{
nrf_drv_gpiote_in_event_disable(mp_buttons[i].pin_no);
    4B0D        ldr r3, =0x20003980 <mp_buttons>
    681A        ldr r2, [r3]
    9B01        ldr r3, [sp, #4]
    00DB        lsls r3, r3, #3
    4413        add r3, r2
    781B        ldrb r3, [r3]
    4618        mov r0, r3
    F003FBE6    bl 0x0002BE68 <nrfx_gpiote_in_event_disable>
--- app_button.c -- 203 ------------------------------------
for (i = 0; i < m_button_count; i++)
    9B01        ldr r3, [sp, #4]
    3301        adds r3, #1
    9301        str r3, [sp, #4]
--- app_button.c -- 203 ------------------------------------
for (i = 0; i < m_button_count; i++)
    4B08        ldr r3, =0x20003984 <m_button_count>
    781B        ldrb r3, [r3]
    461A        mov r2, r3
    9B01        ldr r3, [sp, #4]
    429A        cmp r2, r3
    D8ED        bhi 0x0002868A
--- app_button.c -- 205 ------------------------------------
nrf_drv_gpiote_in_event_disable(mp_buttons[i].pin_no);
}
// Make sure polling timer is not running.
return app_timer_stop(m_detection_delay_timer_id);
    4B06        ldr r3, =0x20003988 <m_detection_delay_timer_id_data>
    4618        mov r0, r3
    F000F94B    bl 0x0002894C <app_timer_stop>
    4603        mov r3, r0
--- app_button.c -- 210 ------------------------------------
}
    4618        mov r0, r3
    B003        add sp, sp, #12
    F85DFB04    pop.w {pc}
    20003980    .word 0x20003980
    20003984    .word 0x20003984
    20003988    .word 0x20003988
--- app_error.c -- 61 --------------------------------------
* @param[in] line_num Line number where the handler is called.
* @param[in] p_file_name Pointer to the file name.
*/
void app_error_handler_bare(ret_code_t error_code)
{
    B500        push {lr}
    B087        sub sp, sp, #28
    9001        str r0, [sp, #4]
--- app_error.c -- 66 --------------------------------------
error_info_t error_info =
    2300        movs r3, #0
    9303        str r3, [sp, #12]
    2300        movs r3, #0
    9304        str r3, [sp, #16]
    9B01        ldr r3, [sp, #4]
    9305        str r3, [sp, #20]
--- app_error.c -- 69 --------------------------------------
.p_file_name = NULL,
.err_code = error_code,
};
app_error_fault_handler(NRF_FAULT_ID_SDK_ERROR, 0, (uint32_t)(&error_info));
    AB03        add r3, sp, #12
    461A        mov r2, r3
    2100        movs r1, #0
    F2440001    movw r0, #0x4001
    F000F816    bl 0x00028718 <app_error_fault_handler>
--- app_error.c -- 74 --------------------------------------
UNUSED_VARIABLE(error_info);
}
    BF00        nop
    B007        add sp, sp, #28
    F85DFB04    pop.w {pc}
--- core_cm4.h -- 1787 -------------------------------------
\brief System Reset
\details Initiates a system reset request to reset the MCU.
*/
__STATIC_INLINE void NVIC_SystemReset(void)
{
    F3BF8F4F    dsb sy
--- core_cm4.h -- 1792 -------------------------------------
__DSB(); /* Ensure all outstanding memory accesses included
buffered write are completed before reset */
SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
    4905        ldr r1, =0xE000ED00
--- core_cm4.h -- 1795 -------------------------------------
(SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |
    4B05        ldr r3, =0xE000ED00
    68DB        ldr r3, [r3, #12]
    F40362E0    and r2, r3, #0x700
    4B04        ldr r3, =0x05FA0004
    4313        orrs r3, r2
--- core_cm4.h -- 1794 -------------------------------------
SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
    60CB        str r3, [r1, #12]
--- cmsis_gcc.h -- 425 -------------------------------------
It completes when all explicit memory accesses before this instruction complete.
*/
__attribute__((always_inline)) __STATIC_INLINE void __DSB(void)
{
__ASM volatile ("dsb 0xF":::"memory");
    F3BF8F4F    dsb sy
--- cmsis_gcc.h -- 375 -------------------------------------
__ASM volatile ("nop");
    BF00        nop
--- core_cm4.h -- 1797 -------------------------------------
__DSB(); /* Ensure completion of memory access */
for (;;) /* wait until reset */
{
__NOP();
    E7FD        b 0x0002870C
    E000ED00    .word 0xE000ED00
    05FA0004    .word 0x05FA0004
--- app_error_weak.c -- 53 ---------------------------------
* Function is implemented as weak so that it can be overwritten by custom application error handler
* when needed.
*/
__WEAK void app_error_fault_handler(uint32_t id, uint32_t pc, uint32_t info)
{
    B500        push {lr}
    B085        sub sp, sp, #20
    9003        str r0, [sp, #12]
    9102        str r1, [sp, #8]
    9201        str r2, [sp, #4]
--- cmsis_gcc.h -- 67 --------------------------------------
Can only be executed in Privileged modes.
*/
__attribute__( ( always_inline ) ) __STATIC_INLINE void __disable_irq(void)
{
__ASM volatile ("cpsid i" : : : "memory");
    B672        cpsid i
--- app_error_weak.c -- 55 ---------------------------------
*/
__WEAK void app_error_fault_handler(uint32_t id, uint32_t pc, uint32_t info)
{
__disable_irq();
NRF_LOG_FINAL_FLUSH();
    F7FEFCCC    bl 0x000270C0 <nrf_log_panic>
    BF00        nop
--- app_error_weak.c -- 59 ---------------------------------
NRF_LOG_FINAL_FLUSH();
    F7FEFAF3    bl 0x00026D14 <nrf_log_frontend_dequeue>
    4603        mov r3, r0
    2B00        cmp r3, #0
    D1FA        bne 0x0002872A
--- app_error_weak.c -- 60 ---------------------------------
#ifndef DEBUG
NRF_LOG_ERROR("Fatal error");
    4A11        ldr r2, =0x0002FC90 <m_nrf_log_app_logs_data_const>
    4B12        ldr r3, =0x0002FC50 <__crypto_data_load_end__>
    1AD3        subs r3, r2, r3
    08DB        lsrs r3, r3, #3
    041B        lsls r3, r3, #16
    F0430301    orr r3, r3, #1
    4910        ldr r1, =0x0002FDFC
    4618        mov r0, r3
    F7FEFAA3    bl 0x00026C90 <nrf_log_frontend_std_0>
--- app_error_weak.c -- 96 ---------------------------------
break;
}
#endif
NRF_BREAKPOINT_COND;
    4B0F        ldr r3, =0xE000EDF0
    681B        ldr r3, [r3]
    F0030301    and r3, r3, #1
    2B00        cmp r3, #0
    D000        beq 0x00028758
--- app_error_weak.c -- 100 --------------------------------
NRF_BREAKPOINT_COND;
    BE00        bkpt #0

Parents Reply Children
No Data
Related