Matthias Weingart wrote:
On Tue, Jun 22, 2004 at 09:23:20AM +0800, Steve Underwood wrote:

Chris Liechti wrote:


Robert Seczkowski wrote:


And Do You know why break withing wdt interrupt doesn't execute main loop. I type "c" and break is caught once again but meantime main loop is not executed even once. WDT timer is set to 32ms.


yes, and while your wathcing the memory dump in gdb, the WDT continues to count down. after an other 32ms is the WDTIFG set, but not executed as you have still stoped it. after releasing, it contniues with the highest priority interrupt that is pending.

in short: breakpoints only stop the CPU core, an NO peripherals.

This depends on the particular MSP430 you are using. Some have a clock cotnrol register which can be used to alter this behaviour. I have not yet added control of that to msp430-gdbprixy. I really should do. The default behaviour is as you said.


Is there a way to stop interrupts at all during stepping? Currently I always

yes, newer derivates with EEM can switch off peripheral clocks on breakpoints, that way, no timer, serial or WDT interrupts occour
however as Steve said, gdbproxy does not support that yet.

go through my timer interrupt routine after each step - and I have to disable
the timer (or interrupts) before by hand - but then my firmware does not
longer work as expected. In short - a complete stop of the whole CPU
and peripherals during debugging and single stepping would be useful (if
possible, at least a dint).

debugging real time systems isn't easy and switching off interrupts doesnt help if you have external events (switches, other signals on the ports/ADC), the event will ocour anyway and teh CPU will just miss it. after all you can put a breakpoint on the world ;-)

chris

Reply via email to