Possible reasons for checksum mismatch?

At first what makes me feel nervous:

monitor verify_image main.elf
checksum mismatch - attempting binary compare
Verify operation failed address 0x00000000. Was 0xff instead of 0x18

Besides this Message the Programm seems to run successfully on the Board. But i have some strange Behaviour.

At first, i allways have to “terminate and relaunch” the debugging process, as it allways freezes at 27% on first activation.

Sometimes, maybe due to the error mentioned above, it just freezes everytime without ever working. Anyway the debugger should not tell me that something is wrong by just not working itself :confused:

I am using the following Software:

Eclipse with zylin cdt and gnuarm plugin

Yagarto

openOCD 0.2.0 SR1

and this hardware:

Olimex-arm-usb-ocd

MCB2300 (NXP lpc2388 chip)

wenn OOCD is connected, i start the debugger with these commands:

target remote localhost:3333
set mem inaccessible-by-default off
monitor sleep 500
monitor poll
monitor flash probe 0
monitor flash write_image erase main.elf 
compare-sections
monitor verify_image main.elf
monitor reset run
monitor sleep 500
monitor soft_reset_halt
symbol-file main.elf
thbreak main
continue

Here is the complete console output:

Warning: /cygdrive/D/workspace/merses/BaseForC++/Common/src: No such file or directory.
Warning: /cygdrive/D/workspace/merses/BaseForC++/Common/inc: No such file or directory.
Warning: /cygdrive/D/workspace/merses/BaseForC++/Common: No such file or directory.
Warning: /cygdrive/D/workspace/merses/BaseForC++/.dep: No such file or directory.
Warning: /cygdrive/D/workspace/merses/BaseForC++: No such file or directory.
mi_cmd_break_watch: Missing <expression>
No registers.
target remote localhost:3333
0x7fffe152 in ?? ()
set mem inaccessible-by-default off
monitor sleep 500
monitor poll
background polling: on
TAP: lpc2378.cpu (enabled)
target state: halted
target halted in Thumb state due to debug-request, current mode: Supervisor
cpsr: 0xa00000f3 pc: 0x7fffe152
monitor flash probe 0
flash 'lpc2000' found at 0x00000000
monitor flash write_image erase main.elf 
auto erase enabled
wrote 2344 byte from file main.elf in 1.125000s (2.034722 kb/s)
compare-sections
Section .text, range 0x00000000 -- 0x00000928: MIS-MATCHED!
warning: One or more sections of the remote executable does not match
the loaded file

monitor verify_image main.elf
checksum mismatch - attempting binary compare
Verify operation failed address 0x00000001. Was 0x40 instead of 0xf0

Runtime error, file "command.c", line 469:
    
monitor reset run
JTAG tap: lpc2378.cpu tap/device found: 0x4f1f0f0f (mfg: 0x787, part: 0xf1f0, ver: 0x4)
JTAG Tap/device matched
monitor sleep 500
monitor soft_reset_halt
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
symbol-file main.elf
Hardware assisted breakpoint 1 at 0x1dc: file main.cpp, line 20.
thbreak main
continue
main () at main.cpp:20
20		  lcd_init();
mi_cmd_disassemble: Invalid filename.

Does noone met this kind of behaviour before? :confused: