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

debugging of digital systems

sir,
i am using basic 8051 microcontroller
how is it possible to get the value of the program counter through c program.

i need to keep track of the program counter value. whenever it reaches certain specified value, the program execution has to be stopped.the new value may be reloaded from the user specified

waiting for your reply
ravikira

  • This sounds like a job for assembler, not 'C'.

    You need to explain what you're trying to achive and why you want to do this - without that information, what you describe just sounds bizarre!

    From the title of your post, it sounds like you actually just need to set a breakpoint in the debugger?!

  • Hello Ravi,

    You can generate software interrupt. when your counter reaches the value you specified enable software interrupt and make the value read or in other way in debugger you can set a breakpoint.

    Hope this help.

    regards,

    Abdul Raheem

  • I strongly suspect you don't know what you're talking about.

    The program counter keeps changing constantly, as the program executes. In particular, it'll always have the exact same value when any given instruction is executed --- that instruction's address in code memory.

    The thing you're trying to construct is called a breakpoint, and you need special hardware to create one on an 8051. Once you have that hardware, the Keil toolchain's debugger will let you set breakpoints, so there's absolutely no need to DIY. Until then, use the simulator.

  • "I strongly suspect you don't know what you're talking about."

    Yes - it cetainly sounds like a case of, "if you need to ask this question, you are not equipped to complete the rest of the project"