SparkFun Forums 

Where electronics enthusiasts find answers.

Open source ARM Debugger
By mgiaco82
#77230
Hello,
Debugging works fine and is really fast with open ocd 0.2.0 but i got some warnings i do not know whats wrong.

The strangest one is: Verification will fail since checksum in image(0xe1a00000) written to flash was different from calculated vector checksum(0xa1b11eac).

What could be the reason for this warning?

thanks
mgiaco

  • Open On-Chip Debugger 0.2.0 (2009-07-17-18:08) Release
    $URL: http://svn.berlios.de/svnroot/repos/ope ... /openocd.c $
    For bug reports, read http://svn.berlios.de/svnroot/repos/openocd/trunk/BUGS
    30 kHz
    jtag_nsrst_delay: 200
    jtag_ntrst_delay: 200
    Info : device: 4
    Info : deviceID: 67358712
    Info : SerialNumber: 32OZPDQCA
    Info : Description: Amontec JTAGkey A
    Info : JTAG tap: lpc2148.cpu tap/device found: 0x4f1f0f0f (mfg: 0x787, part: 0xf1f0, ver: 0x4)
    Info : JTAG Tap/device matched
    target state: halted
    target halted in ARM state due to breakpoint, current mode: Supervisor
    cpsr: 0x60000013 pc: 0x40000070
    30 kHz
    Info : JTAG tap: lpc2148.cpu tap/device found: 0x4f1f0f0f (mfg: 0x787, part: 0xf1f0, ver: 0x4)
    Info : JTAG Tap/device matched
    Warn : srst pulls trst - can not reset into halted mode. Issuing halt after reset.
    target state: halted
    target halted in Thumb state due to debug-request, current mode: Supervisor
    cpsr: 0xa00000f3 pc: 0x7fffd2c0
    requesting target halt and executing a soft reset
    target state: halted
    target halted in ARM state due to debug-request, current mode: Supervisor
    cpsr: 0xa00000d3 pc: 0x00000000
    1500 kHz
    Info : accepting 'gdb' connection from 0
    Warn : acknowledgment received, but no packet pending
    30 kHz
    Info : JTAG tap: lpc2148.cpu tap/device found: 0x4f1f0f0f (mfg: 0x787, part: 0xf1f0, ver: 0x4)
    Info : JTAG Tap/device matched
    Warn : srst pulls trst - can not reset into halted mode. Issuing halt after reset.
    target state: halted
    target halted in Thumb state due to debug-request, current mode: Supervisor
    cpsr: 0xa00000f3 pc: 0x7fffd2c0
    requesting target halt and executing a soft reset
    target state: halted
    target halted in ARM state due to debug-request, current mode: Supervisor
    cpsr: 0xa00000d3 pc: 0x00000000
    1500 kHz
    0xe01fc040: 00000001
    Warn : Verification will fail since checksum in image(0xe1a00000) written to flash was different from calculated vector checksum(0xa1b11eac).
    Warn : To remove this warning modify build tools on developer PC to inject correct LPC vector checksum.
    Warn : memory read caused data abort (address: 0x742290e0, size: 0x4, count: 0x2)
    Warn : memory read caused data abort (address: 0xfbffedfe, size: 0x1, count: 0x2)
By mgiaco82
#77291
I do not know what i can do to fix this warning: Verification will fail since checksum in image(0xe1a00000) written to flash was different from calculated vector checksum(0xa1b11eac).

Please can someone give me a hint.

thanks
By Freddie Chopin
#77292
Ignore that.

The 6th interrupt vector for LPC2000 holds a checksum that validates user code. This checksum is injected by OpenOCD, not the compiler, so genrally the image you'd download from the core would be different than the one you had from the compiler.

4\/3!!
By mgiaco82
#77314
Yes i know that, but this checksum must be a valid checksum or my programm doesn´t work. It´s weird because the prgram works fine.

So i ignore that for now but why OpenOCD change this checksum?

thx
By cat52
#78725
openocd performs a checksum and compare with checksum in your binary file. Since the compiler won't generate these checksum for you, it is filled with zeroes.

openocd will program this checksum into your flash. You can use flashmagic to verify those bytes.

To eliminate the warning, you might want to fill the checksum in the startup file at the appropriate location
By khandro
#82392
Hi,

I had the same problem with the checksum and solved it today
by installing a newer toolchain.
Before, my arm-elf-gcc and arm-elf-gdb (Linux version) were from 2006.Here the checksum was calculated wrongly and my application wouldn't start.
Now with the compiler and debugger from 2008, everything works fine.
I also tried to write the checksum myself into startup.s, but it
was overwritten. The value I inserted there never showed up in
the warning message.

Cheers, Khandro