Hello all,
I am new to Jtag debuger, after I read some documents and ARM jtag debuger specs, I wrote some codes to debug my CPU ARM926ej-s, I can break the CPU, also can read and write the core register(R0-R15). but when I read memory from 0xFFFF0000, I use the follwing steps to read.
-
Scan 0xFFFF0000 to R0
-
Scan a LDMIA R0, {R1-r13} with SYSSPEED low
-
Scan a NOP with SYSSPEED high
-
Scan a RESTART instruction
-
Read back ICE status, value is 0x2CD,
-
Scan a INTEST instruction
-
Read core register R1-R13
-
Read back ICE status, value is 0,
At step7 I can get the correct value,but after step 8, I try to read the next 13 memory location, I can not get the correct value. I guess the step 7 got error, so I step into the following function,
-
Scan a SCAN_N instruction
-
Scan a scan chain 1 data
-
Scan a INTEST instruction
-
Scan a STMIA R0, {R1-r13} with SYSSPEED low
-
Scan a NOP with SYSSPEED low
-
Scan a NOP with SYSSPEED low
-
From I scan out all registers.
After step3 I try to read ICE status, the value is 0x2C5
After step4 I try to read ICE status, the value is 0x2C0, I don’t know what cause the ICE status changed, is this the root cause?
thanks