---

** [tickets:#344] Error executing event examine-end on target stm32f1x.cpu**

**Status:** new
**Milestone:** 0.11.0
**Created:** Fri Mar 18, 2022 09:16 PM UTC by Niki W. Waibel
**Last Updated:** Fri Mar 18, 2022 09:16 PM UTC
**Owner:** nobody


trying to program the DAPLink ([https://github.com/ARMmbed/DAPLink](https://)) 
bootloader using a DAPLink (STM32F103 based https://daplink.io/) as programmer 
with OpenOCD.

works ok (bootloader written) - although the error appears - when using the 
.hex file:
```
$ openocd -d0 -c "source [find interface/cmsis-dap.cfg]; transport select swd; 
source [find target/stm32f1x.cfg]" -c "init; reset init; flash write_image 
erase stm32f103xb_bl_crc_0257_16mhz.hex; verify_image 
stm32f103xb_bl_crc_0257_16mhz.hex; exit"
Open On-Chip Debugger 0.11.0
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
debug_level: 0

Error executing event examine-end on target stm32f1x.cpu:
/usr/bin/../share/openocd/scripts/mem_helper.tcl:37: Error: wrong # args: 
should be "expr expression"
in procedure 'mmw' called at file 
"/usr/bin/../share/openocd/scripts/target/stm32f1x.cfg", line 81
at file "/usr/bin/../share/openocd/scripts/mem_helper.tcl", line 37
Error: stm32f1x.cpu -- clearing lockup after double fault
Polling target stm32f1x.cpu failed, trying to reexamine
Error executing event examine-end on target stm32f1x.cpu:
/usr/bin/../share/openocd/scripts/mem_helper.tcl:37: Error: wrong # args: 
should be "expr expression"
in procedure 'mmw' called at file 
"/usr/bin/../share/openocd/scripts/target/stm32f1x.cfg", line 81
at file "/usr/bin/../share/openocd/scripts/mem_helper.tcl", line 37
Error executing event examine-end on target stm32f1x.cpu:
/usr/bin/../share/openocd/scripts/mem_helper.tcl:37: Error: wrong # args: 
should be "expr expression"
in procedure 'ocd_process_reset'
in procedure 'ocd_process_reset_inner' called at file "embedded:startup.tcl", 
line 288
in procedure 'mmw' called at file 
"/usr/bin/../share/openocd/scripts/target/stm32f1x.cfg", line 81
at file "/usr/bin/../share/openocd/scripts/mem_helper.tcl", line 37
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc
```

but fails (bootloader not written) when using the .bin file:
```
$ openocd -d0 -c "source [find interface/cmsis-dap.cfg]; transport select swd; 
source [find target/stm32f1x.cfg]" -c "init; reset init; flash write_image 
erase stm32f103xb_bl_crc_0257_16mhz.bin; verify_image 
stm32f103xb_bl_crc_0257_16mhz.bin; exit"
Open On-Chip Debugger 0.11.0
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
debug_level: 0

Error executing event examine-end on target stm32f1x.cpu:
/usr/bin/../share/openocd/scripts/mem_helper.tcl:37: Error: wrong # args: 
should be "expr expression"
in procedure 'mmw' called at file 
"/usr/bin/../share/openocd/scripts/target/stm32f1x.cfg", line 81
at file "/usr/bin/../share/openocd/scripts/mem_helper.tcl", line 37
Error: stm32f1x.cpu -- clearing lockup after double fault
Polling target stm32f1x.cpu failed, trying to reexamine
Error executing event examine-end on target stm32f1x.cpu:
/usr/bin/../share/openocd/scripts/mem_helper.tcl:37: Error: wrong # args: 
should be "expr expression"
in procedure 'mmw' called at file 
"/usr/bin/../share/openocd/scripts/target/stm32f1x.cfg", line 81
at file "/usr/bin/../share/openocd/scripts/mem_helper.tcl", line 37
Error executing event examine-end on target stm32f1x.cpu:
/usr/bin/../share/openocd/scripts/mem_helper.tcl:37: Error: wrong # args: 
should be "expr expression"
in procedure 'ocd_process_reset'
in procedure 'ocd_process_reset_inner' called at file "embedded:startup.tcl", 
line 288
in procedure 'mmw' called at file 
"/usr/bin/../share/openocd/scripts/target/stm32f1x.cfg", line 81
at file "/usr/bin/../share/openocd/scripts/mem_helper.tcl", line 37
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc
Error: checksum mismatch - attempting binary compare
diff 0 address 0x00000000. Was 0xff instead of 0x00
diff 1 address 0x00000001. Was 0xff instead of 0x4f
diff 2 address 0x00000002. Was 0xff instead of 0x00
diff 3 address 0x00000003. Was 0xff instead of 0x20
diff 4 address 0x00000004. Was 0xff instead of 0xf9
diff 5 address 0x00000005. Was 0xff instead of 0x04
diff 6 address 0x00000006. Was 0xff instead of 0x00
diff 7 address 0x00000007. Was 0xff instead of 0x08
diff 8 address 0x00000008. Was 0xff instead of 0x45
diff 9 address 0x00000009. Was 0xff instead of 0x05
diff 10 address 0x0000000a. Was 0xff instead of 0x00
diff 11 address 0x0000000b. Was 0xff instead of 0x08
diff 12 address 0x0000000c. Was 0xff instead of 0x35
diff 13 address 0x0000000d. Was 0xff instead of 0x06
diff 14 address 0x0000000e. Was 0xff instead of 0x00
diff 15 address 0x0000000f. Was 0xff instead of 0x08
diff 16 address 0x00000010. Was 0xff instead of 0x4d
diff 17 address 0x00000011. Was 0xff instead of 0x05
diff 18 address 0x00000012. Was 0xff instead of 0x00
diff 19 address 0x00000013. Was 0xff instead of 0x08
diff 20 address 0x00000014. Was 0xff instead of 0x51
diff 21 address 0x00000015. Was 0xff instead of 0x05
diff 22 address 0x00000016. Was 0xff instead of 0x00
diff 23 address 0x00000017. Was 0xff instead of 0x08
diff 24 address 0x00000018. Was 0xff instead of 0x55
diff 25 address 0x00000019. Was 0xff instead of 0x05
diff 26 address 0x0000001a. Was 0xff instead of 0x00
diff 27 address 0x0000001b. Was 0xff instead of 0x08
diff 28 address 0x0000001c. Was 0xff instead of 0x9a
diff 29 address 0x0000001d. Was 0xff instead of 0x90
diff 30 address 0x0000001f. Was 0xff instead of 0xaf
diff 31 address 0x00000020. Was 0xff instead of 0x93
diff 32 address 0x00000021. Was 0xff instead of 0x9d
diff 33 address 0x00000022. Was 0xff instead of 0x93
diff 34 address 0x00000023. Was 0xff instead of 0x9b
diff 35 address 0x00000024. Was 0xff instead of 0x08
diff 36 address 0x00000025. Was 0xff instead of 0x99
diff 37 address 0x00000026. Was 0xff instead of 0x96
diff 38 address 0x00000027. Was 0xff instead of 0x97
diff 39 address 0x00000028. Was 0xff instead of 0x01
diff 40 address 0x00000029. Was 0xff instead of 0x01
diff 41 address 0x0000002a. Was 0xff instead of 0x00
diff 42 address 0x0000002b. Was 0xff instead of 0x00
diff 43 address 0x0000002c. Was 0xff instead of 0x59
diff 44 address 0x0000002d. Was 0xff instead of 0x05
diff 45 address 0x0000002e. Was 0xff instead of 0x00
diff 46 address 0x0000002f. Was 0xff instead of 0x08
diff 47 address 0x00000030. Was 0xff instead of 0x5d
diff 48 address 0x00000031. Was 0xff instead of 0x05
diff 49 address 0x00000032. Was 0xff instead of 0x00
diff 50 address 0x00000033. Was 0xff instead of 0x08
diff 51 address 0x00000034. Was 0xff instead of 0x4c
diff 52 address 0x00000035. Was 0xff instead of 0x74
diff 53 address 0x00000036. Was 0xff instead of 0x00
diff 54 address 0x00000037. Was 0xff instead of 0x08
diff 55 address 0x00000038. Was 0xff instead of 0x61
diff 56 address 0x00000039. Was 0xff instead of 0x05
diff 57 address 0x0000003a. Was 0xff instead of 0x00
diff 58 address 0x0000003b. Was 0xff instead of 0x08
diff 59 address 0x0000003c. Was 0xff instead of 0xa9
diff 60 address 0x0000003d. Was 0xff instead of 0x56
diff 61 address 0x0000003e. Was 0xff instead of 0x00
diff 62 address 0x0000003f. Was 0xff instead of 0x08
diff 63 address 0x00000040. Was 0xff instead of 0x41
diff 64 address 0x00000041. Was 0xff instead of 0x05
diff 65 address 0x00000042. Was 0xff instead of 0x00
diff 66 address 0x00000043. Was 0xff instead of 0x08
diff 67 address 0x00000044. Was 0xff instead of 0x41
diff 68 address 0x00000045. Was 0xff instead of 0x05
diff 69 address 0x00000046. Was 0xff instead of 0x00
diff 70 address 0x00000047. Was 0xff instead of 0x08
diff 71 address 0x00000048. Was 0xff instead of 0x41
diff 72 address 0x00000049. Was 0xff instead of 0x05
diff 73 address 0x0000004a. Was 0xff instead of 0x00
diff 74 address 0x0000004b. Was 0xff instead of 0x08
diff 75 address 0x0000004c. Was 0xff instead of 0x41
diff 76 address 0x0000004d. Was 0xff instead of 0x05
diff 77 address 0x0000004e. Was 0xff instead of 0x00
diff 78 address 0x0000004f. Was 0xff instead of 0x08
diff 79 address 0x00000050. Was 0xff instead of 0x41
diff 80 address 0x00000051. Was 0xff instead of 0x05
diff 81 address 0x00000052. Was 0xff instead of 0x00
diff 82 address 0x00000053. Was 0xff instead of 0x08
diff 83 address 0x00000054. Was 0xff instead of 0x41
diff 84 address 0x00000055. Was 0xff instead of 0x05
diff 85 address 0x00000056. Was 0xff instead of 0x00
diff 86 address 0x00000057. Was 0xff instead of 0x08
diff 87 address 0x00000058. Was 0xff instead of 0x41
diff 88 address 0x00000059. Was 0xff instead of 0x05
diff 89 address 0x0000005a. Was 0xff instead of 0x00
diff 90 address 0x0000005b. Was 0xff instead of 0x08
diff 91 address 0x0000005c. Was 0xff instead of 0x41
diff 92 address 0x0000005d. Was 0xff instead of 0x05
diff 93 address 0x0000005e. Was 0xff instead of 0x00
diff 94 address 0x0000005f. Was 0xff instead of 0x08
diff 95 address 0x00000060. Was 0xff instead of 0x41
diff 96 address 0x00000061. Was 0xff instead of 0x05
diff 97 address 0x00000062. Was 0xff instead of 0x00
diff 98 address 0x00000063. Was 0xff instead of 0x08
diff 99 address 0x00000064. Was 0xff instead of 0x41
diff 100 address 0x00000065. Was 0xff instead of 0x05
diff 101 address 0x00000066. Was 0xff instead of 0x00
diff 102 address 0x00000067. Was 0xff instead of 0x08
diff 103 address 0x00000068. Was 0xff instead of 0x41
diff 104 address 0x00000069. Was 0xff instead of 0x05
diff 105 address 0x0000006a. Was 0xff instead of 0x00
diff 106 address 0x0000006b. Was 0xff instead of 0x08
diff 107 address 0x0000006c. Was 0xff instead of 0x41
diff 108 address 0x0000006d. Was 0xff instead of 0x05
diff 109 address 0x0000006e. Was 0xff instead of 0x00
diff 110 address 0x0000006f. Was 0xff instead of 0x08
diff 111 address 0x00000070. Was 0xff instead of 0x41
diff 112 address 0x00000071. Was 0xff instead of 0x05
diff 113 address 0x00000072. Was 0xff instead of 0x00
diff 114 address 0x00000073. Was 0xff instead of 0x08
diff 115 address 0x00000074. Was 0xff instead of 0x41
diff 116 address 0x00000075. Was 0xff instead of 0x05
diff 117 address 0x00000076. Was 0xff instead of 0x00
diff 118 address 0x00000077. Was 0xff instead of 0x08
diff 119 address 0x00000078. Was 0xff instead of 0x41
diff 120 address 0x00000079. Was 0xff instead of 0x05
diff 121 address 0x0000007a. Was 0xff instead of 0x00
diff 122 address 0x0000007b. Was 0xff instead of 0x08
diff 123 address 0x0000007c. Was 0xff instead of 0x41
diff 124 address 0x0000007d. Was 0xff instead of 0x05
diff 125 address 0x0000007e. Was 0xff instead of 0x00
diff 126 address 0x0000007f. Was 0xff instead of 0x08
diff 127 address 0x00000080. Was 0xff instead of 0x41
More than 128 errors, the rest are not printed.
```

it seems like init fails partly and OpenOCD tried to program the .bin file to 
the wrong location. unfort i am no TCL expert, so i've no clue what is going on 
/ missing.

not sure, if this helps, but the .hex file starts like this:
```
:04000005080004F9F2
:020000040800F2
:10000000004F0020F90400084505000835060008E7
:100010004D05000851050008550500089A90FFAFEE
:10002000939D939B0899969701010000590500083C
```
and ends in:
```
:10BBD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75
:10BBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65
:10BBF000FFFFFFFFFFFFFFFFFFFFFFFF4C103CFFBA
:00000001FF
```


---

Sent from sourceforge.net because openocd-devel@lists.sourceforge.net is 
subscribed to https://sourceforge.net/p/openocd/tickets/

To unsubscribe from further messages, a project admin can change settings at 
https://sourceforge.net/p/openocd/admin/tickets/options.  Or, if this is a 
mailing list, you can unsubscribe from the mailing list.


Reply via email to