I working on a project which is based on a HiSilicon HI3518EV300 device.
J-Link is connected to the device via JTAG (RST, TDO, TDI, TMS, TCK).
As we don't have the chips nRESET signal i have overwritten the default reset strategy in my JLinkScript like this to issue the reset by a write to the respective system-controll register:
The software running on the HI3518EV is seperated in a bootloader and an application.
The bootloader does all the low level initialization like PLL and external memory.
For that reason the bootloader code must be executed before J-Link can load the application into RAM.
To make this happen, i added the `JLINK_SYS_Sleep(1000)` command before `JLINK_TARGET_Halt()`.
The reset, the delay and the halt seems to work. However, afterwards i get read erros.
It seems like the JTAG connection got lost...
Display All
If i quit the GDB server and start it again, it reconnects to the HI3518 and then i can load the application into the RAM and start debugging the applicaion.
Any ideas how to solve this problem. Or how to automate the reconnect?
Thanks and best regards
Manuel
J-Link is connected to the device via JTAG (RST, TDO, TDI, TMS, TCK).
As we don't have the chips nRESET signal i have overwritten the default reset strategy in my JLinkScript like this to issue the reset by a write to the respective system-controll register:
The software running on the HI3518EV is seperated in a bootloader and an application.
The bootloader does all the low level initialization like PLL and external memory.
For that reason the bootloader code must be executed before J-Link can load the application into RAM.
To make this happen, i added the `JLINK_SYS_Sleep(1000)` command before `JLINK_TARGET_Halt()`.
The reset, the delay and the halt seems to work. However, afterwards i get read erros.
It seems like the JTAG connection got lost...
Source Code
- EGGER J-Link GDB Server V6.94d Command Line Version
- JLinkARM.dll V6.94d (DLL compiled Feb 12 2021 15:56:18)
- Command line: -jlinkscriptfile gdbserver.JLinkScript -device CORTEX-A7 -if JTAG -speed 12000
- -----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: yes
- Generate logfile: off
- Verify download: off
- Init regs on start: off
- Silent mode: off
- Single run mode: off
- Target connection timeout: 0 ms
- ------J-Link related settings------
- J-Link Host interface: USB
- J-Link script: gdbserver.JLinkScript
- J-Link settings file: none
- ------Target related settings------
- Target device: CORTEX-A7
- Target interface: JTAG
- Target interface speed: 12000kHz
- Target endian: little
- Connecting to J-Link...
- J-Link is connected.
- Firmware: J-Link V11 compiled Oct 21 2022 11:14:15
- Hardware: V11.00
- S/N: 601000927
- Feature(s): RDI, FlashBP, FlashDL, JFlash, GDB
- Checking target voltage...
- Target voltage: 3.32 V
- Listening on TCP/IP port 2331
- Connecting to target...
- J-Link found 1 JTAG device, Total IRLen = 4
- JTAG ID: 0x4BA00477 (Cortex-A7)
- Connected to target
- Waiting for GDB connection...Connected to 127.0.0.1
- Reading all registers
- WARNING: Failed to read memory @ address 0x1A0159EE
- WARNING: Failed to read memory @ address 0x1A0159EA
If i quit the GDB server and start it again, it reconnects to the HI3518 and then i can load the application into the RAM and start debugging the applicaion.
Any ideas how to solve this problem. Or how to automate the reconnect?
Thanks and best regards
Manuel