Flashing LPC2148 through OpenOCD

Hi,

I’m trying to flash my LPC2148 through the JTAG interface, using OpenOCD. Here is the config line for the lpc I set up:

flash bank lpc2000 0x0 0x40000 0 0 lpc2000_v2 0 12000 calc_checksum

(Although I think that the available memory is actually more than 0x40000 on the lpc2148, for now I didn’t bother to change it).

I am using a wiggler clone JTAG emulator.

The wiggler connects great, I have no errors during reading or writing, and all in all JTAG seems to be working with no problems.

In the beginning, I was an idiot and tried to flash hex files in openocd:

flash write 0 myfile.hex 0x0

Then I realized that the flash write command needed the raw binary file, as it was literally writing the data in the file, so I used objdump to convert my elf project output (of demo2148_blink_flash from lynch’s eclispe guide) into a raw binary. So now I could flash with:

flash write 0 myfile.bin 0x0

Later, I fetched back a bit of the flash (starting at 0x4000 0000), to see that the data stored wasn’t exactly in the same order as the binary file I had on my computer. I used this command to fetch:

dump_binary FlashOnChip 0x40000000 0x2000

Is this normal and due to some of that checksum stuff? Bear with me as I’m still new to the whole LPC2148 and generally the ARM architecture.

Here is the binary and some of the relevant data I retrieved from the flash:

http://www.breezynet.com/BinaryFile

http://www.breezynet.com/FlashOnChip

So far so good: the binary seems to be flashing onto the chip, yet I don’t think it’s running…

Nevermind, problem fixed. Used the Rowley “CrossLoad” program which is packaged with CrossWorks. Flashed the LPC2148 with no problems (using temporarily the lpc2138 memory map).

Thanks apsd.