The nRF7002 DFU does not work on my custom board.

dfu_nrf7002.zip

Here is a sample project for nRF7002 DFU. This sample project worked on the nRF7002DK board.
I also tried it on a Fanstel evaluation board for reference. Debug tracing is not available, but the firmware worked well.

This is my question. This sample project does not work on my custom board, it seems to hang up in Bootloader. Why doesn't it work?
I was thought the reason this sample project not work is no SPI Nor flash IC on my custom board. But this sample project works on a Fanstel evaluation board. This board doesn't have SPI Nor Flash.
(This project defines CONFIG_SPI_NOR=n in prj.conf)

My custom board is based on the nRF7002DK pin definitions and uses the available pins. SPI4 peripheral is unused so I use it for a different purpose.
But these definitions should not affect the sample project. Because this sample project does not use any I/O pins.

Why doesn't this sample project work on my custom board?

Parents
  • Additional information.
    NCS SDK is 2.6.0
    mycustomboard.overlay

    Here is overlay file for my custom board. Based on nRF7002DK evaluation board file.(nrf7002dk_nrf5340_cpuapp, not _ns)

    JLinkGDBServerCL: Target device:                 nrf5340_xxaa_app
    JLinkGDBServerCL: Target device parameters:      none
    JLinkGDBServerCL: Target interface:              SWD
    JLinkGDBServerCL: Target interface speed:        12000kHz
    JLinkGDBServerCL: Target endian:                 little
    JLinkGDBServerCL: 
    =thread-group-added,id="i1"
    =cmd-param-changed,param="pagination",value="off"
    0x0000b030 in ?? ()
    [New Remote target]
    

    JLinkGDBServerCL: ------Target related settings------
    JLinkGDBServerCL: Target device:                 nrf5340_xxaa_app
    JLinkGDBServerCL: Target device parameters:      none
    JLinkGDBServerCL: Target interface:              SWD
    JLinkGDBServerCL: Target interface speed:        12000kHz
    JLinkGDBServerCL: Target endian:                 little
    JLinkGDBServerCL: 
    =thread-group-added,id="i1"
    =cmd-param-changed,param="pagination",value="off"
    __nrfy_internal_spim_events_process (p_reg=p_reg@entry=0x5000a000, mask=mask@entry=64, p_xfer=p_xfer@entry=0x20001644 <m_cb+12>) at C:/ncs/v2.6.0/modules/hal/nordic/nrfx/haly/nrfy_spim.h:859
    859	    return evt_mask;
    [New Remote target]

    JLinkGDBServerCL: ------Target related settings------
    JLinkGDBServerCL: Target device:                 nrf5340_xxaa_app
    JLinkGDBServerCL: Target device parameters:      none
    JLinkGDBServerCL: Target interface:              SWD
    JLinkGDBServerCL: Target interface speed:        12000kHz
    JLinkGDBServerCL: Target endian:                 little
    JLinkGDBServerCL: 
    =thread-group-added,id="i1"
    =cmd-param-changed,param="pagination",value="off"
    0x0000386c in transfer_next_chunk (dev=dev@entry=0xa204 <__device_dts_ord_143>) at C:/ncs/v2.6.0/zephyr/drivers/spi/spi_nrfx_spim.c:334
    334			if (spi_context_rx_buf_on(ctx) &&
    [New Remote target]

    Here is some message on debug console tab.
    Each debug trace has a slightly different message. (I think the program is stopped at a different location each time.)

    Is the debug trace forced to start? Or is it not started because you can't jump to the start address?

Reply
  • Additional information.
    NCS SDK is 2.6.0
    mycustomboard.overlay

    Here is overlay file for my custom board. Based on nRF7002DK evaluation board file.(nrf7002dk_nrf5340_cpuapp, not _ns)

    JLinkGDBServerCL: Target device:                 nrf5340_xxaa_app
    JLinkGDBServerCL: Target device parameters:      none
    JLinkGDBServerCL: Target interface:              SWD
    JLinkGDBServerCL: Target interface speed:        12000kHz
    JLinkGDBServerCL: Target endian:                 little
    JLinkGDBServerCL: 
    =thread-group-added,id="i1"
    =cmd-param-changed,param="pagination",value="off"
    0x0000b030 in ?? ()
    [New Remote target]
    

    JLinkGDBServerCL: ------Target related settings------
    JLinkGDBServerCL: Target device:                 nrf5340_xxaa_app
    JLinkGDBServerCL: Target device parameters:      none
    JLinkGDBServerCL: Target interface:              SWD
    JLinkGDBServerCL: Target interface speed:        12000kHz
    JLinkGDBServerCL: Target endian:                 little
    JLinkGDBServerCL: 
    =thread-group-added,id="i1"
    =cmd-param-changed,param="pagination",value="off"
    __nrfy_internal_spim_events_process (p_reg=p_reg@entry=0x5000a000, mask=mask@entry=64, p_xfer=p_xfer@entry=0x20001644 <m_cb+12>) at C:/ncs/v2.6.0/modules/hal/nordic/nrfx/haly/nrfy_spim.h:859
    859	    return evt_mask;
    [New Remote target]

    JLinkGDBServerCL: ------Target related settings------
    JLinkGDBServerCL: Target device:                 nrf5340_xxaa_app
    JLinkGDBServerCL: Target device parameters:      none
    JLinkGDBServerCL: Target interface:              SWD
    JLinkGDBServerCL: Target interface speed:        12000kHz
    JLinkGDBServerCL: Target endian:                 little
    JLinkGDBServerCL: 
    =thread-group-added,id="i1"
    =cmd-param-changed,param="pagination",value="off"
    0x0000386c in transfer_next_chunk (dev=dev@entry=0xa204 <__device_dts_ord_143>) at C:/ncs/v2.6.0/zephyr/drivers/spi/spi_nrfx_spim.c:334
    334			if (spi_context_rx_buf_on(ctx) &&
    [New Remote target]

    Here is some message on debug console tab.
    Each debug trace has a slightly different message. (I think the program is stopped at a different location each time.)

    Is the debug trace forced to start? Or is it not started because you can't jump to the start address?

Children
No Data
Related