From: Tom <to...@us...> - 2021-09-23 11:12:29
|
I suspect a firmware problem in the on-board ti-icdi adapter. Can you send also the beginning of OpenOCD log containing "ICDI Firmware version: ..." ? And then please try to update the firmware if possible. As you can see in discussion at https://review.openocd.org/c/openocd/+/5864 the change was tested with EK-TM4C1294XL (ti-icdi + Cortex-M4F based TI TM4C1294NCPD). --- ** [tickets:#321] gdbserver connection to TI Launchpad (EK-TM4C123GXL) broken in 0.11.0.** **Status:** new **Milestone:** 0.11.0 **Created:** Wed Sep 22, 2021 10:11 PM UTC by Ed Nelson **Last Updated:** Wed Sep 22, 2021 10:12 PM UTC **Owner:** nobody With OpenOCD 0.11.0, I'm no longer able to connect to a TI Launchpad (EK-TM4C123GXL) using gdb. Console log output after passing "target extended-remote localhost:51235" to gdb is as follows: Info : accepting 'gdb' connection on tcp/51235 Error: register read failed: 0x8 Error: register read failed: 0x8 Error: register read failed: 0x8 Error: memory write failed: 0x8 target halted due to debug-request, current mode: Handler External Interrupt(92) xPSR: 0x4100006c pc: 0x0000685e msp: 0x20007fb4 Error: memory read failed: 0x8 Error: memory read failed: 0x8 Warn : Cannot identify target as a Stellaris Error: auto_probe failed Error: Connect failed. Consider setting up a gdb-attach event for the target to prepare target for GDB connect, or use 'gdb_memory_map disable'. Error: attempted 'gdb' connection rejected Error: jtag status contains invalid mode value - communication failure Polling target tm4c123gh6pm.cpu failed, trying to reexamine Examination failed, GDB will be halted. Polling again in 100ms Error: jtag status contains invalid mode value - communication failure Polling target tm4c123gh6pm.cpu failed, trying to reexamine Examination failed, GDB will be halted. Polling again in 300ms At this point, the gdbserver connection has been terminated and it's necessary to power cycle the board to restore access to the debugger. With debugging output turned on, I get the following at the console: Info : 194 6784 server.c:100 add_connection(): accepting 'gdb' connection on tcp/51235 Debug: 195 6784 breakpoints.c:383 breakpoint_clear_target_internal(): Delete all breakpoints for target: tm4c123gh6pm.cpu Debug: 196 6785 breakpoints.c:523 watchpoint_clear_target(): Delete all watchpoints for target: tm4c123gh6pm.cpu Debug: 197 6785 target.c:1825 target_call_event_callbacks(): target event 22 (gdb-attach) for core tm4c123gh6pm.cpu Debug: 198 6785 target.c:4773 target_handle_event(): target(0): tm4c123gh6pm.cpu (hla_target) event: 22 (gdb-attach) action: halt 1000 Debug: 199 6785 command.c:146 script_debug(): command - halt 1000 Debug: 201 6786 target.c:3260 handle_halt_command(): - Debug: 202 6786 hla_target.c:418 adapter_halt(): adapter_halt Debug: 203 6790 hla_target.c:602 adapter_read_memory(): adapter_read_memory 0xe000edf8 4 1 Debug: 204 6792 target.c:2587 target_read_u32(): address: 0xe000edf8, value: 0x00000000 Debug: 205 6795 armv7m.c:341 armv7m_read_core_reg(): read r0 value 0x00000001 Debug: 206 6799 armv7m.c:341 armv7m_read_core_reg(): read r1 value 0x80000000 Debug: 207 6803 armv7m.c:341 armv7m_read_core_reg(): read r2 value 0xe000ed10 Debug: 208 6807 armv7m.c:341 armv7m_read_core_reg(): read r3 value 0x00000002 Debug: 209 6810 armv7m.c:341 armv7m_read_core_reg(): read r4 value 0x200007b4 Debug: 210 6814 armv7m.c:341 armv7m_read_core_reg(): read r5 value 0x200004f8 Debug: 211 6818 armv7m.c:341 armv7m_read_core_reg(): read r6 value 0x22009f00 Debug: 212 6822 armv7m.c:341 armv7m_read_core_reg(): read r7 value 0x000071f0 Debug: 213 6825 armv7m.c:341 armv7m_read_core_reg(): read r8 value 0x00000000 Debug: 214 6829 armv7m.c:341 armv7m_read_core_reg(): read r9 value 0x00000000 Debug: 215 6833 armv7m.c:341 armv7m_read_core_reg(): read r10 value 0x00000000 Debug: 216 6836 armv7m.c:341 armv7m_read_core_reg(): read r11 value 0x00000000 Debug: 217 6840 armv7m.c:341 armv7m_read_core_reg(): read r12 value 0x00000000 Debug: 218 6844 armv7m.c:341 armv7m_read_core_reg(): read sp value 0x20007fe8 Debug: 219 6848 armv7m.c:341 armv7m_read_core_reg(): read lr value 0x0000252f Debug: 220 6851 armv7m.c:341 armv7m_read_core_reg(): read pc value 0x00006dd2 Debug: 221 6855 armv7m.c:341 armv7m_read_core_reg(): read xPSR value 0x41000000 Debug: 222 6859 armv7m.c:341 armv7m_read_core_reg(): read msp value 0x20007fe8 Debug: 223 6863 armv7m.c:341 armv7m_read_core_reg(): read psp value 0x00000000 Debug: 224 6867 armv7m.c:341 armv7m_read_core_reg(): read pmsk_bpri_fltmsk_ctrl value 0x00000000 Debug: 225 6874 armv7m.c:339 armv7m_read_core_reg(): read d0 value 0x0000000000000000 Debug: 226 6882 armv7m.c:339 armv7m_read_core_reg(): read d1 value 0x0000000000000000 Debug: 227 6889 armv7m.c:339 armv7m_read_core_reg(): read d2 value 0x0000000000000000 Debug: 228 6897 armv7m.c:339 armv7m_read_core_reg(): read d3 value 0x0000000000000000 Debug: 229 6904 armv7m.c:339 armv7m_read_core_reg(): read d4 value 0x0000000000000000 Debug: 230 6912 armv7m.c:339 armv7m_read_core_reg(): read d5 value 0x0000000000000000 Debug: 231 6919 armv7m.c:339 armv7m_read_core_reg(): read d6 value 0x0000000000000000 Debug: 232 6927 armv7m.c:339 armv7m_read_core_reg(): read d7 value 0x0000000000000000 Debug: 233 6934 armv7m.c:339 armv7m_read_core_reg(): read d8 value 0x0000000000000000 Debug: 234 6942 armv7m.c:339 armv7m_read_core_reg(): read d9 value 0x0000000000000000 Debug: 235 6949 armv7m.c:339 armv7m_read_core_reg(): read d10 value 0x0000000000000000 Debug: 236 6957 armv7m.c:339 armv7m_read_core_reg(): read d11 value 0x0000000000000000 Debug: 237 6965 armv7m.c:339 armv7m_read_core_reg(): read d12 value 0x0000000000000000 Debug: 238 6972 armv7m.c:339 armv7m_read_core_reg(): read d13 value 0x0000000000000000 Debug: 239 6980 armv7m.c:339 armv7m_read_core_reg(): read d14 value 0x0000000000000000 Error: 240 6985 ti_icdi_usb.c:492 icdi_usb_read_reg(): register read failed: 0x8 Error: 241 6986 ti_icdi_usb.c:492 icdi_usb_read_reg(): register read failed: 0x8 Error: 242 6987 ti_icdi_usb.c:583 icdi_usb_write_mem_int(): memory write failed: 0x8 Debug: 243 6987 hla_target.c:286 adapter_debug_entry(): entered debug state in core mode: Thread at PC 0x00006dd2, target->state: halted Debug: 244 6987 target.c:1825 target_call_event_callbacks(): target event 0 (gdb-halt) for core tm4c123gh6pm.cpu Debug: 245 6987 target.c:1825 target_call_event_callbacks(): target event 1 (halted) for core tm4c123gh6pm.cpu User : 246 6987 armv7m.c:696 armv7m_arch_state(): target halted due to debug-request, current mode: Thread xPSR: 0x41000000 pc: 0x00006dd2 msp: 0x20007fe8 Debug: 247 6987 hla_target.c:331 adapter_poll(): halted: PC: 0x00006dd2 Debug: 248 6987 hla_target.c:602 adapter_read_memory(): adapter_read_memory 0x400fe000 4 1 Error: 249 6989 ti_icdi_usb.c:545 icdi_usb_read_mem_int(): memory read failed: 0x8 Debug: 250 6989 target.c:2592 target_read_u32(): address: 0x400fe000 failed Debug: 251 6989 hla_target.c:602 adapter_read_memory(): adapter_read_memory 0x400fe004 4 1 Error: 252 6990 ti_icdi_usb.c:545 icdi_usb_read_mem_int(): memory read failed: 0x8 Debug: 253 6990 target.c:2592 target_read_u32(): address: 0x400fe004 failed Debug: 254 6990 hla_target.c:602 adapter_read_memory(): adapter_read_memory 0x400fe008 4 1 Debug: 255 7990 ti_icdi_usb.c:164 icdi_send_packet(): Error RX Data -7 Debug: 256 7990 target.c:2592 target_read_u32(): address: 0x400fe008 failed Debug: 257 7990 hla_target.c:602 adapter_read_memory(): adapter_read_memory 0x400fe010 4 1 Debug: 258 8991 ti_icdi_usb.c:156 icdi_send_packet(): Error TX Data -7 Debug: 259 8991 target.c:2592 target_read_u32(): address: 0x400fe010 failed Debug: 260 8991 stellaris.c:680 stellaris_read_part_info(): did0 0x0, did1 0x0, dc0 0x0, dc1 0x0 Warn : 261 8991 stellaris.c:690 stellaris_read_part_info(): Cannot identify target as a Stellaris Error: 262 8991 core.c:302 get_flash_bank_by_num(): auto_probe failed Error: 263 8991 gdb_server.c:1006 gdb_new_connection(): Connect failed. Consider setting up a gdb-attach event for the target to prepare target for GDB connect, or use 'gdb_memory_map disable'. Error: 264 8991 server.c:104 add_connection(): attempted 'gdb' connection rejected It appears that a read of floating point register D15 failed and the debugger didn't recover. Bisecting the code led me to this commit: 62394a6b1c25ac92630a4828ec1b5d70acfe6e0f. That commit changed the method used to access floating point registers in file src/target/hla_target.c to match the method used for the non-floating point registers instead of using the debugger DCRSR/DCRDR registers. Reverting just the changes made to hla_target.c restored functionality of the debugging interface. I'm not sure why reverting the change works for me. Floating point registers D0-D14 were read out fine (as far as I can tell, the code loaded to the board doesn't use the FPU), so I wouldn't expect an issue with D15. Any help you can offer would be appreciated. --- Sent from sourceforge.net because ope...@li... 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. |