This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

SD132 NRF52 gcc debugging

Hi

I'm trying to port my firmware to the NRF52 DK, but I'm having trouble getting it to work. Could you give me a hint based on the stack trace below, what the problem might be?

Thread #1 <main> (Suspended : Signal : SIGTRAP:Trace/breakpoint trap)	
	0x20001248	
	<signal handler called>() at 0xfffffff9	
	0xf5bbf576	
	0x1000000	

I'm using

  • SEGGER J-Link GDB Server V5.12g
  • gcc 5.4 q2
  • Eclipse Mars

Everything works fine for the NRF51 DK... This is driving me crazy..

Thanks for your hints in advance!

  • Can't you compile with debug symbols built into the object file (CFLAGS += -DDEBUG) so gdb can print out a readable trace? Even if you could determine which handler was called (at ...ffff9) , with debug symbols compiled in the trace would tell you the name of the last function called etc.

  • Hi

    these are all my defines, some of them are project specific:

    -DNRF52 
    -D__HEAP_SIZE=0 
    -D__VERSION_STR__=\"1.0.0.31\" 
    -DSOFTDEVICE_PRESENT 
    -DBOARD_PCA10040 
    -DNRF52_PAN_12 
    -DNRF52_PAN_15 
    -DNRF52_PAN_58 
    -DNRF52_PAN_55 
    -DNRF52_PAN_54 
    -DNRF52_PAN_31 
    -DNRF52_PAN_30 
    -DNRF52_PAN_51 
    -DNRF52_PAN_36 
    -DNRF52_PAN_53 
    -DNRF_LOG_USES_RTT=1 
    -DS132 
    -DCONFIG_GPIO_AS_PINRESET 
    -DBLE_STACK_SUPPORT_REQD 
    -DSWI_DISABLE0 
    -DNRF52_PAN_20 
    -DNRF52_PAN_64 
    -DNRF52_PAN_62 
    -DNRF52_PAN_63 
    -mcpu=cortex-m4 
    -mthumb 
    -mabi=aapcs 
    --std=gnu99 
    -mfloat-abi=hard 
    -mfpu=fpv4-sp-d16 
    -ffunction-sections 
    -fdata-sections 
    -fno-strict-aliasing 
    -fno-builtin 
    --short-enums  
    -DBSP_DEFINES_ONLY 
    -DREEDSWITCH 
    -DUSE_EEPROM=1 
    -DESB 
    -DNRF_ESB_MAX_PAYLOAD_LENGTH=128 
    -Wall -Werror -O0 -g3
    -DDEBUG
    

    But still no symbols - this is really puzzling me, as it works nice with the NRF51...

  • Looks like the sigtrap is occurring in the softdevice, hence no debug symbols. Please include the core register values in your description. You can do that from Eclipse, or call nrfjprog --readregs -f nrf52. Also which version of the SD are using?

  • Upfront: I'm using SD132 V3. I paste the registers later. Hope this might help already.

  • These are my ld-file settings:

    MEMORY
        {
          FLASH (rx) : ORIGIN = 0x1f000, LENGTH = 0x61000
          RAM (rwx) :  ORIGIN = 0x20002080, LENGTH = 0xdf80
        }
    

    The output of nrfjprog readregs is

    R0:   0x0001E0D1
    R1:   0x20001248
    R2:   0x00002000
    R3:   0x00000000
    R4:   0x10001000
    R5:   0x00000000
    R6:   0x00000000
    R7:   0x0001E0D1
    R8:   0x00000000
    R9:   0x00000000
    R10:  0x00000000
    R11:  0x00000000
    R12:  0x00000000
    SP:   0x20001230
    LR:   0xFFFFFFF9
    PC:   0x20001248
    xPSR: 0x61000003
    MSP:  0x20001230
    PSP:  0x00000000
    

    Meanwhile I also tried to compile with gcc 4.9 and 5.2 without success. The symptoms stay the same... :-(

Related