When peripherals are configured there are sometimes bits that control their
behavior under certain conditions (like when the debugger hits a break point,
when the CPU sleeps, etc.). If there is no such bit in the peripheral in
question (or possibly in a peripheral clock register) it will continue to
run.
The LPC17XX have the same peripherals as the LPC23XX and these don't have
such controls (as far as I remember).
A simulator can often be of better use for debugging time-critical code (HW
timers, protocols with timeouts etc.) since it can freeze all peripherals and
external signal stimulus when stepping code, making things possible which are
unrealistic on real targets.
See also the uTasker project for LPC2XXX and LPC17XX since this contains a
real-time simulator which can greatly improve development efficiency.
--- In l..., Alejandro Celery wrote: >
> Ah, this is annoying. I havent done JTAG debugging yet but I wondered
> about this.
> Does anybody know how do the peripherals behave on the LPC17xx
>
> Regards,
> Alejandro
>
Reply by Alejandro Celery●August 10, 20102010-08-10
Ah, this is annoying. I havent done JTAG debugging yet but I wondered
about this.
Does anybody know how do the peripherals behave on the LPC17xx
Regards,
Alejandro
Reply by 42Bastian●August 9, 20102010-08-09
Hi
> How do I configure the JTAG or GDB to also stop the
peripherals? It's really annoying because when I continue the program, the
timers need about 90 secs to wrap around until the next match event is
generated.
It has nothing to do with the JTAG. It is a SoC thing. If NXP does not
foresee stopping peripherals when you enter debug-mode, you are pretty off.
But if you use GDB, you might modify it, to stop the peripherals as soon
as you hit a breakpoint (direkt in source or with scripting).
Peripherals can still run, even though your CPU can be idle. I don't think
you can stop the timers - without shutting them off. Or, I should say I
don't know of a way.
Sutton
--- In l..., "littlezaphod@..." wrote: >
> Hi all,
>
> I am debugging a program on an LPC2148 using OpenOCD/JTAG/GDB. Setting
hardware breakpoints work fine, GDB stops the program flow, BUT my timers
continue to run!
>
> How do I configure the JTAG or GDB to also stop the peripherals? It's
really annoying because when I continue the program, the timers need about 90
secs to wrap around until the next match event is generated.
> I must do something fundamentally wrong, how can the peripherals continue as
the CPU has already stopped?
>
> Thanks for some helpful suggestions,
>
> cheers Patric
>
Reply by "lit...@rocketmail.com"●August 9, 20102010-08-09
Hi all,
I am debugging a program on an LPC2148 using OpenOCD/JTAG/GDB. Setting hardware
breakpoints work fine, GDB stops the program flow, BUT my timers continue to
run!
How do I configure the JTAG or GDB to also stop the peripherals? It's
really annoying because when I continue the program, the timers need about 90
secs to wrap around until the next match event is generated.
I must do something fundamentally wrong, how can the peripherals continue as the
CPU has already stopped?