Bootloader

The NXP lpc ARM chips contain a serial bootloader. This is a program in the chip's flash that allows a program on the host (the desktop PC) to burn a program into the chip's flash memory.

Some other manufacturers' chips also contain a bootloader.

The host-side program is often called a flash utility or a downloader. Sometimes I will used bootloader for either the host-side or the target-side program.

NXP has an official flash utility that runs only on Microsoft Windows. Fortunately, several people have written flash utilities that are more platform independent.

Another way of burning a program into flash is to use a JTAG cable in connection with a program on the host such as openOCD.

I have used the serial flash utilities by Martin Maurer and by Edwin Olson very happily. Now, I mostly use openOCD with an Olimex JTAG cable.

lpc21isp

I started out downloading code to be burned into the onboard Flash using the chip's built-in bootloader combined with Martin Maurer's lpc21isp program that runs under either Linux or Microsoft Windows (rather than using the version from Philips NXP which runs only under Microsoft Windows.

Martin Maurer no longer hosts lpc21isp on his web site but lpc21isp is available at Yahoo lpc21ispgroup (to download you must join the group or you might use a search engine to find it elsewhere).

I run it, e.g. to download the binary file combo.bin, with the command

lpc21isp -bin combo.bin /dev/ttyS0 115200 14746

where /dev/ttyS0 is the serial port I am using and 115200 is the baud rate and 14746 is the speed is crystal in KHz of the board I'm using (i.e. 14.746 MHz).

Using Martin Maurer's lpc21isp flash utility

I download code to be burned into the onboard flash using the chip's built-in bootloader combined with Martin Maurer's lpc21isp program that runs under Microsoft Windows or Linux rather than the version from Philips which runs only under Microsoft Windows. You can probably just download and run the binary, but I downloaded the source, unzip it into /usr/local/scr, then compiled it, then soft linked it into the /usr/local/bin directory

  gcc -o lpc21isp-1.31 lpc21.c
  ln /usr/local/src/lpc21isp-1.31 /usr/local/bin/lpc21isp

I run it, e.g. to download the binary file combo.bin, with the command

  lpc21isp -bin combo.bin /dev/ttyS0 115200 14746

where '/dev/ttyS0' is the serial port I am using and '115200' is the baud rate and '14746' is the speed of the crystal in KHz of the board I'm using (i.e. 14.746 MHz). (On Microsoft Windows, your serial port might be named 'com1:' or 'com2:' rather than '/dev/ttyS0').

lpc21isp is available at Yahoo lpc21ispgroup (to download you must join the group or you might use a search engine to find it elsewhere).

Here are some other possible bootloader flash utilities