Hello,
I've just come across this on one of our PCBs. This is a proven board
and code which a technician has just updated. He was manually
manipulating P0.14 via jumper to access ISP, but had not removed
power.
After this the board will not start up after reset unless JTAG is
present.
Doing a reset then attaching the debugger shows the code to be stuck
in
a loop in the bootloader checking for P0.14 (if my scant
understanding
of ARM assembler is correct):
0x7FFFE2D6 6808 ldr r0, [r1, #0x0]
0x7FFFE2D8 0780 lsls r0, r0, #0x1E
0x7FFFE2Da D4FC bmi 0x7FFFE2D6
P0.14 meters out at 3V from the jumper back to the PCB, so the board
shouldn't stick in the bootloader (?).
Am I correct in concluding that the bootloader is not executed if a
reset is generated by JTAG?
My conclusion is that p0.14 is somehow damaged and internally
disconnected / pulled low. Does this seem correct?
Thanks
Simon Ansley
LPC2214 Bootloader bypassed?
Started by ●October 10, 2008
Reply by ●October 10, 20082008-10-10
--- In l..., "Simon Ansley" wrote:
>
> Hello,
>
> I've just come across this on one of our PCBs. This is a proven board
> and code which a technician has just updated. He was manually
> manipulating P0.14 via jumper to access ISP, but had not removed
> power.
>
> After this the board will not start up after reset unless JTAG is
> present.
>
> Doing a reset then attaching the debugger shows the code to be stuck
> in
> a loop in the bootloader checking for P0.14 (if my scant
> understanding
> of ARM assembler is correct):
>
> 0x7FFFE2D6 6808 ldr r0, [r1, #0x0]
> 0x7FFFE2D8 0780 lsls r0, r0, #0x1E
> 0x7FFFE2Da D4FC bmi 0x7FFFE2D6
>
> P0.14 meters out at 3V from the jumper back to the PCB, so the board
> shouldn't stick in the bootloader (?).
>
> Am I correct in concluding that the bootloader is not executed if a
> reset is generated by JTAG?
>
> My conclusion is that p0.14 is somehow damaged and internally
> disconnected / pulled low. Does this seem correct?
>
> Thanks
>
> Simon Ansley
>
What is P0.14 used for in the application? If the app was running and
the pin was an output, not removing power before shorting it to ground
was a mistake! The grounding condition should only be applied before
the uC has a chance to define the pin as an output.
Richard
>
> Hello,
>
> I've just come across this on one of our PCBs. This is a proven board
> and code which a technician has just updated. He was manually
> manipulating P0.14 via jumper to access ISP, but had not removed
> power.
>
> After this the board will not start up after reset unless JTAG is
> present.
>
> Doing a reset then attaching the debugger shows the code to be stuck
> in
> a loop in the bootloader checking for P0.14 (if my scant
> understanding
> of ARM assembler is correct):
>
> 0x7FFFE2D6 6808 ldr r0, [r1, #0x0]
> 0x7FFFE2D8 0780 lsls r0, r0, #0x1E
> 0x7FFFE2Da D4FC bmi 0x7FFFE2D6
>
> P0.14 meters out at 3V from the jumper back to the PCB, so the board
> shouldn't stick in the bootloader (?).
>
> Am I correct in concluding that the bootloader is not executed if a
> reset is generated by JTAG?
>
> My conclusion is that p0.14 is somehow damaged and internally
> disconnected / pulled low. Does this seem correct?
>
> Thanks
>
> Simon Ansley
>
What is P0.14 used for in the application? If the app was running and
the pin was an output, not removing power before shorting it to ground
was a mistake! The grounding condition should only be applied before
the uC has a chance to define the pin as an output.
Richard
Reply by ●October 10, 20082008-10-10
> >
> > P0.14 meters out at 3V from the jumper back to the PCB, so the
board
> > shouldn't stick in the bootloader (?).
> >
> > Am I correct in concluding that the bootloader is not executed if
a
> > reset is generated by JTAG?
> >
> > My conclusion is that p0.14 is somehow damaged and internally
> > disconnected / pulled low. Does this seem correct?
> >
> > Thanks
> >
> > Simon Ansley
> > What is P0.14 used for in the application? If the app was running
and
> the pin was an output, not removing power before shorting it to
ground
> was a mistake! The grounding condition should only be applied
before
> the uC has a chance to define the pin as an output.
>
> Richard
>
Richard,
It's not used at all, simply a pull up and jumper to ground on the
board to access the bootloader for programming. It's left configured
as in input.
Simon
> > P0.14 meters out at 3V from the jumper back to the PCB, so the
board
> > shouldn't stick in the bootloader (?).
> >
> > Am I correct in concluding that the bootloader is not executed if
a
> > reset is generated by JTAG?
> >
> > My conclusion is that p0.14 is somehow damaged and internally
> > disconnected / pulled low. Does this seem correct?
> >
> > Thanks
> >
> > Simon Ansley
> > What is P0.14 used for in the application? If the app was running
and
> the pin was an output, not removing power before shorting it to
ground
> was a mistake! The grounding condition should only be applied
before
> the uC has a chance to define the pin as an output.
>
> Richard
>
Richard,
It's not used at all, simply a pull up and jumper to ground on the
board to access the bootloader for programming. It's left configured
as in input.
Simon