Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Thread

ARM newbie

ARM newbie

2004-03-24 by c_hall2001

I'm just getting started with the ARM processor (just reading--no 
hardware yet) and found the LPC chips.  At first they seemed to be 
great but after looking into the data I'm having second thoughts.  
Are these chips ready or still in a beta stage?  There seems to be 
problems with JTAG loading the flash memory.  Has this been 
resolved?  Can GCC and the Wiggler JTAG interface be used to debug 
applications in flash with the LPC's?  Are there any 'show stopper' 
issues with using these chips in a commercial application?  I'm 
still reading through my ARM manual (ARM System-on-Chip Architecture 
(2nd Edition)) so I'm still climbing the learning curve.

TIA

Re: ARM newbie

2004-03-25 by embeddedjanitor

One of the things that really make these micros valueable is this 
group. All micros have various issues and need for workarounds etc, 
but often you don't knoiw what the problems are or what the 
workarounds are. This goup works great because there are a bunch of 
people that are sharing their problems and solutions which really 
helps to get stuff moving.

There are many toolchains available for ARM. One very cool thing 
about using the ARM's EmbeddedICE JTAG interface is that it is common 
across all ARM7 cores which means that you can feel very confident 
that a toolchain that has proven itself on a different ARM7 project 
will work on LPC21xx. I personally use gcc/gdb + Abatron bdi2000, but 
I can't see why you should not have great success with gcc/gdb + 
wiggler. When you debug a program in flash you have more limited 
debugging (less breakpoints).

I have not tried going into production with an LPCxxx so aI can't 
comment on that.

--- In lpc2000@yahoogroups.com, "c_hall2001" <c_hall2001@y...> wrote:
> I'm just getting started with the ARM processor (just reading--no 
> hardware yet) and found the LPC chips.  At first they seemed to be 
> great but after looking into the data I'm having second thoughts.  
> Are these chips ready or still in a beta stage?  There seems to be 
> problems with JTAG loading the flash memory.  Has this been 
> resolved?  Can GCC and the Wiggler JTAG interface be used to debug 
> applications in flash with the LPC's?  Are there any 'show stopper' 
> issues with using these chips in a commercial application?  I'm 
> still reading through my ARM manual (ARM System-on-Chip 
Architecture 
Show quoted textHide quoted text
> (2nd Edition)) so I'm still climbing the learning curve.
> 
> TIA

Re: ARM newbie

2004-03-25 by c_hall2001

Thanks for the reply.  I started looking at the Wiggler because it 
was mentioned in a "Circuit Cellar" article and seemed a good place 
to start.  Also, I'm trying to keep my initial investment down while 
I'm figuring out the basics--I found a Wiggler compatible JTAG at 
www.olimex.com for $20!!!  I couldn't believe it.  I searched 
through the Abatron website and their distributor but couldn't find 
a price for the bdi2000.  You have to request a quote which tells me 
it must be WAY up there.
The one thing I also found on the olimex website was this quote:

"In general: LPC21xx are very new parts, for some unknown reason 
Philips doesn't disclosure how to program LPC21xx Flash via JTAG 
which make hard time for the IDE developers. Perpahs Philips have 
problems with the Flash programming as it is now and is going to 
change the protocol in future and this is why they force all to use 
their bootloader IAP protocol. The only vendor so far who work this 
around is Rowley, they first load in RAM small own bootloader who 
then get data from JTAG and fed to IAP to write Flash segments thus 
making their product easies to use so far with LPC21xx parts."

Can anyone confirm this or is this old news?

--- In lpc2000@yahoogroups.com, "embeddedjanitor" <manningc2@a...> 
wrote:
> One of the things that really make these micros valueable is this 
> group. All micros have various issues and need for workarounds 
etc, 
> but often you don't knoiw what the problems are or what the 
> workarounds are. This goup works great because there are a bunch 
of 
> people that are sharing their problems and solutions which really 
> helps to get stuff moving.
> 
> There are many toolchains available for ARM. One very cool thing 
> about using the ARM's EmbeddedICE JTAG interface is that it is 
common 
> across all ARM7 cores which means that you can feel very confident 
> that a toolchain that has proven itself on a different ARM7 
project 
> will work on LPC21xx. I personally use gcc/gdb + Abatron bdi2000, 
but 
Show quoted textHide quoted text
> I can't see why you should not have great success with gcc/gdb + 
> wiggler. When you debug a program in flash you have more limited 
> debugging (less breakpoints).
> 
> I have not tried going into production with an LPCxxx so aI can't 
> comment on that.
>

Re: ARM newbie

2004-03-25 by Sten Larsson

