EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

LPC2214 Bootloader bypassed?

Started by Simon Ansley October 10, 2008
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

An Engineer's Guide to the LPC2100 Series

--- 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

> >
> > 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


The 2024 Embedded Online Conference