EmbeddedRelated.com
Forums

Programming the flash memory through the JTAG port

Started by russian_beagle January 21, 2004
Hi all!

Can I download my program into the FLASH memory using the JTAG
port? The CrossWorks utilize own loader from SRAM which program the
FLASH segment using IAP.

Thanks



An Engineer's Guide to the LPC2100 Series


----- Original Message -----
From: "russian_beagle" <>
To: <>
Sent: Wednesday, January 21, 2004 8:30 PM
Subject: [lpc2100] Programming the flash memory through the JTAG port > Hi all!
>
> Can I download my program into the FLASH memory using the JTAG
> port? The CrossWorks utilize own loader from SRAM which program the
> FLASH segment using IAP.

If you have a Wiggler OCD Commander software from Macraigor can upload files
via JTAG.

Leon
--
Leon Heller, G1HSM
Email:
My low-cost Philips LPC210x ARM development system:
http://webspace.webring.com/people/jl/leon_heller//lpc2104.html



Leon,

> > Can I download my program into the FLASH memory using the
> JTAG port?
> > The CrossWorks utilize own loader from SRAM which program the FLASH
> > segment using IAP.
>
> If you have a Wiggler OCD Commander software from Macraigor
> can upload files via JTAG.

Does load load the LPC FLASH then, Leon?

-- Paul.




----- Original Message -----
From: "Paul Curtis" <>
To: <>
Sent: Wednesday, January 21, 2004 9:21 PM
Subject: RE: [lpc2100] Programming the flash memory through the JTAG port > Leon,
>
> > > Can I download my program into the FLASH memory using the
> > JTAG port?
> > > The CrossWorks utilize own loader from SRAM which program the FLASH
> > > segment using IAP.
> >
> > If you have a Wiggler OCD Commander software from Macraigor
> > can upload files via JTAG.
>
> Does load load the LPC FLASH then, Leon?

I think what I said was wrong, it will only load into RAM.

Leon
--
Leon Heller, G1HSM
Email:
My low-cost Philips LPC210x ARM development system:
http://webspace.webring.com/people/jl/leon_heller//lpc2104.html




> -----Original Message-----
> From: russian_beagle [mailto:]
> Sent: 21 January 2004 20:30
> To:
> Subject: [lpc2100] Programming the flash memory through the JTAG port > Hi all!
>
> Can I download my program into the FLASH memory using the JTAG
> port? The CrossWorks utilize own loader from SRAM which program the
> FLASH segment using IAP.

I don't believe that Philips publish anything that tells you how to
program the flash on the LPC, other than by using the bootstrap loader
or by calling a set of routines in the rom yourself (which the BSL
itself uses). As such, it is impossible to program the flash (read:
nearly impossible) using pure JTAG. Certainly, I believe Philips can
change the flash controller or technology without changing the
programming interface, so even if you did reverse engineer the bootstrap
loader to figure out how to poke the flash controller, it's not
guaranteed that the flash controller remains static across revs of the
silicon, but the API will.

--
Paul Curtis, Rowley Associates Ltd http://www.rowley.co.uk
CrossWorks for MSP430 and ARM processors




--- In , "Paul Curtis" <plc@r...> wrote:
>
> > -----Original Message-----
> > From: russian_beagle [mailto:russian_beagle@y...]
> > Sent: 21 January 2004 20:30
> > To:
> > Subject: [lpc2100] Programming the flash memory through the JTAG port
> >
> >
> > Hi all!
> >
> > Can I download my program into the FLASH memory using the JTAG
> > port? The CrossWorks utilize own loader from SRAM which program the
> > FLASH segment using IAP.
>
> I don't believe that Philips publish anything that tells you how to
> program the flash on the LPC, other than by using the bootstrap loader
> or by calling a set of routines in the rom yourself (which the BSL
> itself uses). As such, it is impossible to program the flash (read:
> nearly impossible) using pure JTAG. Certainly, I believe Philips can
> change the flash controller or technology without changing the
> programming interface, so even if you did reverse engineer the bootstrap
> loader to figure out how to poke the flash controller, it's not
> guaranteed that the flash controller remains static across revs of the
> silicon, but the API will.
>
> --
> Paul Curtis, Rowley Associates Ltd http://www.rowley.co.uk
> CrossWorks for MSP430 and ARM processors

It is "by definition" possible to program the device through JTAG.
However, Paul brought up the most important issue, compatibility over
a longer periode of time. If Philips does not publish the direct
programming sequence, they might have a good reason for it, one being
that changes can be made to the actual programming mechanism without
changing anything in the Programming Interface.

I would HIGHLY recommend to use the internal routines provided by the
bootloader for ease of use as much as for avoiding future trouble in
case the mechanism actually changes.

Being an embedded developer as well as involved with customer support
some times, I know that we all want to know HOW things work in detail
but sometimes it is time not well spent to dig into issues that can
only make live harder.

On a side note, I don't try to figure out the exact procedures used by
the BIOS of my PC if I program something in Visual C++ :-)

Cheers, Bob.



> It is "by definition" possible to program the device through JTAG.
> However, Paul brought up the most important issue, compatibility
over
> a longer periode of time. If Philips does not publish the direct
> programming sequence, they might have a good reason for it, one
being
> that changes can be made to the actual programming mechanism
without
> changing anything in the Programming Interface.
>
> I would HIGHLY recommend to use the internal routines provided by
the
> bootloader for ease of use as much as for avoiding future trouble
in
> case the mechanism actually changes.
>
> Being an embedded developer as well as involved with customer
support
> some times, I know that we all want to know HOW things work in
detail
> but sometimes it is time not well spent to dig into issues that can
> only make live harder.
>
> On a side note, I don't try to figure out the exact procedures
used by
> the BIOS of my PC if I program something in Visual C++ :-)
>
> Cheers, Bob.


You right. But by chance I can erase the bootloader. I found in our
russian forum what one embedder erased the bootloader when he
downloaded a big file ( > 128 kB) to LPC21xx through the flash
bootloader. I don't know is it possible? But theoretically it is
possible :(

When I will have free time, I will disassemble the Philips
bootloader. Maybe I will find a technique of working with flash
memory without IAP.

BR, Konstantin.