> The one thing I also found on the olimex website was this quote:
>
> "In general: LPC21xx are very new parts, for some unknown reason
> Philips doesn't disclosure how to program LPC21xx Flash via JTAG
> which make hard time for the IDE developers. Perpahs Philips have
> problems with the Flash programming as it is now and is going to
> change the protocol in future and this is why they force all to use
> their bootloader IAP protocol.
I beleive that there is no hardware that would allow the flash to be programmed directly from JTAG. There is nothing in the documentation that suggests that it should be possible.
;
> The only vendor so far who work this
> around is Rowley, they first load in RAM small own bootloader who
> then get data from JTAG and fed to IAP to write Flash segments thus
> making their product easies to use so far with LPC21xx parts."
It is not true that the only vendor that has this working is Rowley - we do the same thing, supporting flash programming for all LPC2000 devices using a small program in RAM. I would assume that this is how the rest of our competition is doing it, aswell.
Sten Larsson
Nohau Corp

Re: ARM newbie

2004-03-25 by embeddedjanitor

On debuggers:
There are various debuggers at various prices and, to an extent, you 
get what you pay for. bdi2000 is over $US2000 which makes it out of 
range for some people.

On flash programming: Why do you want to use JTAG flashing? I've 
never used it with ARM even on parts which support it. The LPC21xx 
has a built-in flash loader which works pretty well (now that the 
synchronisation issues are understood and fixed). I guess you could 
always reverse engineer the onboard IAP routines. I expect that 
Philips will make public the flash spec some day.

--- In lpc2000@yahoogroups.com, "c_hall2001" <c_hall2001@y...> wrote:
> Thanks for the reply.  I started looking at the Wiggler because it 
> was mentioned in a "Circuit Cellar" article and seemed a good place 
> to start.  Also, I'm trying to keep my initial investment down 
while 
> I'm figuring out the basics--I found a Wiggler compatible JTAG at 
> www.olimex.com for $20!!!  I couldn't believe it.  I searched 
> through the Abatron website and their distributor but couldn't find 
> a price for the bdi2000.  You have to request a quote which tells 
me 
> it must be WAY up there.
> The one thing I also found on the olimex website was this quote:
> 
> "In general: LPC21xx are very new parts, for some unknown reason 
> Philips doesn't disclosure how to program LPC21xx Flash via JTAG 
> which make hard time for the IDE developers. Perpahs Philips have 
> problems with the Flash programming as it is now and is going to 
> change the protocol in future and this is why they force all to use 
> their bootloader IAP protocol. The only vendor so far who work this 
> around is Rowley, they first load in RAM small own bootloader who 
> then get data from JTAG and fed to IAP to write Flash segments thus 
> making their product easies to use so far with LPC21xx parts."
> 
> Can anyone confirm this or is this old news?
> 
> --- In lpc2000@yahoogroups.com, "embeddedjanitor" <manningc2@a...> 
> wrote:
> > One of the things that really make these micros valueable is this 
> > group. All micros have various issues and need for workarounds 
> etc, 
> > but often you don't knoiw what the problems are or what the 
> > workarounds are. This goup works great because there are a bunch 
> of 
> > people that are sharing their problems and solutions which really 
> > helps to get stuff moving.
> > 
> > There are many toolchains available for ARM. One very cool thing 
> > about using the ARM's EmbeddedICE JTAG interface is that it is 
> common 
> > across all ARM7 cores which means that you can feel very 
confident 
Show quoted textHide quoted text
> > that a toolchain that has proven itself on a different ARM7 
> project 
> > will work on LPC21xx. I personally use gcc/gdb + Abatron bdi2000, 
> but 
> > I can't see why you should not have great success with gcc/gdb + 
> > wiggler. When you debug a program in flash you have more limited 
> > debugging (less breakpoints).
> > 
> > I have not tried going into production with an LPCxxx so aI can't 
> > comment on that.
> >

Re: [lpc2000] Re: ARM newbie

2004-03-25 by Robert Adsett

At 01:51 AM 3/25/04 +0000, you wrote:
>"In general: LPC21xx are very new parts, for some unknown reason
>Philips doesn't disclosure how to program LPC21xx Flash via JTAG
>which make hard time for the IDE developers. Perpahs Philips have
>problems with the Flash programming as it is now and is going to
>change the protocol in future and this is why they force all to use
>their bootloader IAP protocol. The only vendor so far who work this
>around is Rowley, they first load in RAM small own bootloader who
>then get data from JTAG and fed to IAP to write Flash segments thus
>making their product easies to use so far with LPC21xx parts."

