µVISION DEBUGGER: BREAKPOINT PROBLEMS WITH INFINEON XC800 DEVICES
Information in this knowledgebase article applies to:
I debug my application with ULINK, ULINK2 or the Infineon DAS interface. Since I am using multiple data pointers in my own assembly functions, the debugger does not stop at the breakpoints that I have set. Are there debug restrictions when using the multiple data pointers?
My code looks like:
MOV EO,#0x00 // select DPTR 0 : MOV EO,#0x01 // select DPTR 1
There are no debug restrictions when using multiple data pointers but you must avoid modifying configuration bits which are not used for switching the data pointers. Your example writes a new value (0) to all bits of the Extended Operation register EO. This also overwrites the TRAP_EN bit (EO.4). Writing any value to this bit, even the same 0 value, disables debugging. Please use the following instructions to modify the DPSEL0 bit (EO.0):
ANL EO,#0xFE // select DPTR 0 : ORL EO,#0x01 // select DPTR 1
Using the multiple data pointers in your C code does not lead to such debug problems. The C51 libraries use the above code to switch data pointers.
Last Reviewed: Wednesday, October 29, 2008
of your data.