ARM Technical Support Knowledge Articles

BREAKPOINT PROBLEMS WITH INFINEON XC800 DEVICES

Applies to: uVision Debugger

Answer


Information in this knowledgebase article applies to:


QUESTION

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

ANSWER

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.

MORE INFORMATION

ATTACHED FILES

Request the files attached to this knowledgebase article.

Article last edited on: 2008-10-29 10:40:59

Rate this article

[Bad]
|
|
[Good]
Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential