--- ** [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.