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