I would expect everyone who uses JTAG for programming to take much the same 
approach.  Especially since it's the one Philips documents.  As far as not 
disclosing how the flash works they are not the only vendors that do 
that.  At least one vendor started with fully disclosed timing and on 
revision (when they changed the flash) changed to used a callable embedded 
routine.  In that latter case the called routine wasn't even in the micros 
normal address space.

As far as using the wiggler with GDB and GCC it will work with some 
restrictions.  Single stepping through assembly in flash is fairly 
straightforward but I haven't found a way to single step through C in flash 
yet.  I have, however, found recently that it is possible to set a 
breakpoint anywhere fairly simply.  You end up with a useful but primitive 
tool (don't underestimate the power of a primitive tool).

Robert

" 'Freedom' has no meaning of itself.  There are always restrictions,
be they legal, genetic, or physical.  If you don't believe me, try to
chew a radio signal. "

                         Kelvin Throop, III

Re: ARM newbie

2004-03-25 by c_hall2001

OK, maybe I'm missing something because my JTAG debug knowledge is 
only from 8bit micros (mainly AVR's).  As I understood things the 
first thing that happens in a JTAG debug is loading the program into 
memory.  If a particular JTAG (wiggler in this case) cannot load 
flash then I assume that debugging a flash based program cannot be 
done.
I'm thinking I better complete my reading of the ARM manual and the 
LPC datasheet before bugging you guys again.

--- In lpc2000@yahoogroups.com, Robert Adsett <subscriptions@a...> 
wrote:
> I would expect everyone who uses JTAG for programming to take much 
the same 
> approach.  Especially since it's the one Philips documents.  As 
far as not 
> disclosing how the flash works they are not the only vendors that 
do 
> that.  At least one vendor started with fully disclosed timing and 
on 
> revision (when they changed the flash) changed to used a callable 
embedded 
> routine.  In that latter case the called routine wasn't even in 
the micros 
> normal address space.
> 
> As far as using the wiggler with GDB and GCC it will work with 
some 
> restrictions.  Single stepping through assembly in flash is fairly 
> straightforward but I haven't found a way to single step through C 
in flash 
> yet.  I have, however, found recently that it is possible to set a 
> breakpoint anywhere fairly simply.  You end up with a useful but 
primitive 
> tool (don't underestimate the power of a primitive tool).
> 
> Robert
> 
> " 'Freedom' has no meaning of itself.  There are always 
restrictions,
> be they legal, genetic, or physical.  If you don't believe me, try 
to
Show quoted textHide quoted text
> chew a radio signal. "
> 
>                          Kelvin Throop, III

Re: ARM newbie

2004-03-25 by c_hall2001

OK, maybe I'm missing something because my JTAG debug knowledge is 
only from 8bit micros (mainly AVR's).  As I understood things the 
first thing that happens in a JTAG debug is loading the program into 
memory.  If a particular JTAG (wiggler in this case) cannot load 
flash then I assume that debugging a flash based program cannot be 
done.
I'm thinking I better complete my reading of the ARM manual and the 
LPC datasheet before bugging you guys again.

--- In lpc2000@yahoogroups.com, Robert Adsett <subscriptions@a...> 
wrote:
> I would expect everyone who uses JTAG for programming to take much 
the same 
> approach.  Especially since it's the one Philips documents.  As 
far as not 
> disclosing how the flash works they are not the only vendors that 
do 
> that.  At least one vendor started with fully disclosed timing and 
on 
> revision (when they changed the flash) changed to used a callable 
embedded 
> routine.  In that latter case the called routine wasn't even in 
the micros 
> normal address space.
> 
> As far as using the wiggler with GDB and GCC it will work with 
some 
> restrictions.  Single stepping through assembly in flash is fairly 
> straightforward but I haven't found a way to single step through C 
in flash 
> yet.  I have, however, found recently that it is possible to set a 
> breakpoint anywhere fairly simply.  You end up with a useful but 
primitive 
> tool (don't underestimate the power of a primitive tool).
> 
> Robert
> 
> " 'Freedom' has no meaning of itself.  There are always 
restrictions,
> be they legal, genetic, or physical.  If you don't believe me, try 
to
Show quoted textHide quoted text
> chew a radio signal. "
> 
>                          Kelvin Throop, III

RE: [lpc2000] Re: ARM newbie

2004-03-25 by Paul Curtis

Perhaps you should take a look at our product, CrossWorks for ARM, which
has integrated flash downloading using the wiggler and you can single
step at the C level in flash without any problems.

Regards,

--
Paul Curtis, Rowley Associates Ltd http://www.rowley.co.uk
CrossWorks for MSP430, ARM, and (soon) Atmel AVR processors 
Show quoted textHide quoted text
> -----Original Message-----
> From: c_hall2001 [mailto:c_hall2001@...] 
> Sent: 25 March 2004 17:07
> To: lpc2000@yahoogroups.com
> Subject: [lpc2000] Re: ARM newbie
> 
> 
> OK, maybe I'm missing something because my JTAG debug knowledge is 
> only from 8bit micros (mainly AVR's).  As I understood things the 
> first thing that happens in a JTAG debug is loading the program into 
> memory.  If a particular JTAG (wiggler in this case) cannot load 
> flash then I assume that debugging a flash based program cannot be 
> done.
> I'm thinking I better complete my reading of the ARM manual and the 
> LPC datasheet before bugging you guys again.
> 
> --- In lpc2000@yahoogroups.com, Robert Adsett <subscriptions@a...> 
> wrote:
> > I would expect everyone who uses JTAG for programming to take much
> the same 
> > approach.  Especially since it's the one Philips documents.  As
> far as not 
> > disclosing how the flash works they are not the only vendors that
> do 
> > that.  At least one vendor started with fully disclosed timing and
> on 
> > revision (when they changed the flash) changed to used a callable
> embedded 
> > routine.  In that latter case the called routine wasn't even in
> the micros 
> > normal address space.
> > 
> > As far as using the wiggler with GDB and GCC it will work with
> some 
> > restrictions.  Single stepping through assembly in flash is fairly
> > straightforward but I haven't found a way to single step through C 
> in flash 
> > yet.  I have, however, found recently that it is possible to set a
> > breakpoint anywhere fairly simply.  You end up with a useful but 
> primitive 
> > tool (don't underestimate the power of a primitive tool).
> > 
> > Robert
> > 
> > " 'Freedom' has no meaning of itself.  There are always
> restrictions,
> > be they legal, genetic, or physical.  If you don't believe me, try
> to
> > chew a radio signal. "
> > 
> >                          Kelvin Throop, III
> 
> 
> 
>  
> Yahoo! Groups Links
> 
> 
> 
>  
> 
>

Re: [lpc2000] Re: ARM newbie

2004-03-25 by Robert Adsett

At 05:08 PM 3/25/04 +0000, you wrote:
>OK, maybe I'm missing something because my JTAG debug knowledge is
>only from 8bit micros (mainly AVR's).  As I understood things the
>first thing that happens in a JTAG debug is loading the program into
>memory.  If a particular JTAG (wiggler in this case) cannot load
>flash then I assume that debugging a flash based program cannot be
>done.

Actually the wiggler is agnostic on the issue.  It's the software using the 
wiggler that needs to support programming the flash.  It is also quite 
possible to debug in flash using JTAG w/o programming the flash over JTAG, 
the two are quite independent (other than using the same communications 
channel).  I often use GDB to debug in flash over JTAG and use the serial 
connection for programming the flash.

Debugging in flash requires that the debugger support the HW debugging 
registers in the LPC. GDB's  support in this area is incomplete but useable.

Paul's suggestion of getting a debugger that supports the wiggler more 
completely is probably a good one.  I haven't used his product so I can't 
testify as to its usefulness.

Robert

" 'Freedom' has no meaning of itself.  There are always restrictions,
be they legal, genetic, or physical.  If you don't believe me, try to
chew a radio signal. "

                         Kelvin Throop, III

Re: [lpc2000] Re: ARM newbie

2004-03-26 by Leon Heller

----- Original Message ----- 
Show quoted textHide quoted text
From: "Robert Adsett" <subscriptions@...>
To: <lpc2000@yahoogroups.com>
Sent: Thursday, March 25, 2004 10:41 PM
Subject: Re: [lpc2000] Re: ARM newbie


> At 05:08 PM 3/25/04 +0000, you wrote:
> >OK, maybe I'm missing something because my JTAG debug knowledge is
> >only from 8bit micros (mainly AVR's).  As I understood things the
> >first thing that happens in a JTAG debug is loading the program into
> >memory.  If a particular JTAG (wiggler in this case) cannot load
> >flash then I assume that debugging a flash based program cannot be
> >done.
>
> Actually the wiggler is agnostic on the issue.  It's the software using
the
> wiggler that needs to support programming the flash.  It is also quite
> possible to debug in flash using JTAG w/o programming the flash over JTAG,
> the two are quite independent (other than using the same communications
> channel).  I often use GDB to debug in flash over JTAG and use the serial
> connection for programming the flash.
>
> Debugging in flash requires that the debugger support the HW debugging
> registers in the LPC. GDB's  support in this area is incomplete but
useable.
>
> Paul's suggestion of getting a debugger that supports the wiggler more
> completely is probably a good one.  I haven't used his product so I can't
> testify as to its usefulness.

It works very well.

Leon

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.