This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Break on IDATA

Hej

I am using uVision 2.37 with C51 version 7.05C.

I would like to set a break point in a stack overflow. Can anyone tell me how to set a break point on write access to I:0x7f

Thank you

Parents
  • Gents;
    Maybe I am not understanding the problem. I have selected the Triscend TE505, no external ROM/RAM. I modified the 'Hello World' example with a global:
    unsigned char idata ch _at_0x7F;

    Inside the while(1) loop I write to ch with ch = P1; --Read P1 into ch. The Breakset works on version 7.04 and 7.06, the versions I have installed. This was run in the Debugger/Simulator. I monitored the idata area to insure that I was writing to the idata at 0x7F. I have not attempted any hardware breakpoints. Does this emulate your problem set?
    Does your breakset fail to set as shown in the Debug dialog window. Or does your breakset fail to halt on write? Bradford

Reply
  • Gents;
    Maybe I am not understanding the problem. I have selected the Triscend TE505, no external ROM/RAM. I modified the 'Hello World' example with a global:
    unsigned char idata ch _at_0x7F;

    Inside the while(1) loop I write to ch with ch = P1; --Read P1 into ch. The Breakset works on version 7.04 and 7.06, the versions I have installed. This was run in the Debugger/Simulator. I monitored the idata area to insure that I was writing to the idata at 0x7F. I have not attempted any hardware breakpoints. Does this emulate your problem set?
    Does your breakset fail to set as shown in the Debug dialog window. Or does your breakset fail to halt on write? Bradford

Children
  • Hi

    I have now upgraded to the latest 7.06, not that I think it makes a difference.

    I am using the off-chip code memory, else I think my setup is like what you have setup.

    I fail in setting the break point and yes it is in the Debug->Breakpoints dialog window that gives me an error when I try to set the break point.

    Maybe you can give me the exact commands that you are entering to set the break point on your system - I could have a syntax error?

    Thank you for your inputs,
    Dennis

  • In the uVision2 Debugger, the following command sets a breakpoint on writes to address 0x70 in IDATA space.

    bs write i:0x70

    Note that 0x70 in IDATA and 0x70 in DATA are the same physical address, so writes to D:0x70 or to I:0x70 will trigger the breakpoint.

    Jon

  • Al Bradford wrote:
    "This was run in the Debugger/Simulator"

    Do you mean the debugger, or the simulator?
    Although the user interface appears the same, They are completely different things!

    The Simulator is purely software running on your PC;
    The debugger makes use of the actual target hardware.

    As I said earlier, and GRUN Christophe echoed later, the Triscend E5 hardware does not support breakpoints on IDATA, DATA, nor BDATA - so you can set the breakpoint in the Simulator, but you cannot do it in the TE5 Debugger!!