Other Parts Discussed in Thread: 66AK2H14
Recently I bought a SpectrumDigital XDS220 ISO debugger. It works fine with 32-BIS (ARM) code on DM368. But today, I try to add a 16-BIS (THUMB) function, it can't jump into the 16-BIS function. From the disassembly window, it will crash while stepping the BLX instruction.
I have also tried to set a breakpoint inside the 16-BIS function and free-run from a 32-BIS function. Again, it crashed when trying to stopped at the breakpoint.
Then, I try to do the same test with XDS100v3. Everything works well, though XDS100v3 is super slow on debugging DM368.
Please note that all I/D caches are disabled in the above test. And I am using CCS 6.1.3 on Windows 10.
Please also note that the first time I encountered this issue is when I to enable "16 bits code-state" of my project. Then the debugger can't run the main(). Then, I disabled "Auto-run to main" and step-by-step from boot.asm. I found the issue happened when stepping the following "BX R0" instruction:
ADD R0, PC, #1
BX R0
The above assembly code is used to change to THUMB mode. This is why I think it is related to THUMB mode. After that, I did the tests as described above.
It is almost confirmed that this is a bug of XDS200. I believe it can be fixed by updating driver or firmware of XDS220. Do anyone know how to fix it?