pyocd / pyOCD

Open source Python library for programming and debugging Arm Cortex-M microcontrollers
https://pyocd.io
Apache License 2.0
1.11k stars 477 forks source link

Musca-B1 gdb connection problem #1467

Open danielRep opened 1 year ago

danielRep commented 1 year ago

Hi all, I'm getting back to using one of Arm's Musca boards, B1 specifically, after having used A1 on the last couple of weeks without any issue.

The DAPLink is configured to QSPI Flash v3.4 and I'm using the last version of pyocd with xPack GNU Arm Embedded GCC v12.1.90. When I try to connect to the gdb server, the pyocd gets closed since the connection was closed by gdb.

Output:

0000396 D [Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device (VID=1ea7 PID=0064). This can probably be remedied with a udev rule. See <https://github.com/pyocd/pyOCD/tree/master/udev> for help. [pyusb_backend]
0000399 D [Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device (VID=1770 PID=ff00). This can probably be remedied with a udev rule. See <https://github.com/pyocd/pyOCD/tree/master/udev> for help. [pyusb_backend]
0000402 D [Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device (VID=1ea7 PID=0064). This can probably be remedied with a udev rule. See <https://github.com/pyocd/pyOCD/tree/master/udev> for help. [pyusb_v2_backend]
0000405 D [Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device (VID=1770 PID=ff00). This can probably be remedied with a udev rule. See <https://github.com/pyocd/pyOCD/tree/master/udev> for help. [pyusb_v2_backend]
0000405 D Project directory: /home/daniel [session]
0000406 D Project directory: /home/daniel [session]
0000414 D CMSIS-DAP v1 probe 500700001d14dad300000000000000000000000097969902: protocol version 1.0.0 [dap_access_cmsis_dap]
0000418 D closing interface [pyusb_backend]
0000420 I Target type is musca_b1 [board]
0000426 D Running task load_svd [sequencer]
0000427 D Running task pre_connect [sequencer]
0000427 D Running task dp_init [sequencer]
0000427 D Running task lock_probe [sequencer]
0000427 D Running task get_probe_capabilities [sequencer]
0000428 D Running task connect [sequencer]
0000453 D Default wire protocol selected; using SWD [dap]
0000455 D Sending deprecated SWJ sequence to select SWD [swj]
0000463 I DP IDR = 0x6ba02477 (v2 rev6) [dap]
0000463 D Running task clear_sticky_err [sequencer]
0000463 D Running task power_up_debug [sequencer]
0000465 D Running task check_version [sequencer]
0000465 D Running task unlock_probe [sequencer]
0000466 D Running task create_discoverer [sequencer]
0000466 D Running task discovery [sequencer]
0000466 D Running task find_aps [sequencer]
0000478 D Running task create_aps [sequencer]
0000478 D Running task create_ap.0 [sequencer]
0000480 I APB-AP#0 IDR = 0x54770002 (APB-AP var0 rev5) [ap]
0000486 D APB-AP#0 default HPROT=0 HNONSEC=0 [ap]
0000488 D APB-AP#0 implemented HPROT=0 HNONSEC=0 [ap]
0000490 D Running task create_ap.1 [sequencer]
0000492 I AHB-AP#1 IDR = 0x84770001 (AHB-AP var0 rev8) [ap]
0000496 D AHB-AP#1 default HPROT=3 HNONSEC=0 [ap]
0000499 E Error reading AP#1 IDR: Memory transfer fault [discovery]
Traceback (most recent call last):
  File "/home/daniel/.local/lib/python3.8/site-packages/pyocd/probe/cmsis_dap_probe.py", line 502, in read_ap_result_callback
    value = result()
  File "/home/daniel/.local/lib/python3.8/site-packages/pyocd/probe/pydapaccess/dap_access_cmsis_dap.py", line 1060, in read_reg_cb
    res = transfer.get_result()
  File "/home/daniel/.local/lib/python3.8/site-packages/pyocd/probe/pydapaccess/dap_access_cmsis_dap.py", line 157, in get_result
    self.daplink.flush()
  File "/home/daniel/.local/lib/python3.8/site-packages/pyocd/utility/concurrency.py", line 29, in _locking
    return func(self, *args, **kwargs)
  File "/home/daniel/.local/lib/python3.8/site-packages/pyocd/probe/pydapaccess/dap_access_cmsis_dap.py", line 870, in flush
    self._read_packet()
  File "/home/daniel/.local/lib/python3.8/site-packages/pyocd/utility/concurrency.py", line 29, in _locking
    return func(self, *args, **kwargs)
  File "/home/daniel/.local/lib/python3.8/site-packages/pyocd/probe/pydapaccess/dap_access_cmsis_dap.py", line 1146, in _read_packet
    decoded_data = cmd.decode_data(raw_data)
  File "/home/daniel/.local/lib/python3.8/site-packages/pyocd/probe/pydapaccess/dap_access_cmsis_dap.py", line 480, in decode_data
    data = self._decode_transfer_data(data)
  File "/home/daniel/.local/lib/python3.8/site-packages/pyocd/probe/pydapaccess/dap_access_cmsis_dap.py", line 386, in _decode_transfer_data
    self._check_response(data[2])
  File "/home/daniel/.local/lib/python3.8/site-packages/pyocd/probe/pydapaccess/dap_access_cmsis_dap.py", line 364, in _check_response
    raise DAPAccessIntf.TransferFaultError()
pyocd.probe.pydapaccess.dap_access_api.DAPAccessIntf.TransferFaultError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/daniel/.local/lib/python3.8/site-packages/pyocd/coresight/discovery.py", line 162, in _create_1_ap
    ap = AccessPort.create(self.dp, ap_address)
  File "/home/daniel/.local/lib/python3.8/site-packages/pyocd/coresight/ap.py", line 367, in create
    ap.init()
  File "/home/daniel/.local/lib/python3.8/site-packages/pyocd/utility/concurrency.py", line 29, in _locking
    return func(self, *args, **kwargs)
  File "/home/daniel/.local/lib/python3.8/site-packages/pyocd/coresight/ap.py", line 1256, in init
    super().init()
  File "/home/daniel/.local/lib/python3.8/site-packages/pyocd/utility/concurrency.py", line 29, in _locking
    return func(self, *args, **kwargs)
  File "/home/daniel/.local/lib/python3.8/site-packages/pyocd/coresight/ap.py", line 778, in init
    _init_hprot()
  File "/home/daniel/.local/lib/python3.8/site-packages/pyocd/coresight/ap.py", line 746, in _init_hprot
    csw = AccessPort.read_reg(self, self._reg_offset + MEM_AP_CSW)
  File "/home/daniel/.local/lib/python3.8/site-packages/pyocd/utility/concurrency.py", line 29, in _locking
    return func(self, *args, **kwargs)
  File "/home/daniel/.local/lib/python3.8/site-packages/pyocd/coresight/ap.py", line 453, in read_reg
    return self.dp.read_ap(self.address.address + addr, now)
  File "/home/daniel/.local/lib/python3.8/site-packages/pyocd/coresight/dap.py", line 901, in read_ap
    return read_ap_cb()
  File "/home/daniel/.local/lib/python3.8/site-packages/pyocd/coresight/dap.py", line 889, in read_ap_cb
    result = result_cb()
  File "/home/daniel/.local/lib/python3.8/site-packages/pyocd/probe/cmsis_dap_probe.py", line 507, in read_ap_result_callback
    raise self._convert_exception(error) from error
pyocd.core.exceptions.TransferFaultError: Memory transfer fault
0000501 D Running task create_ap.2 [sequencer]
0000503 I AHB-AP#2 IDR = 0x84770001 (AHB-AP var0 rev8) [ap]
0000507 D AHB-AP#2 default HPROT=3 HNONSEC=0 [ap]
0000509 D AHB-AP#2 implemented HPROT=f HNONSEC=1 [ap]
0000512 D Running task find_components [sequencer]
0000513 D Running task init_ap.0 [sequencer]
0000520 I APB-AP#0 Class 0x1 ROM table #0 @ 0xf0000000 (designer=43b:Arm part=7d1) [rom_table]
0000530 I [0]<f0001000:CSTF class=9 designer=43b:Arm part=908 devtype=12 archid=0000 devid=34:0:0> [rom_table]
0000537 I [1]<f0002000:CTI class=9 designer=43b:Arm part=906 devtype=14 archid=0000 devid=40800:0:0> [rom_table]
0000541 I [2]<f0080000:ROM class=1 designer=43b:Arm part=7d4> [rom_table]
0000541 I   APB-AP#0 Class 0x1 ROM table #1 @ 0xf0080000 (designer=43b:Arm part=7d4) [rom_table]
0000551 I   [0]<f0081000:TPIU class=9 designer=43b:Arm part=912 devtype=11 archid=0000 devid=a0:0:0> [rom_table]
0000558 I   [1]<f0082000:CTI class=9 designer=43b:Arm part=906 devtype=14 archid=0000 devid=40800:0:0> [rom_table]
0000563 I   [2]<f0083000:TSGEN class=15 designer=43b:Arm part=101> [rom_table]
0000570 I   [3]<f0084000:CSTF class=9 designer=43b:Arm part=908 devtype=12 archid=0000 devid=33:0:0> [rom_table]
0000570 D Running task init_ap.2 [sequencer]
0000580 I AHB-AP#2 Class 0x1 ROM table #0 @ 0xf0008000 (designer=43b:Arm part=744) [rom_table]
0000590 I [0]<f0009000:GPR class=9 designer=43b:Arm part=9a4 devtype=34 archid=0a34 devid=1:0:0> [rom_table]
0000592 I Enabled power to power domain #0 [rom_table]
0000596 I [1]<e00ff000:ROM class=1 designer=43b:Arm part=4c9 pwrid=0> [rom_table]
0000596 I   AHB-AP#2 Class 0x1 ROM table #1 @ 0xe00ff000 (designer=43b:Arm part=4c9) [rom_table]
0000606 I   [0]<e000e000:SCS M33 class=9 designer=43b:Arm part=d21 devtype=00 archid=2a04 devid=0:0:0> [rom_table]
0000613 I   [1]<e0001000:DWT M33 class=9 designer=43b:Arm part=d21 devtype=00 archid=1a02 devid=0:0:0> [rom_table]
0000620 I   [2]<e0002000:BPU M33 class=9 designer=43b:Arm part=d21 devtype=00 archid=1a03 devid=0:0:0> [rom_table]
0000628 I   [3]<e0000000:ITM M33 class=9 designer=43b:Arm part=d21 devtype=43 archid=1a01 devid=0:0:0> [rom_table]
0000628 D   [4]<fff41002 not present> [rom_table]
0000635 I   [5]<e0041000:ETM M33 class=9 designer=43b:Arm part=d21 devtype=13 archid=4a13 devid=0:0:0> [rom_table]
0000642 I   [6]<e0042000:CTI M33 class=9 designer=43b:Arm part=d21 devtype=14 archid=1a14 devid=40800:0:0> [rom_table]
0000643 D   [7]<fff44002 not present> [rom_table]
0000643 D Running task create_cores [sequencer]
0000643 D Creating SCS component [discovery]
0000643 D selected core #0 [soc_target]
0000649 I CPU core #0 is Cortex-M33 r0p2 (security ext present) [cortex_m_v8m]
0000655 I FPU present: FPv5-SP-D16-M [cortex_m]
0000659 D Running task create_components [sequencer]
0000659 D Creating TPIU component [discovery]
0000661 D Creating GPR component [discovery]
0000661 D Creating DWT component [discovery]
0000665 I 4 hardware watchpoints [dwt]
0000666 D Creating BPU component [discovery]
0000669 I 8 hardware breakpoints, 1 literal comparators [fpb]
0000670 D fpb has been disabled [fpb]
0000672 D Creating ITM component [discovery]
0000678 D Running task check_for_cores [sequencer]
0000679 D Running task enable_sysresetreq [sequencer]
0000679 I Enabling SYSRSTREQ0_EN and SYSRSTREQ1_EN [target_musca_b1]
0000683 D Running task halt_on_connect [sequencer]
0000683 D halting core 0 [cortex_m]
0000686 D Running task post_connect [sequencer]
0000686 D Running task post_connect_hook [sequencer]
0000686 D Running task create_flash [sequencer]
0000687 D Running task notify [sequencer]
0000689 D Setting vector catch to 0x00000001 [cortex_m]
0000695 I Semihost server started on port 4444 (core 0) [server]
0000754 I GDB server started on port 3333 (core 0) [gdbserver]
0011177 D Starting GDB server packet I/O thread [packet_io]
0011177 D halting core 0 [cortex_m]
0011179 I Client connected to port 3333! [gdbserver]
0011179 D GDB received query: [b'Supported', b'multiprocess+;swbreak+;hwbreak+;qRelocInsn+;fork-events+;vfork-events+;exec-events+;vContSupported+;QThreadEvents+;no-resumed+;memory-tagging+#ec'] [gdbserver]
0011223 D GDB general set: b'StartNoAckMode' [gdbserver]
0011271 D GDB received query: [b'Xfer', b'features', b'read', b'target.xml', b'0,7fb#4a'] [gdbserver]
0011271 D GDB query b'features': annex: b'target.xml', offset: 0, size: 2043 [gdbserver]
0011271 D GDB received query: [b'Xfer', b'features', b'read', b'target.xml', b'7fb,7fb#19'] [gdbserver]
0011272 D GDB query b'features': annex: b'target.xml', offset: 2043, size: 2043 [gdbserver]
0011272 D GDB general set: b'NonStop:0' [gdbserver]
0011273 D GDB received query: [b'TStatus#49'] [gdbserver]
0011273 D Current thread 0 is no longer valid, switching context to target [gdbserver]
0011277 D core is running; invalidating cache [register]
0011279 D Tresponse=b'T05thread:1;' [gdbserver]
0011279 D GDB received query: [b'Xfer', b'threads', b'read', b'', b'0,7fb#d0'] [gdbserver]
0011279 D GDB query b'threads': annex: b'', offset: 0, size: 2043 [gdbserver]
0011283 D core is running; invalidating cache [register]
0011285 D GDB received query: [b'Attached#8f'] [gdbserver]
0011286 D GDB getting register context [context_facade]
0011288 D core is running; invalidating cache [register]
0011290 D GDB get_reg_context: r0 = None -> b'xxxxxxxx' [context_facade]
0011290 D GDB get_reg_context: r1 = None -> b'xxxxxxxx' [context_facade]
0011290 D GDB get_reg_context: r2 = None -> b'xxxxxxxx' [context_facade]
0011290 D GDB get_reg_context: r3 = None -> b'xxxxxxxx' [context_facade]
0011291 D GDB get_reg_context: r4 = None -> b'xxxxxxxx' [context_facade]
0011291 D GDB get_reg_context: r5 = None -> b'xxxxxxxx' [context_facade]
0011291 D GDB get_reg_context: r6 = None -> b'xxxxxxxx' [context_facade]
0011291 D GDB get_reg_context: r7 = None -> b'xxxxxxxx' [context_facade]
0011291 D GDB get_reg_context: r8 = None -> b'xxxxxxxx' [context_facade]
0011291 D GDB get_reg_context: r9 = None -> b'xxxxxxxx' [context_facade]
0011291 D GDB get_reg_context: r10 = None -> b'xxxxxxxx' [context_facade]
0011291 D GDB get_reg_context: r11 = None -> b'xxxxxxxx' [context_facade]
0011291 D GDB get_reg_context: r12 = None -> b'xxxxxxxx' [context_facade]
0011291 D GDB get_reg_context: sp = None -> b'xxxxxxxx' [context_facade]
0011291 D GDB get_reg_context: lr = None -> b'xxxxxxxx' [context_facade]
0011291 D GDB get_reg_context: pc = None -> b'xxxxxxxx' [context_facade]
0011291 D GDB get_reg_context: msp = None -> b'xxxxxxxx' [context_facade]
0011291 D GDB get_reg_context: psp = None -> b'xxxxxxxx' [context_facade]
0011292 D GDB get_reg_context: primask = None -> b'xxxxxxxx' [context_facade]
0011292 D GDB get_reg_context: xpsr = None -> b'xxxxxxxx' [context_facade]
0011292 D GDB get_reg_context: control = None -> b'xxxxxxxx' [context_facade]
0011292 D GDB get_reg_context: fpscr = None -> b'xxxxxxxx' [context_facade]
0011292 D GDB get_reg_context: d0 = None -> b'xxxxxxxxxxxxxxxx' [context_facade]
0011292 D GDB get_reg_context: d1 = None -> b'xxxxxxxxxxxxxxxx' [context_facade]
0011292 D GDB get_reg_context: d2 = None -> b'xxxxxxxxxxxxxxxx' [context_facade]
0011292 D GDB get_reg_context: d3 = None -> b'xxxxxxxxxxxxxxxx' [context_facade]
0011292 D GDB get_reg_context: d4 = None -> b'xxxxxxxxxxxxxxxx' [context_facade]
0011292 D GDB get_reg_context: d5 = None -> b'xxxxxxxxxxxxxxxx' [context_facade]
0011292 D GDB get_reg_context: d6 = None -> b'xxxxxxxxxxxxxxxx' [context_facade]
0011292 D GDB get_reg_context: d7 = None -> b'xxxxxxxxxxxxxxxx' [context_facade]
0011292 D GDB get_reg_context: d8 = None -> b'xxxxxxxxxxxxxxxx' [context_facade]
0011292 D GDB get_reg_context: d9 = None -> b'xxxxxxxxxxxxxxxx' [context_facade]
0011292 D GDB get_reg_context: d10 = None -> b'xxxxxxxxxxxxxxxx' [context_facade]
0011292 D GDB get_reg_context: d11 = None -> b'xxxxxxxxxxxxxxxx' [context_facade]
0011292 D GDB get_reg_context: d12 = None -> b'xxxxxxxxxxxxxxxx' [context_facade]
0011292 D GDB get_reg_context: d13 = None -> b'xxxxxxxxxxxxxxxx' [context_facade]
0011292 D GDB get_reg_context: d14 = None -> b'xxxxxxxxxxxxxxxx' [context_facade]
0011292 D GDB get_reg_context: d15 = None -> b'xxxxxxxxxxxxxxxx' [context_facade]
0011292 D GDB get_reg_context: basepri = None -> b'xxxxxxxx' [context_facade]
0011292 D GDB get_reg_context: faultmask = None -> b'xxxxxxxx' [context_facade]
0011293 D GDB get_reg_context: msp_ns = None -> b'xxxxxxxx' [context_facade]
0011293 D GDB get_reg_context: psp_ns = None -> b'xxxxxxxx' [context_facade]
0011293 D GDB get_reg_context: msp_s = None -> b'xxxxxxxx' [context_facade]
0011293 D GDB get_reg_context: psp_s = None -> b'xxxxxxxx' [context_facade]
0011293 D GDB get_reg_context: msplim_ns = None -> b'xxxxxxxx' [context_facade]
0011293 D GDB get_reg_context: psplim_ns = None -> b'xxxxxxxx' [context_facade]
0011293 D GDB get_reg_context: msplim_s = None -> b'xxxxxxxx' [context_facade]
0011293 D GDB get_reg_context: psplim_s = None -> b'xxxxxxxx' [context_facade]
0011293 D GDB packet thread: other side closed connection [packet_io]
0011293 D GDB packet thread stopping [packet_io]
0011393 D gdbserver connection loop exiting; client closed connection [gdbserver]
0011394 D gdbserver exiting connection loop [gdbserver]
0011394 I Client disconnected from port 3333! [gdbserver]
0011394 D gdbserver thread exiting [gdbserver]
0011394 D GDB server cleaning up [gdbserver]
0011709 I Semihost server stopped [server]
0011779 D uninit session <pyocd.core.session.Session object at 0x7f9834c93e50> [session]
0011780 D uninit board <pyocd.board.mbed_board.MbedBoard object at 0x7f9834c4a370> [board]
0011783 D cannot resume: target not halted [cortex_m]
0011791 D closing interface [pyusb_backend]
danielRep commented 1 year ago

So, afaiu the problem can actually come from the gdb. I tried with other version of arm's toolchain. Although I started to try to connect with other versions of the toolchain, I noticed that the pyocd is now being able to respond to gdb with the actual register values, since the core was stopped, right?

The output if it helps:

0000357 D [Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device (VID=1ea7 PID=0064). This can probably be remedied with a udev rule. See <https://github.com/pyocd/pyOCD/tree/master/udev> for help. [pyusb_backend]
0000360 D [Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device (VID=1770 PID=ff00). This can probably be remedied with a udev rule. See <https://github.com/pyocd/pyOCD/tree/master/udev> for help. [pyusb_backend]
0000362 D [Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device (VID=1ea7 PID=0064). This can probably be remedied with a udev rule. See <https://github.com/pyocd/pyOCD/tree/master/udev> for help. [pyusb_v2_backend]
0000365 D [Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device (VID=1770 PID=ff00). This can probably be remedied with a udev rule. See <https://github.com/pyocd/pyOCD/tree/master/udev> for help. [pyusb_v2_backend]
0000365 D Project directory: /home/daniel [session]
0000366 D Project directory: /home/daniel [session]
0000374 D CMSIS-DAP v1 probe 500700001d14dad300000000000000000000000097969902: protocol version 1.0.0 [dap_access_cmsis_dap]
0000378 D closing interface [pyusb_backend]
0000380 I Target type is musca_b1 [board]
0000386 D Running task load_svd [sequencer]
0000387 D Running task pre_connect [sequencer]
0000387 D Running task dp_init [sequencer]
0000387 D Running task lock_probe [sequencer]
0000389 D Running task get_probe_capabilities [sequencer]
0000390 D Running task connect [sequencer]
0000407 D Default wire protocol selected; using SWD [dap]
0000409 D Sending deprecated SWJ sequence to select SWD [swj]
0000417 I DP IDR = 0x6ba02477 (v2 rev6) [dap]
0000417 D Running task clear_sticky_err [sequencer]
0000417 D Running task power_up_debug [sequencer]
0000419 D Running task check_version [sequencer]
0000419 D Running task unlock_probe [sequencer]
0000419 D Running task create_discoverer [sequencer]
0000419 D Running task discovery [sequencer]
0000419 D Running task find_aps [sequencer]
0000431 D Running task create_aps [sequencer]
0000431 D Running task create_ap.0 [sequencer]
0000433 I APB-AP#0 IDR = 0x54770002 (APB-AP var0 rev5) [ap]
0000439 D APB-AP#0 default HPROT=0 HNONSEC=0 [ap]
0000441 D APB-AP#0 implemented HPROT=0 HNONSEC=0 [ap]
0000443 D Running task create_ap.1 [sequencer]
0000445 I AHB-AP#1 IDR = 0x84770001 (AHB-AP var0 rev8) [ap]
0000449 D AHB-AP#1 default HPROT=3 HNONSEC=0 [ap]
0000451 D AHB-AP#1 implemented HPROT=f HNONSEC=1 [ap]
0000453 D Running task create_ap.2 [sequencer]
0000455 I AHB-AP#2 IDR = 0x84770001 (AHB-AP var0 rev8) [ap]
0000459 D AHB-AP#2 default HPROT=3 HNONSEC=0 [ap]
0000461 D AHB-AP#2 implemented HPROT=f HNONSEC=1 [ap]
0000463 D Running task find_components [sequencer]
0000463 D Running task init_ap.0 [sequencer]
0000469 I APB-AP#0 Class 0x1 ROM table #0 @ 0xf0000000 (designer=43b:Arm part=7d1) [rom_table]
0000481 I [0]<f0001000:CSTF class=9 designer=43b:Arm part=908 devtype=12 archid=0000 devid=34:0:0> [rom_table]
0000490 I [1]<f0002000:CTI class=9 designer=43b:Arm part=906 devtype=14 archid=0000 devid=40800:0:0> [rom_table]
0000495 I [2]<f0080000:ROM class=1 designer=43b:Arm part=7d4> [rom_table]
0000496 I   APB-AP#0 Class 0x1 ROM table #1 @ 0xf0080000 (designer=43b:Arm part=7d4) [rom_table]
0000507 I   [0]<f0081000:TPIU class=9 designer=43b:Arm part=912 devtype=11 archid=0000 devid=a0:0:0> [rom_table]
0000516 I   [1]<f0082000:CTI class=9 designer=43b:Arm part=906 devtype=14 archid=0000 devid=40800:0:0> [rom_table]
0000521 I   [2]<f0083000:TSGEN class=15 designer=43b:Arm part=101> [rom_table]
0000530 I   [3]<f0084000:CSTF class=9 designer=43b:Arm part=908 devtype=12 archid=0000 devid=33:0:0> [rom_table]
0000531 D Running task init_ap.1 [sequencer]
0000542 I AHB-AP#1 Class 0x1 ROM table #0 @ 0xf0008000 (designer=43b:Arm part=744) [rom_table]
0000553 I [0]<f0009000:GPR class=9 designer=43b:Arm part=9a4 devtype=34 archid=0a34 devid=1:0:0> [rom_table]
0000556 I Enabled power to power domain #0 [rom_table]
0000561 I [1]<e00ff000:ROM class=1 designer=43b:Arm part=4c9 pwrid=0> [rom_table]
0000562 I   AHB-AP#1 Class 0x1 ROM table #1 @ 0xe00ff000 (designer=43b:Arm part=4c9) [rom_table]
0000573 I   [0]<e000e000:SCS M33 class=9 designer=43b:Arm part=d21 devtype=00 archid=2a04 devid=0:0:0> [rom_table]
0000582 I   [1]<e0001000:DWT M33 class=9 designer=43b:Arm part=d21 devtype=00 archid=1a02 devid=0:0:0> [rom_table]
0000591 I   [2]<e0002000:BPU M33 class=9 designer=43b:Arm part=d21 devtype=00 archid=1a03 devid=0:0:0> [rom_table]
0000600 I   [3]<e0000000:ITM M33 class=9 designer=43b:Arm part=d21 devtype=43 archid=1a01 devid=0:0:0> [rom_table]
0000600 D   [4]<fff41002 not present> [rom_table]
0000609 I   [5]<e0041000:ETM M33 class=9 designer=43b:Arm part=d21 devtype=13 archid=4a13 devid=0:0:0> [rom_table]
0000618 I   [6]<e0042000:CTI M33 class=9 designer=43b:Arm part=d21 devtype=14 archid=1a14 devid=40800:0:0> [rom_table]
0000619 D   [7]<fff44002 not present> [rom_table]
0000619 D Running task init_ap.2 [sequencer]
0000633 I AHB-AP#2 Class 0x1 ROM table #0 @ 0xf0008000 (designer=43b:Arm part=744) [rom_table]
0000646 I [0]<f0009000:GPR class=9 designer=43b:Arm part=9a4 devtype=34 archid=0a34 devid=1:0:0> [rom_table]
0000649 I Enabled power to power domain #0 [rom_table]
0000654 I [1]<e00ff000:ROM class=1 designer=43b:Arm part=4c9 pwrid=0> [rom_table]
0000655 I   AHB-AP#2 Class 0x1 ROM table #1 @ 0xe00ff000 (designer=43b:Arm part=4c9) [rom_table]
0000669 I   [0]<e000e000:SCS M33 class=9 designer=43b:Arm part=d21 devtype=00 archid=2a04 devid=0:0:0> [rom_table]
0000677 I   [1]<e0001000:DWT M33 class=9 designer=43b:Arm part=d21 devtype=00 archid=1a02 devid=0:0:0> [rom_table]
0000684 I   [2]<e0002000:BPU M33 class=9 designer=43b:Arm part=d21 devtype=00 archid=1a03 devid=0:0:0> [rom_table]
0000691 I   [3]<e0000000:ITM M33 class=9 designer=43b:Arm part=d21 devtype=43 archid=1a01 devid=0:0:0> [rom_table]
0000691 D   [4]<fff41002 not present> [rom_table]
0000698 I   [5]<e0041000:ETM M33 class=9 designer=43b:Arm part=d21 devtype=13 archid=4a13 devid=0:0:0> [rom_table]
0000705 I   [6]<e0042000:CTI M33 class=9 designer=43b:Arm part=d21 devtype=14 archid=1a14 devid=40800:0:0> [rom_table]
0000705 D   [7]<fff44002 not present> [rom_table]
0000705 D Running task create_cores [sequencer]
0000705 D Creating SCS component [discovery]
0000706 D selected core #0 [soc_target]
0000712 I CPU core #0 is Cortex-M33 r0p2 (security ext present) [cortex_m_v8m]
0000716 I FPU present: FPv5-SP-D16-M [cortex_m]
0000718 D Creating SCS component [discovery]
0000725 I CPU core #1 is Cortex-M33 r0p2 (security ext present) [cortex_m_v8m]
0000729 I FPU present: FPv5-SP-D16-M [cortex_m]
0000732 D Running task create_components [sequencer]
0000732 D Creating TPIU component [discovery]
0000734 D Creating GPR component [discovery]
0000734 D Creating DWT component [discovery]
0000738 I 4 hardware watchpoints [dwt]
0000739 D Creating BPU component [discovery]
0000742 I 8 hardware breakpoints, 1 literal comparators [fpb]
0000742 D fpb has been disabled [fpb]
0000744 D Creating ITM component [discovery]
0000751 D Creating GPR component [discovery]
0000751 D Creating DWT component [discovery]
0000757 I 4 hardware watchpoints [dwt]
0000758 D Creating BPU component [discovery]
0000761 I 8 hardware breakpoints, 1 literal comparators [fpb]
0000761 D fpb has been disabled [fpb]
0000763 D Creating ITM component [discovery]
0000770 D Running task check_for_cores [sequencer]
0000771 D Running task enable_sysresetreq [sequencer]
0000771 I Enabling SYSRSTREQ0_EN and SYSRSTREQ1_EN [target_musca_b1]
0000774 D Running task halt_on_connect [sequencer]
0000775 D halting core 0 [cortex_m]
0000777 D halting core 1 [cortex_m]
0000779 D Running task post_connect [sequencer]
0000780 D Running task post_connect_hook [sequencer]
0000780 D Running task create_flash [sequencer]
0000780 D Running task notify [sequencer]
0000782 D Setting vector catch to 0x00000001 [cortex_m]
0000787 I Semihost server started on port 4444 (core 0) [server]
0000826 I GDB server started on port 3333 (core 0) [gdbserver]
0000829 D Setting vector catch to 0x00000001 [cortex_m]
0000832 I Semihost server started on port 4445 (core 1) [server]
0000833 I GDB server started on port 3334 (core 1) [gdbserver]
0015715 D Starting GDB server packet I/O thread [packet_io]
0015716 D halting core 0 [cortex_m]
0015718 I Client connected to port 3333! [gdbserver]
0015719 D GDB received query: [b'Supported', b'multiprocess+;swbreak+;hwbreak+;qRelocInsn+;fork-events+;vfork-events+;exec-events+;vContSupported+;QThreadEvents+;no-resumed+;memory-tagging+#ec'] [gdbserver]
0015764 D GDB general set: b'StartNoAckMode' [gdbserver]
0015808 D GDB received query: [b'Xfer', b'features', b'read', b'target.xml', b'0,7fb#4a'] [gdbserver]
0015808 D GDB query b'features': annex: b'target.xml', offset: 0, size: 2043 [gdbserver]
0015809 D GDB received query: [b'Xfer', b'features', b'read', b'target.xml', b'7fb,7fb#19'] [gdbserver]
0015809 D GDB query b'features': annex: b'target.xml', offset: 2043, size: 2043 [gdbserver]
0015810 D GDB general set: b'NonStop:0' [gdbserver]
0015811 D GDB received query: [b'TStatus#49'] [gdbserver]
0015811 D Current thread 0 is no longer valid, switching context to target [gdbserver]
0015815 D no accesses [register]
0015815 D out of date run token; invalidating cache [register]
0015825 D Tresponse=b'T0507:00000000;0d:e07f0230;0e:f9ffffff;0f:12000010;thread:1;' [gdbserver]
0015826 D GDB received query: [b'Xfer', b'threads', b'read', b'', b'0,7fb#d0'] [gdbserver]
0015826 D GDB query b'threads': annex: b'', offset: 0, size: 2043 [gdbserver]
0015837 D GDB received query: [b'Attached#8f'] [gdbserver]
0015838 D GDB received query: [b'Xfer', b'threads', b'read', b'', b'0,7fb#d0'] [gdbserver]
0015838 D GDB query b'threads': annex: b'', offset: 0, size: 2043 [gdbserver]
0015843 D GDB received query: [b'Xfer', b'memory-map', b'read', b'', b'0,7fb#e9'] [gdbserver]
0015843 D GDB query b'memory-map': annex: b'', offset: 0, size: 2043 [gdbserver]
0015846 D no reads [memory]
0015846 D out of date run token; invalidating cache [memory]
0015851 D GDB getting register context [context_facade]
0015961 D GDB get_reg_context: r0 = 0x10000030 -> b'30000010' [context_facade]
0015961 D GDB get_reg_context: r1 = 0x1A440000 -> b'0000441a' [context_facade]
0015961 D GDB get_reg_context: r2 = 0x10005928 -> b'28590010' [context_facade]
0015961 D GDB get_reg_context: r3 = 0x00000000 -> b'00000000' [context_facade]
0015961 D GDB get_reg_context: r4 = 0x0040000C -> b'0c004000' [context_facade]
0015961 D GDB get_reg_context: r5 = 0x00000000 -> b'00000000' [context_facade]
0015961 D GDB get_reg_context: r6 = 0x00000000 -> b'00000000' [context_facade]
0015962 D GDB get_reg_context: r7 = 0x00000000 -> b'00000000' [context_facade]
0015962 D GDB get_reg_context: r8 = 0xFFFFFFFF -> b'ffffffff' [context_facade]
0015962 D GDB get_reg_context: r9 = 0xFFFFFFFF -> b'ffffffff' [context_facade]
0015962 D GDB get_reg_context: r10 = 0xFFFFFFFF -> b'ffffffff' [context_facade]
0015962 D GDB get_reg_context: r11 = 0xFFFFFFFF -> b'ffffffff' [context_facade]
0015962 D GDB get_reg_context: r12 = 0xFFFFFFFF -> b'ffffffff' [context_facade]
0015962 D GDB get_reg_context: sp = 0x30027FE0 -> b'e07f0230' [context_facade]
0015962 D GDB get_reg_context: lr = 0xFFFFFFF9 -> b'f9ffffff' [context_facade]
0015962 D GDB get_reg_context: pc = 0x10000012 -> b'12000010' [context_facade]
0015962 D GDB get_reg_context: msp = 0x30027FE0 -> b'e07f0230' [context_facade]
0015963 D GDB get_reg_context: psp = 0x00000000 -> b'00000000' [context_facade]
0015963 D GDB get_reg_context: primask = 0x00000000 -> b'00000000' [context_facade]
0015963 D GDB get_reg_context: xpsr = 0x39000003 -> b'03000039' [context_facade]
0015963 D GDB get_reg_context: control = 0x00000000 -> b'00000000' [context_facade]
0015963 D GDB get_reg_context: fpscr = 0x00000000 -> b'00000000' [context_facade]
0015963 D GDB get_reg_context: d0 = 0x00000000 -> b'0000000000000000' [context_facade]
0015963 D GDB get_reg_context: d1 = 0x00000000 -> b'0000000000000000' [context_facade]
0015963 D GDB get_reg_context: d2 = 0x00000000 -> b'0000000000000000' [context_facade]
0015964 D GDB get_reg_context: d3 = 0x00000000 -> b'0000000000000000' [context_facade]
0015964 D GDB get_reg_context: d4 = 0x00000000 -> b'0000000000000000' [context_facade]
0015964 D GDB get_reg_context: d5 = 0x00000000 -> b'0000000000000000' [context_facade]
0015964 D GDB get_reg_context: d6 = 0x00000000 -> b'0000000000000000' [context_facade]
0015964 D GDB get_reg_context: d7 = 0x00000000 -> b'0000000000000000' [context_facade]
0015964 D GDB get_reg_context: d8 = 0x00000000 -> b'0000000000000000' [context_facade]
0015964 D GDB get_reg_context: d9 = 0x00000000 -> b'0000000000000000' [context_facade]
0015964 D GDB get_reg_context: d10 = 0x00000000 -> b'0000000000000000' [context_facade]
0015964 D GDB get_reg_context: d11 = 0x00000000 -> b'0000000000000000' [context_facade]
0015965 D GDB get_reg_context: d12 = 0x00000000 -> b'0000000000000000' [context_facade]
0015965 D GDB get_reg_context: d13 = 0x00000000 -> b'0000000000000000' [context_facade]
0015965 D GDB get_reg_context: d14 = 0x00000000 -> b'0000000000000000' [context_facade]
0015965 D GDB get_reg_context: d15 = 0x00000000 -> b'0000000000000000' [context_facade]
0015965 D GDB get_reg_context: basepri = 0x00000000 -> b'00000000' [context_facade]
0015965 D GDB get_reg_context: faultmask = 0x00000000 -> b'00000000' [context_facade]
0015965 D GDB get_reg_context: msp_ns = 0x00000000 -> b'00000000' [context_facade]
0015965 D GDB get_reg_context: psp_ns = 0xFFFFFFFC -> b'fcffffff' [context_facade]
0015966 D GDB get_reg_context: msp_s = 0x30027FE0 -> b'e07f0230' [context_facade]
0015966 D GDB get_reg_context: psp_s = 0x00000000 -> b'00000000' [context_facade]
0015966 D GDB get_reg_context: msplim_ns = 0x00000000 -> b'00000000' [context_facade]
0015966 D GDB get_reg_context: psplim_ns = 0x00000000 -> b'00000000' [context_facade]
0015966 D GDB get_reg_context: msplim_s = 0x00000000 -> b'00000000' [context_facade]
0015966 D GDB get_reg_context: psplim_s = 0x00000000 -> b'00000000' [context_facade]
danielRep commented 1 year ago

Any trick to halt the target @flit ? Tried with the below commands, still can do the trick.

pyocd> reset halt
Resetting target with halt
0229928 W Timed out waiting for core to halt after reset (state is RUNNING) [cortex_m]
Failed to halt device on reset (state is RUNNING)
pyocd> halt
Failed to halt device; target state is Running
pyocd> 
Hoohaha commented 1 year ago

@danielRep You should check reason from gdbserver's output. And I can see there are permission errors while pyocd accessing devices. Maybe it is the cause

danielRep commented 1 year ago

@danielRep You should check reason from gdbserver's output. And I can see there are permission errors while pyocd accessing devices. Maybe it is the cause

As mentioned by @flit on slack, the reason to have this behavior is probably related to pyocd returning 'xxxxxxxx’ for register values since the core is running. As you can see on the second output, the registers context are "known" so gdb doesn't stop the connection. The USB permissions I think are not the issue; nevertheless, I already updated the udev rules with the ones in pyocd/udev