AnsweredAssumed Answered

CW with TBDML  : watchpoints don't work

Question asked by coste alain on Apr 11, 2015
Latest reply on Jun 3, 2015 by ZhangJennie



I use CW5.1 special edition, with TBDML (dll v1.4, gdi dll v1.7) and Windows XP (sorry...).

Hiwave is launched directly from Windows, not from the IDE.

The problem was the same with previous versions of CW and TBDML.

The processor of my application is S12XEQ512.

Almost everything works fine, but watchpoints (in particular breakpoints work well).


I can set watchpoints and they appear in data and memory windows of Hiwave.

But the program doesn't stop when the corrresponding memory location is read or written.


I did some investigations, and it seems that comparator adress registers of the DBG module are not written correctly by Hiwave when I set a watchpoint.



watchpoint set at address $1450  --> DBGXAH:M:L = $00:04:50              (04 instead of 14)

                                                $2450                                   $00:E4:50               (E4 instead of 24)

                                                $3450                                   $0F:F4:50

DBGXAL is correct, but DBGXAM and sometimes DBGXAH are not.

If I try to manually modify these registers (in data or memory window, or with the Inspector)

they are immediately rewritten with the erroneous values !


The RAM of my application extends from $1000 to $3FFF, and the RPAGE register has its reset value : $FD.

The debugging memory map has a range covering from $1000 to $3FFF (physical) with R/W access.


I don't see how to investigate more deeply, as the source code for the gdi-dll is not provided by the distribution (not open source).


I saw another thread about a similar problem (with PE Multilink target), but only a question two years ago, and no answer.


If you have an idea of what is going on, please help. Even if you don't have the solution, some hints could be helpfull.