Hi all,
I am using a J-Link emulator and my software v4.92.
I am working on a Freescale SABRE board for Small Devices, with an i.MX6Q6 chip, using GDB.
I have worked out all the settings I needed to access the DDR, and I can download and debug correctly.
However, after the first session, the device is not reset correctly: after the second download, before I start the application, I can see that all the peripheral registers are still holding the values from the first session. I believe this is the cause of interrupts and timers no longer working. At that point, I have to power down the board and restart the GDB server, which is time consuming.
I have gone through the Segger forum reading posts about the i.MX6, but none of the proposed solutions worked for me.
This is the command line I use to launch the GDB server:
JLinkGDBServer.exe -device MCIMX6Q6 -speed auto -if JTAG
When I start the debug session, I am sending the following commands:
set remotetimeout 60
monitor reset
monitor sleep 1000
monitor reset 0
monitor sleep 1000
monitor memu16 0x020BC000 = 0x30
monitor memu32 0x020C4068 = 0xFFFFFFFF
monitor memu32 0x020C406C = 0xFFFFFFFF
monitor memu32 0x020C4070 = 0xFFFFFFFF
monitor memu32 0x020C4074 = 0xFFFFFFFF
monitor memu32 0x020C4078 = 0xFFFFFFFF
monitor memu32 0x020C407C = 0xFFFFFFFF
monitor memu32 0x020C4080 = 0xFFFFFFFF
monitor memu32 0x020C4084 = 0xFFFFFFFF
...(more register writes follow)
I know the double reset is weird, I am just trying to find a combination that works... The JLink manual only lists "monitor reset" parameters for Cortex M and Arm7/9, but this is a Cortex A9.
PS: I tried the latest JLink software (v2.94c), and I couldn't even connect to the board! I had to re-install v4.92, so I think there is even a bigger problem on v4.94c.
Any comment appreciated!
Thanks,
-Emiliano
I am using a J-Link emulator and my software v4.92.
I am working on a Freescale SABRE board for Small Devices, with an i.MX6Q6 chip, using GDB.
I have worked out all the settings I needed to access the DDR, and I can download and debug correctly.
However, after the first session, the device is not reset correctly: after the second download, before I start the application, I can see that all the peripheral registers are still holding the values from the first session. I believe this is the cause of interrupts and timers no longer working. At that point, I have to power down the board and restart the GDB server, which is time consuming.
I have gone through the Segger forum reading posts about the i.MX6, but none of the proposed solutions worked for me.
This is the command line I use to launch the GDB server:
JLinkGDBServer.exe -device MCIMX6Q6 -speed auto -if JTAG
When I start the debug session, I am sending the following commands:
set remotetimeout 60
monitor reset
monitor sleep 1000
monitor reset 0
monitor sleep 1000
monitor memu16 0x020BC000 = 0x30
monitor memu32 0x020C4068 = 0xFFFFFFFF
monitor memu32 0x020C406C = 0xFFFFFFFF
monitor memu32 0x020C4070 = 0xFFFFFFFF
monitor memu32 0x020C4074 = 0xFFFFFFFF
monitor memu32 0x020C4078 = 0xFFFFFFFF
monitor memu32 0x020C407C = 0xFFFFFFFF
monitor memu32 0x020C4080 = 0xFFFFFFFF
monitor memu32 0x020C4084 = 0xFFFFFFFF
...(more register writes follow)
I know the double reset is weird, I am just trying to find a combination that works... The JLink manual only lists "monitor reset" parameters for Cortex M and Arm7/9, but this is a Cortex A9.
PS: I tried the latest JLink software (v2.94c), and I couldn't even connect to the board! I had to re-install v4.92, so I think there is even a bigger problem on v4.94c.
Any comment appreciated!
Thanks,
-Emiliano