JLINK Connnects but cannot do anything

I am bring up a custom board based on the DA14706 and cannot get JLINK connection working or uart serial booting

I can do a basic connection in jlink but it doesnt respond to any commands (mem, reset, halt, etc...)

Is there something I need to do to a new chip to get it started?

  • Hi There,

    Thank you for posting your question online.

    I am bring up a custom board based on the DA14706 and cannot get JLINK connection working or uart serial booting

    Did you follow the DA1470x HW Guidelines AN-B-087 when designing the board?
    Please refer on the User Manual DA14706 PRO Development Kit UM-B-148, on sections 4.2 USB to UART and 4.3 USB to Serial Wire Debug Port (SWD).
    Please also refer on the DA1470x Datasheet. I believe you have used the correct SWD pins for the Cortex-M33

    Have you connected the Reset pin on your J-link probe? If yes, is it connected to the Flash as well?

    Best Regards,
    OV_Renesas

  • Yes, my board is designed directly from the 14706 daughter board.  Which means reset from jlink is connected but not to flash....should it be?  I dont see any notes about that.

    The only difference between mine is I do not have level translators on jlink or uart and am running them both at 3v.

  • Hi For all the Da series do not connect the reset, the reset on the DA series is unusual as it is active high not low, and the jlink keeps the reset high until resetting, We had this issue with the DA14683, took forever to find the issue. Once we disconnected the reset all worked fine. Hope this helps

  • Hi There,

    Thank you for the reply.
    You mentioned that you tried both J-link and UART serial programming/booting. The Reset is necessary for the UART serial programming, and I think all the J-Link probes have a Reset pin exposed. I was wondering if you have connected that as well. As Jeff mentioned, most of our DA BLE products have a Reset of active high, while the J-Link expects an active low. On our Dev Kits there is a level shifter so J-link can receive the correct Reset. 

    It would be helpful if you shared the J-link probe you have and the connections you have made. 
    I think most of the J-link probes have 5V exposed pin and not 3V. 

    Best Regards,
    OV_Renesas

  • Active hi reset....who..what...omg...i hope thats it.  Ill let you know when i get back to my office...if so, life saver.

  • Nearly all modern jlink have a vref for setting io voltage.  I tried 3.0 and 1.8.  I have a new probe ill try today and investigate the reset.  Thanks for the active feedback.  Ill let you know!

  • Okay...the reset is active low on the DA14706 (at least according to the data sheet)






    Okay, some new info...i can successfully connect via jtag and load an executable into ram however it asserts here:  (this is the gpio handling example from the BLE_DA1470x SDK examples)





    Here is the log for my connection:

    `

    SEGGER J-Link GDB Server V7.22b Command Line Version

    JLinkARM.dll V7.22b (DLL compiled Jun 17 2021 17:22:49)

    Command line: -if swd -device Cortex-M33 -endian little -speed 8000 -port 2331 -swoport 2332 -telnetport 2333 -vd -ir -localhostonly 1 -log jlink.log -singlerun -strict -rtos GDBServer/RTOSPlugin_FreeRTOS
    -----GDB Server start settings-----
    GDBInit file: none
    GDB Server Listening port: 2331
    SWO raw output listening port: 2332
    Terminal I/O port: 2333
    Accept remote connection: localhost only
    Generate logfile: on
    Verify download: on
    Init regs on start: on
    Silent mode: off
    Single run mode: on
    Target connection timeout: 0 ms
    ------J-Link related settings------
    J-Link Host interface: USB
    J-Link script: none
    J-Link settings file: none
    ------Target related settings------
    Target device: Cortex-M33
    Target interface: SWD
    Target interface speed: 8000kHz
    Target endian: little

    Connecting to J-Link...
    J-Link is connected.
    Firmware: J-Link Ultra V6 compiled Nov 14 2022 17:08:27
    Hardware: V6.00
    S/N: 506000686
    Feature(s): RDI, FlashBP, FlashDL, JFlash, GDB
    Checking target voltage...
    Target voltage: 3.01 V
    Listening on TCP/IP port 2331
    Connecting to target...
    Connected to target
    Waiting for GDB connection...Connected to 127.0.0.1
    Reading all registers
    Read 4 bytes @ address 0x00000000 (Data = 0x20183000)
    Read 2 bytes @ address 0x00000000 (Data = 0x3000)
    Received monitor command: speed 1000
    Target interface speed set to 1000 kHz
    Received monitor command: clrbp
    Received monitor command: reset 0
    Resets core & peripherals via SYSRESETREQ & VECTRESET bit.
    Received monitor command: halt
    Halting target CPU...
    ...Target halted (PC = 0x000029B8)
    Received monitor command: regs
    R0 = 00000000, R1 = 00000000, R2 = 00000000, R3 = 00000000
    R4 = 00000000, R5 = 00000000, R6 = 00000000, R7 = 00000000
    R8 = 04D5BC22, R9 = AF1BB042, R10= 20173000, R11= 00000000
    R12= 18EAD749, R13= 20183000, MSP= 20183000, PSP= 00000000
    R14(LR) = FFFFFFFF, R15(PC) = 000029B8
    XPSR F9000000, APSR F8000000, EPSR 01000000, IPSR 00000000
    CFBP 00000000, CONTROL 00, FAULTMASK 00, BASEPRI 00, PRIMASK 00

    Security extension regs:
    MSP_S = 00000000, MSPLIM_S = 00000000
    PSP_S = 00000000, PSPLIM_S = 00000000
    MSP_NS = 00000000, MSPLIM_NS = 00000000
    PSP_NS = 00000000, PSPLIM_NS = 00000000
    CONTROL_S 00, FAULTMASK_S 00, BASEPRI_S 00, PRIMASK_S 00
    CONTROL_NS 00, FAULTMASK_NS 00, BASEPRI_NS 00, PRIMASK_NS 00

    Reading all registers
    Received monitor command: speed auto
    Select auto target interface speed (2000 kHz)
    Received monitor command: flash breakpoints 1
    Flash breakpoints enabled
    Received monitor command: semihosting enable
    Semi-hosting enabled (Handle on BKPT)
    Received monitor command: semihosting IOClient 3
    Semihosting I/O set to TELNET and GDB Client
    Received monitor command: memU32 0x0F001000 = 0xdeadbeef
    Writing 0xDEADBEEF @ address 0x0F001000
    Received monitor command: memU32 0x0F001004 = 0xdeadbeef
    Writing 0xDEADBEEF @ address 0x0F001004
    Received monitor command: memU32 0x0F001008 = 0xdeadbeef
    Writing 0xDEADBEEF @ address 0x0F001008
    Received monitor command: memU32 0x0F00100c = 0xdead10cc
    Writing 0xDEAD10CC @ address 0x0F00100C
    Received monitor command: memU32 0x100c0050 = 1
    Writing 0x00000001 @ address 0x100C0050
    Received monitor command: reset 0
    Resets core & peripherals via SYSRESETREQ & VECTRESET bit.
    Received monitor command: sleep 1
    Sleep 1ms
    Received monitor command: reset 0
    Resets core & peripherals via SYSRESETREQ & VECTRESET bit.
    Received monitor command: memU32 0x50000024 = 0x000000C5
    Writing 0x000000C5 @ address 0x50000024
    Received monitor command: memU32 0x50000010 = 0x4
    Writing 0x00000004 @ address 0x50000010
    Loading RTOS plugin: GDBServer/RTOSPlugin_FreeRTOS...
    RTOS plugin (API v1.0) loaded successfully
    RTOS plugin: Loaded
    Received symbol: pxCurrentTCB (0x2005397C)
    Received symbol: pxReadyTasksLists (0x20053980)
    Received symbol: xDelayedTaskList1 (0x20053A40)
    Received symbol: xDelayedTaskList2 (0x20053A54)
    Received symbol: pxDelayedTaskList (0x20053A14)
    Received symbol: pxOverflowDelayedTaskList (0x20053A7C)
    Received symbol: xPendingReadyList (0x20053A2C)
    Received symbol: xTasksWaitingTermination (0x20053A68)
    Received symbol: xSuspendedTaskList (0x20053A18)
    Received symbol: uxCurrentNumberOfTasks (0x20053A80)
    Received symbol: uxTopUsedPriority (0x20050264)
    Received symbol: uxTopReadyPriority (0x20053978)
    Received symbol: vPortEnableVFP (0x00000000)
    Received symbol: FreeRTOSDebugConfig (0x200501CC)
    All mandatory symbols successfully loaded.
    Read 4 bytes @ address 0x000029B8 (Data = 0x2BE03301)
    All mandatory symbols successfully loaded.
    Downloading 1536 bytes @ address 0x20010000 - Verified OK
    Downloading 16080 bytes @ address 0x20010600 - Verified OK
    Downloading 16016 bytes @ address 0x200144D0 - Verified OK
    Downloading 16000 bytes @ address 0x20018360 - Verified OK
    Downloading 16032 bytes @ address 0x2001C1E0 - Verified OK
    Downloading 912 bytes @ address 0x20020080 - Verified OK
    Downloading 8 bytes @ address 0x20020410 - Verified OK
    Downloading 16 bytes @ address 0x20020418 - Verified OK
    Downloading 612 bytes @ address 0x20050000 - Verified OK
    Downloading 4 bytes @ address 0x20050264 - Verified OK
    Writing register (PC = 0x 200)
    Reading all registers
    Read register 0 (4 bytes) from DLL: 00000000
    Read register 1 (4 bytes) from DLL: 00000000
    Read register 2 (4 bytes) from DLL: 00000000
    Read register 3 (4 bytes) from DLL: 00000000
    Read register 4 (4 bytes) from DLL: 00000000
    Read register 5 (4 bytes) from DLL: 00000000
    Read register 6 (4 bytes) from DLL: 00000000
    Read register 7 (4 bytes) from DLL: 00000000
    Read register 8 (4 bytes) from DLL: 22BCD504
    Read register 9 (4 bytes) from DLL: 42B019AF
    Read register 10 (4 bytes) from DLL: 00301720
    Read register 11 (4 bytes) from DLL: 00000000
    Read register 12 (4 bytes) from DLL: 49D7EA18
    Read register 13 (4 bytes) from DLL: 00301820
    Read register 14 (4 bytes) from DLL: FFFFFFFF
    Read register 15 (4 bytes) from DLL: 00020000
    Read register 16 (4 bytes) from DLL: 000000F9
    Read 4 bytes @ address 0x00000200 (Data = 0x0004F04F)
    Read 2 bytes @ address 0x00000200 (Data = 0xF04F)
    Read 2 bytes @ address 0x00000202 (Data = 0x0004)
    Read 2 bytes @ address 0x0000ED08 (Data = 0xB500)
    Read 2 bytes @ address 0x0000ED08 (Data = 0xB500)
    Received monitor command: clrbp
    Received monitor command: reset
    Resetting target
    Received monitor command: halt
    Halting target CPU...
    ...Target halted (PC = 0x00000200)
    Received monitor command: exec SetRTTSearchRanges 0x20010000 0x100000
    Executed SetRTTSearchRanges 0x20010000 0x100000
    Read 2 bytes @ address 0x0000ED08 (Data = 0xB500)
    Received monitor command: regs
    R0 = 00000000, R1 = 00000000, R2 = 00000000, R3 = 00000000
    R4 = 00000000, R5 = 00000000, R6 = 00000000, R7 = 00000000
    R8 = 04D5BC22, R9 = AF19B042, R10= 20173000, R11= 00000000
    R12= 18EAD749, R13= 20054CC8, MSP= 20054CC8, PSP= 00000000
    R14(LR) = FFFFFFFF, R15(PC) = 00000200
    XPSR F9000000, APSR F8000000, EPSR 01000000, IPSR 00000000
    CFBP 00000000, CONTROL 00, FAULTMASK 00, BASEPRI 00, PRIMASK 00

    Security extension regs:
    MSP_S = 00000000, MSPLIM_S = 00000000
    PSP_S = 00000000, PSPLIM_S = 00000000
    MSP_NS = 00000000, MSPLIM_NS = 00000000
    PSP_NS = 00000000, PSPLIM_NS = 00000000
    CONTROL_S 00, FAULTMASK_S 00, BASEPRI_S 00, PRIMASK_S 00
    CONTROL_NS 00, FAULTMASK_NS 00, BASEPRI_NS 00, PRIMASK_NS 00

    Reading all registers
    Read register 0 (4 bytes) from DLL: 00000000
    Read register 1 (4 bytes) from DLL: 00000000
    Read register 2 (4 bytes) from DLL: 00000000
    Read register 3 (4 bytes) from DLL: 00000000
    Read register 4 (4 bytes) from DLL: 00000000
    Read register 5 (4 bytes) from DLL: 00000000
    Read register 6 (4 bytes) from DLL: 00000000
    Read register 7 (4 bytes) from DLL: 00000000
    Read register 8 (4 bytes) from DLL: 22BCD504
    Read register 9 (4 bytes) from DLL: 42B019AF
    Read register 10 (4 bytes) from DLL: 00301720
    Read register 11 (4 bytes) from DLL: 00000000
    Read register 12 (4 bytes) from DLL: 49D7EA18
    Read register 13 (4 bytes) from DLL: C84C0520
    Read register 14 (4 bytes) from DLL: FFFFFFFF
    Read register 15 (4 bytes) from DLL: 00020000
    Read register 16 (4 bytes) from DLL: 000000F9
    Setting breakpoint @ address 0x0000ED08, Size = 2, BPHandle = 0x0001
    Starting target CPU...
    Debugger requested to halt target...
    ...Target halted (PC = 0x00000E12)
    ERROR: FreeRTOS thread count is unreasonably big, not proceeding.
    Reading all registers
    Read register 0 (4 bytes) from DLL: A04C0520
    Read register 1 (4 bytes) from DLL: 30000000
    Read register 2 (4 bytes) from DLL: 00010450
    Read register 3 (4 bytes) from DLL: 08000000
    Read register 4 (4 bytes) from DLL: 00000000
    Read register 5 (4 bytes) from DLL: C5000000
    Read register 6 (4 bytes) from DLL: C5000000
    Read register 7 (4 bytes) from DLL: 00000000
    Read register 8 (4 bytes) from DLL: 22BCD504
    Read register 9 (4 bytes) from DLL: 42B019AF
    Read register 10 (4 bytes) from DLL: 00301720
    Read register 11 (4 bytes) from DLL: 00000000
    Read register 12 (4 bytes) from DLL: 49D7EA18
    Read register 13 (4 bytes) from DLL: A04C0520
    Read register 14 (4 bytes) from DLL: B7040000
    Read register 15 (4 bytes) from DLL: 120E0000
    Read register 16 (4 bytes) from DLL: 00000029
    Removing breakpoint @ address 0x0000ED08, Size = 2
    Read 4 bytes @ address 0x00000E12 (Data = 0x3BCCE7FE)
    Read 4 bytes @ address 0x000004B6 (Data = 0x4E4D4C4D)
    Reading 64 bytes @ address 0x20054C80
    Read 4 bytes @ address 0x50000024 (Data = 0x000000E5)
    Read 4 bytes @ address 0x00000000 (Data = 0x20054CC8)
    Reading 64 bytes @ address 0x20054CC0
    Read 4 bytes @ address 0x50000024 (Data = 0x000000E5)
    Read 4 bytes @ address 0x00000000 (Data = 0x20054CC8)
    Reading 8 bytes @ address 0x20054AC0
    Reading 8 bytes @ address 0x20054AC8
    Reading 8 bytes @ address 0x20054AD0
    Reading 8 bytes @ address 0x20054AD8
    Reading 8 bytes @ address 0x20054AE0
    Reading 8 bytes @ address 0x20054AE8
    Reading 8 bytes @ address 0x20054AF0
    Reading 8 bytes @ address 0x20054AF8
    Reading 8 bytes @ address 0x20054B00
    Reading 8 bytes @ address 0x20054B08
    Reading 8 bytes @ address 0x20054B10
    Reading 8 bytes @ address 0x20054B18
    Reading 8 bytes @ address 0x20054B20
    Reading 8 bytes @ address 0x20054B28
    Reading 8 bytes @ address 0x20054B30
    Reading 8 bytes @ address 0x20054B38
    Reading 8 bytes @ address 0x20054B40
    Reading 8 bytes @ address 0x20054B48
    Reading 8 bytes @ address 0x20054B50
    Reading 8 bytes @ address 0x20054B58
    Reading 8 bytes @ address 0x20054B60
    Reading 8 bytes @ address 0x20054B68
    Reading 8 bytes @ address 0x20054B70
    Reading 8 bytes @ address 0x20054B78
    Reading 8 bytes @ address 0x20054B80
    Read 1 bytes @ address 0x20054B88 (Data = 0xE4)
    Reading 8 bytes @ address 0x20054AC0
    Reading 8 bytes @ address 0x20054AC8
    Reading 8 bytes @ address 0x20054AD0
    Reading 8 bytes @ address 0x20054AD8
    Reading 8 bytes @ address 0x20054AE0
    Reading 8 bytes @ address 0x20054AE8
    Reading 8 bytes @ address 0x20054AF0
    Reading 8 bytes @ address 0x20054AF8
    Reading 8 bytes @ address 0x20054B00
    Reading 8 bytes @ address 0x20054B08
    Reading 8 bytes @ address 0x20054B10
    Reading 8 bytes @ address 0x20054B18
    Reading 8 bytes @ address 0x20054B20
    Reading 8 bytes @ address 0x20054B28
    Reading 8 bytes @ address 0x20054B30
    Reading 8 bytes @ address 0x20054B38
    Reading 8 bytes @ address 0x20054B40
    Reading 8 bytes @ address 0x20054B48
    Reading 8 bytes @ address 0x20054B50
    Reading 8 bytes @ address 0x20054B58
    Reading 8 bytes @ address 0x20054B60
    Reading 8 bytes @ address 0x20054B68
    Reading 8 bytes @ address 0x20054B70
    Reading 8 bytes @ address 0x20054B78
    Reading 8 bytes @ address 0x20054B80
    Read 1 bytes @ address 0x20054B88 (Data = 0xE4)`

  • More specifically:

    #ifndef POPULATE_DEVICE_INFO
    return true;
    #else
    if (hw_sys_device_info_check(DEVICE_CHIP_ID_MASK, DEVICE_CHIP_ID_2798)) {
    if (hw_sys_device_info_check(DEVICE_REVISION_MASK, DEVICE_REV_A) &&
    hw_sys_device_info_check(DEVICE_SWC_MASK, DEVICE_SWC_1)) {
    return true;
    }
    } else if (hw_sys_device_info_check(DEVICE_CHIP_ID_MASK, DEVICE_CHIP_ID_3107)) {
    if (hw_sys_device_info_check(DEVICE_REVISION_MASK, DEVICE_REV_A) &&
    hw_sys_device_info_check(DEVICE_SWC_MASK, DEVICE_SWC_0)) {
    return true;
    }
    }

    return false;
    #endif

    This is evaluating to CHIP_ID2798, DEVICE_REV_A, but SWC_0 (vice 1)

    When i attempt to do a qspi flash it hangs after loading the executable bootloader (maybe for the same reason)