Kevin Sargent

Watchdog timeout debugging

Discussion created by Kevin Sargent on Aug 30, 2016

Howdy, I can't be the only one to want a way to find which routine is causing watchdog timeouts.

Current project (PA4) uses interrupts to manage status in both halves of a PWM waveform.

Each PWM edge triggers interrupt code to check stuff before next interrupt.

Just scattering watchdog resets around is bad practice, and invites trouble with interrupts.

I got it working by changing watchdog parameters (not obvious process).

That's also bad practice, but guessing until I find the offending code is absurd.

 

How about enabling watchdog interrupts, then have the interrupt code just enter stop.

Would that freeze the last PC on the stack? Or would it continue the reset past the stop?

Or maybe copy the PC to a spot that won't get cleared on reset?

I already use a stall (infinite loop) on program entry to trap resets.

I step the first couple instructions, hop over the stall and turn it loose.

 

I'm writing assembler under CW10 and also can't figure out how to trace assembler in the Eclipse intf.

I've written a Lot under CW6, CW10 is a big step backward for me, but I see why they did it.

Thanks in advance for guidance, collaboration welcome as well.   Kevin

Outcomes