pyocd / pyOCD

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

pyocd.cache.memory.MemoryAccessError when debugging STM32L476RG #937

Open maxgerhardt opened 4 years ago

maxgerhardt commented 4 years ago

When attempting to flash a firmware using CLion's "Embedded GDB server" configured to call into pyocd, a fatal error occurs. The following CLion configuration is used:

image

Where as the file comes from https://www.keil.com/dd2/pack/ ("STMicroelectronics STM32L4 Series Device Support, Drivers and..").

The verbose pyocd logs are as follows:

pyocd gdbserver --pack /home/max/Downloads/Keil.STM32L4xx_DFP.2.4.0.pack -v -t stm32l476rgtx
0001243:DEBUG:pyusb_backend:[Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device (VID=04ca PID=703c). This can probably be remedied with a udev rule. See <https://github.com/mbedmicro/pyOCD/tree/master/udev> for help.
0001243:DEBUG:pyusb_backend:[Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device (VID=046a PID=b090). This can probably be remedied with a udev rule. See <https://github.com/mbedmicro/pyOCD/tree/master/udev> for help.
0001243:DEBUG:pyusb_backend:[Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device (VID=046d PID=c077). This can probably be remedied with a udev rule. See <https://github.com/mbedmicro/pyOCD/tree/master/udev> for help.
0001251:DEBUG:pyusb_v2_backend:[Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device (VID=04ca PID=703c). This can probably be remedied with a udev rule. See <https://github.com/mbedmicro/pyOCD/tree/master/udev> for help.
0001251:DEBUG:pyusb_v2_backend:[Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device (VID=046a PID=b090). This can probably be remedied with a udev rule. See <https://github.com/mbedmicro/pyOCD/tree/master/udev> for help.
0001252:DEBUG:pyusb_v2_backend:[Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device (VID=046d PID=c077). This can probably be remedied with a udev rule. See <https://github.com/mbedmicro/pyOCD/tree/master/udev> for help.
0001679:DEBUG:session:Project directory: /home/max
0001736:INFO:board:Target type is stm32l476rgtx
0001740:DEBUG:stlink:STLink probe 0018002B3038511834333935 firmware version: V3J4M2
0001740:DEBUG:sequencer:Running task load_svd
0001831:DEBUG:sequencer:Running task pre_connect
0001837:DEBUG:sequencer:Running task dp_init
0001843:DEBUG:sequencer:Running task get_probe_capabilities
0001848:DEBUG:sequencer:Running task connect
0001875:DEBUG:dap:Default wire protocol selected; using SWD
0001893:INFO:dap:DP IDR = 0x2ba01477 (v1 rev2)
0001894:DEBUG:sequencer:Running task clear_sticky_err
0001911:DEBUG:sequencer:Running task power_up_debug
0001948:DEBUG:sequencer:Running task check_version
0001953:DEBUG:sequencer:Running task create_discoverer
0001959:DEBUG:sequencer:Running task discovery
0001966:DEBUG:sequencer:Running task find_aps
0002005:DEBUG:sequencer:Running task create_aps
0002005:DEBUG:sequencer:Running task create_ap.0
0002006:DEBUG:ap:Using accelerated memory access interface
0002006:INFO:ap:AHB-AP#0 IDR = 0x24770011 (AHB-AP var1 rev2)
0002007:DEBUG:ap:AHB-AP#0 default HPROT=3 HNONSEC=0
0002007:DEBUG:ap:AHB-AP#0 implemented HPROT=3 HNONSEC=0
0002009:DEBUG:sequencer:Running task find_components
0002009:DEBUG:sequencer:Running task init_ap.0
0002011:INFO:rom_table:AHB-AP#0 Class 0x1 ROM table #0 @ 0xe00ff000 (designer=020 part=415)
0002014:INFO:rom_table:[0]<e000e000:SCS-M4 class=14 designer=43b part=00c>
0002015:INFO:rom_table:[1]<e0001000:DWT class=14 designer=43b part=002>
0002017:INFO:rom_table:[2]<e0002000:FPB class=14 designer=43b part=003>
0002018:INFO:rom_table:[3]<e0000000:ITM class=14 designer=43b part=001>
0002020:INFO:rom_table:[4]<e0040000:TPIU-M4 class=9 designer=43b part=9a1 devtype=11 archid=0000 devid=ca1:0:0>
0002021:INFO:rom_table:[5]<e0041000:ETM-M4 class=9 designer=43b part=925 devtype=13 archid=0000 devid=0:0:0>
0002021:DEBUG:sequencer:Running task create_cores
0002022:DEBUG:discovery:Creating SCS-M4 component
0002024:INFO:cortex_m:CPU core #0 is Cortex-M4 r0p1
0002028:INFO:cortex_m:FPU present: FPv4-SP-D16-M
0002029:DEBUG:sequencer:Running task set_default_reset_type
0002029:DEBUG:sequencer:Running task create_components
0002029:DEBUG:discovery:Creating DWT component
0002030:INFO:dwt:4 hardware watchpoints
0002034:DEBUG:discovery:Creating FPB component
0002035:INFO:fpb:6 hardware breakpoints, 4 literal comparators
0002036:DEBUG:fpb:fpb has been disabled
0002039:DEBUG:discovery:Creating ITM component
0002041:DEBUG:discovery:Creating TPIU-M4 component
0002042:DEBUG:sequencer:Running task check_for_cores
0002042:DEBUG:sequencer:Running task halt_on_connect
0002042:DEBUG:cortex_m:halting core 0
0002043:DEBUG:sequencer:Running task post_connect
0002043:DEBUG:sequencer:Running task post_connect_hook
0002043:DEBUG:sequencer:Running task create_flash
0002043:DEBUG:sequencer:Running task notify
0002044:DEBUG:cortex_m:Setting vector catch to 0x00000001
0002048:INFO:server:Semihost server started on port 4444 (core 0)
0002048:INFO:gdbserver:GDB server started on port 3333 (core 0)
0002048:DEBUG:cortex_m:halting core 0
0002632:DEBUG:packet_io:Starting GDB server packet I/O thread
0002634:INFO:gdbserver:One client connected!
0002635:DEBUG:gdbserver:GDB received query: [b'Supported', b'multiprocess+;swbreak+;hwbreak+;qRelocInsn+;fork-events+;vfork-events+;exec-events+;vContSupported+;QThreadEvents+;no-resumed+;xmlRegisters=i386#6a']
0002636:DEBUG:gdbserver:GDB general set: b'StartNoAckMode'
0002636:DEBUG:gdbserver:GDB received query: [b'Xfer', b'features', b'read', b'target.xml', b'0,7fb#4a']
0002636:DEBUG:gdbserver:GDB query b'read_feature': offset: 0, size: 2043
0002639:DEBUG:gdbserver:GDB received query: [b'Xfer', b'features', b'read', b'target.xml', b'7fb,7fb#19']
0002639:DEBUG:gdbserver:GDB query b'read_feature': offset: 2043, size: 2043
0002640:DEBUG:gdbserver:GDB general set: b'NonStop:0'
0002641:DEBUG:gdbserver:GDB received query: [b'TStatus#49']
0002641:DEBUG:gdbserver:Current thread 0 is no longer valid, switching context to target
0002642:DEBUG:register:no accesses
0002643:DEBUG:register:out of date run token; invalidating cache
0002649:DEBUG:gdbserver:Tresponse=b'T0507:c8020020;0d:d8250020;0e:877d0208;0f:0e430208;thread:1;'
0002650:DEBUG:gdbserver:GDB received query: [b'Xfer', b'threads', b'read', b'', b'0,7fb#d0']
0002650:DEBUG:gdbserver:GDB query b'threads': offset: 0, size: 2043
0002656:DEBUG:gdbserver:GDB received query: [b'Attached#8f']
0002657:DEBUG:gdbserver:GDB received query: [b'Offsets#4b']
0002657:DEBUG:gdbserver:GDB received query: [b'Xfer', b'memory-map', b'read', b'', b'0,7fb#e9']
0002657:DEBUG:gdbserver:GDB query b'memory_map': offset: 0, size: 2043
0002659:DEBUG:memory:no reads
0002660:DEBUG:memory:out of date run token; invalidating cache
0002664:DEBUG:gdbserver:GDB received query: [b'Xfer', b'threads', b'read', b'', b'0,7fb#d0']
0002664:DEBUG:gdbserver:GDB query b'threads': offset: 0, size: 2043
0002838:DEBUG:context_facade:GDB getting register context
0002938:DEBUG:context_facade:GDB reg: r0 = 0x80000000
0002938:DEBUG:context_facade:GDB reg: r1 = 0x96000
0002939:DEBUG:context_facade:GDB reg: r2 = 0x2
0002939:DEBUG:context_facade:GDB reg: r3 = 0x10
0002939:DEBUG:context_facade:GDB reg: r4 = 0x20002604
0002939:DEBUG:context_facade:GDB reg: r5 = 0x40021000
0002939:DEBUG:context_facade:GDB reg: r6 = 0x20002900
0002939:DEBUG:context_facade:GDB reg: r7 = 0x200002C8
0002939:DEBUG:context_facade:GDB reg: r8 = 0x0
0002939:DEBUG:context_facade:GDB reg: r9 = 0x0
0002940:DEBUG:context_facade:GDB reg: r10 = 0x0
0002940:DEBUG:context_facade:GDB reg: r11 = 0x0
0002940:DEBUG:context_facade:GDB reg: r12 = 0x30
0002940:DEBUG:context_facade:GDB reg: sp = 0x200025D8
0002940:DEBUG:context_facade:GDB reg: lr = 0x8027D87
0002940:DEBUG:context_facade:GDB reg: pc = 0x802430E
0002940:DEBUG:context_facade:GDB reg: msp = 0x10007FC0
0002940:DEBUG:context_facade:GDB reg: psp = 0x200025D8
0002940:DEBUG:context_facade:GDB reg: primask = 0x1
0002940:DEBUG:context_facade:GDB reg: xpsr = 0x81000000
0002940:DEBUG:context_facade:GDB reg: control = 0x2
0002940:DEBUG:context_facade:GDB reg: fpscr = 0x0
0002940:DEBUG:context_facade:GDB reg: d0 = 0x0
0002940:DEBUG:context_facade:GDB reg: d1 = 0x0
0002940:DEBUG:context_facade:GDB reg: d2 = 0x0
0002940:DEBUG:context_facade:GDB reg: d3 = 0x0
0002940:DEBUG:context_facade:GDB reg: d4 = 0x0
0002940:DEBUG:context_facade:GDB reg: d5 = 0x0
0002940:DEBUG:context_facade:GDB reg: d6 = 0x0
0002940:DEBUG:context_facade:GDB reg: d7 = 0x0
0002940:DEBUG:context_facade:GDB reg: d8 = 0x0
0002940:DEBUG:context_facade:GDB reg: d9 = 0x0
0002940:DEBUG:context_facade:GDB reg: d10 = 0x0
0002940:DEBUG:context_facade:GDB reg: d11 = 0x0
0002940:DEBUG:context_facade:GDB reg: d12 = 0x0
0002940:DEBUG:context_facade:GDB reg: d13 = 0x0
0002940:DEBUG:context_facade:GDB reg: d14 = 0x0
0002941:DEBUG:context_facade:GDB reg: d15 = 0x0
0002941:DEBUG:context_facade:GDB reg: basepri = 0x0
0002941:DEBUG:context_facade:GDB reg: faultmask = 0x0
0002942:DEBUG:gdbserver:get_memory failed at 0x200025c0: individual memory accesses must not cross memory region boundaries
0002943:DEBUG:gdbserver:get_memory failed at 0x200025f4: individual memory accesses must not cross memory region boundaries
0002944:DEBUG:gdbserver:get_memory failed at 0x200025c0: individual memory accesses must not cross memory region boundaries
0002945:DEBUG:gdbserver:get_memory failed at 0x200025f4: individual memory accesses must not cross memory region boundaries
0002946:DEBUG:gdbserver:get_memory failed at 0x200025c0: individual memory accesses must not cross memory region boundaries
0002947:DEBUG:gdbserver:get_memory failed at 0x200025f4: individual memory accesses must not cross memory region boundaries
0002949:DEBUG:gdbserver:get_memory failed at 0x200025c0: individual memory accesses must not cross memory region boundaries
0002950:DEBUG:gdbserver:get_memory failed at 0x200025f4: individual memory accesses must not cross memory region boundaries
0002951:DEBUG:gdbserver:get_memory failed at 0x20002604: individual memory accesses must not cross memory region boundaries
0002953:DEBUG:gdbserver:get_memory failed at 0x20002604: individual memory accesses must not cross memory region boundaries
0002954:DEBUG:gdbserver:GDB received query: [b'Symbol', b'', b'#5b']
0002954:INFO:gdbserver:Attempting to load argon
0002955:INFO:gdbserver:Attempting to load freertos
0002955:DEBUG:provider:Value for symbol uxCurrentNumberOfTasks = <none>
0002955:INFO:gdbserver:Attempting to load rtx5
0002956:DEBUG:rtx5:osRtxInfo = 0x200002c8
0002956:INFO:gdbserver:rtx5 loaded successfully
Debugger connected to localhost:3333
0002958:ERROR:gdbserver:Unhandled exception in handle_message: individual memory accesses must not cross memory region boundaries
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/gdbserver/gdbserver.py", line 383, in handle_message
    reply = handler(msg[msgStart:])
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/gdbserver/gdbserver.py", line 610, in v_command
    return self.v_cont(cmd)
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/gdbserver/gdbserver.py", line 625, in v_cont
    if self.is_threading_enabled():
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/gdbserver/gdbserver.py", line 1157, in is_threading_enabled
    return (self.thread_provider is not None) and self.thread_provider.is_enabled \
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/rtos/rtx5.py", line 409, in is_enabled
    return self.get_kernel_state() != 0 and not self._target.in_thread_mode_on_main_stack()
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/rtos/rtx5.py", line 447, in get_kernel_state
    return self._target_context.read8(self._os_rtx_info + RTX5ThreadProvider.KERNEL_STATE_OFFSET)
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/core/memory_interface.py", line 64, in read8
    return self.read_memory(addr, 8, now)
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/debug/cache.py", line 33, in read_memory
    return self._memcache.read_memory(addr, transfer_size, now)
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/cache/memory.py", line 233, in read_memory
    data = self.read_memory_block8(addr, 1)[0]
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/cache/memory.py", line 253, in read_memory_block8
    if not self._check_regions(addr, size):
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/cache/memory.py", line 225, in _check_regions
    raise MemoryAccessError("individual memory accesses must not cross memory region boundaries")
pyocd.cache.memory.MemoryAccessError: individual memory accesses must not cross memory region boundaries
0002960:DEBUG:context_facade:GDB getting register context
0002961:DEBUG:context_facade:GDB reg: r0 = 0x80000000
0002961:DEBUG:context_facade:GDB reg: r1 = 0x96000
0002961:DEBUG:context_facade:GDB reg: r2 = 0x2
0002961:DEBUG:context_facade:GDB reg: r3 = 0x10
0002961:DEBUG:context_facade:GDB reg: r4 = 0x20002604
0002961:DEBUG:context_facade:GDB reg: r5 = 0x40021000
0002961:DEBUG:context_facade:GDB reg: r6 = 0x20002900
0002961:DEBUG:context_facade:GDB reg: r7 = 0x200002C8
0002961:DEBUG:context_facade:GDB reg: r8 = 0x0
0002961:DEBUG:context_facade:GDB reg: r9 = 0x0
0002961:DEBUG:context_facade:GDB reg: r10 = 0x0
0002961:DEBUG:context_facade:GDB reg: r11 = 0x0
0002961:DEBUG:context_facade:GDB reg: r12 = 0x30
0002961:DEBUG:context_facade:GDB reg: sp = 0x200025D8
0002962:DEBUG:context_facade:GDB reg: lr = 0x8027D87
0002962:DEBUG:context_facade:GDB reg: pc = 0x802430E
0002962:DEBUG:context_facade:GDB reg: msp = 0x10007FC0
0002962:DEBUG:context_facade:GDB reg: psp = 0x200025D8
0002962:DEBUG:context_facade:GDB reg: primask = 0x1
0002962:DEBUG:context_facade:GDB reg: xpsr = 0x81000000
0002962:DEBUG:context_facade:GDB reg: control = 0x2
0002962:DEBUG:context_facade:GDB reg: fpscr = 0x0
0002962:DEBUG:context_facade:GDB reg: d0 = 0x0
0002962:DEBUG:context_facade:GDB reg: d1 = 0x0
0002962:DEBUG:context_facade:GDB reg: d2 = 0x0
0002962:DEBUG:context_facade:GDB reg: d3 = 0x0
0002962:DEBUG:context_facade:GDB reg: d4 = 0x0
0002962:DEBUG:context_facade:GDB reg: d5 = 0x0
0002963:DEBUG:context_facade:GDB reg: d6 = 0x0
0002963:DEBUG:context_facade:GDB reg: d7 = 0x0
0002963:DEBUG:context_facade:GDB reg: d8 = 0x0
0002963:DEBUG:context_facade:GDB reg: d9 = 0x0
0002963:DEBUG:context_facade:GDB reg: d10 = 0x0
0002963:DEBUG:context_facade:GDB reg: d11 = 0x0
0002963:DEBUG:context_facade:GDB reg: d12 = 0x0
0002963:DEBUG:context_facade:GDB reg: d13 = 0x0
0002963:DEBUG:context_facade:GDB reg: d14 = 0x0
0002963:DEBUG:context_facade:GDB reg: d15 = 0x0
0002963:DEBUG:context_facade:GDB reg: basepri = 0x0
0002963:DEBUG:context_facade:GDB reg: faultmask = 0x0
0002964:DEBUG:gdbserver:GDB received query: [b'Xfer', b'threads', b'read', b'', b'0,7fb#d0']
0002964:DEBUG:gdbserver:GDB query b'threads': offset: 0, size: 2043
0002966:ERROR:gdbserver:Unhandled exception in handle_message: individual memory accesses must not cross memory region boundaries
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/gdbserver/gdbserver.py", line 383, in handle_message
    reply = handler(msg[msgStart:])
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/gdbserver/gdbserver.py", line 858, in handle_query
    resp = self.handle_query_xml(b'threads', int(data[0], 16), int(data[1].split(b'#')[0], 16))
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/gdbserver/gdbserver.py", line 1047, in handle_query_xml
    xml = self.get_threads_xml()
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/gdbserver/gdbserver.py", line 1137, in get_threads_xml
    if not self.is_threading_enabled():
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/gdbserver/gdbserver.py", line 1157, in is_threading_enabled
    return (self.thread_provider is not None) and self.thread_provider.is_enabled \
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/rtos/rtx5.py", line 409, in is_enabled
    return self.get_kernel_state() != 0 and not self._target.in_thread_mode_on_main_stack()
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/rtos/rtx5.py", line 447, in get_kernel_state
    return self._target_context.read8(self._os_rtx_info + RTX5ThreadProvider.KERNEL_STATE_OFFSET)
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/core/memory_interface.py", line 64, in read8
    return self.read_memory(addr, 8, now)
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/debug/cache.py", line 33, in read_memory
    return self._memcache.read_memory(addr, transfer_size, now)
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/cache/memory.py", line 233, in read_memory
    data = self.read_memory_block8(addr, 1)[0]
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/cache/memory.py", line 253, in read_memory_block8
    if not self._check_regions(addr, size):
  File "/usr/local/lib/python3.8/dist-packages/pyocd-0.27.1.dev63-py3.8.egg/pyocd/cache/memory.py", line 225, in _check_regions
    raise MemoryAccessError("individual memory accesses must not cross memory region boundaries")
pyocd.cache.memory.MemoryAccessError: individual memory accesses must not cross memory region boundaries

Using it without the explicit chip target works without problems. Log with -t cortex_m instead:

pyocd gdbserver --pack /home/max/Downloads/Keil.STM32L4xx_DFP.2.4.0.pack -v -t cortex_m
0001719:DEBUG:pyusb_backend:[Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device (VID=04ca PID=703c). This can probably be remedied with a udev rule. See <https://github.com/mbedmicro/pyOCD/tree/master/udev> for help.
0001719:DEBUG:pyusb_backend:[Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device (VID=046a PID=b090). This can probably be remedied with a udev rule. See <https://github.com/mbedmicro/pyOCD/tree/master/udev> for help.
0001720:DEBUG:pyusb_backend:[Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device (VID=046d PID=c077). This can probably be remedied with a udev rule. See <https://github.com/mbedmicro/pyOCD/tree/master/udev> for help.
0001733:DEBUG:pyusb_v2_backend:[Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device (VID=04ca PID=703c). This can probably be remedied with a udev rule. See <https://github.com/mbedmicro/pyOCD/tree/master/udev> for help.
0001733:DEBUG:pyusb_v2_backend:[Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device (VID=046a PID=b090). This can probably be remedied with a udev rule. See <https://github.com/mbedmicro/pyOCD/tree/master/udev> for help.
0001733:DEBUG:pyusb_v2_backend:[Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device (VID=046d PID=c077). This can probably be remedied with a udev rule. See <https://github.com/mbedmicro/pyOCD/tree/master/udev> for help.
0002154:DEBUG:session:Project directory: /home/max
0002210:INFO:board:Target type is cortex_m
0002213:DEBUG:stlink:STLink probe 0018002B3038511834333935 firmware version: V3J4M2
0002213:DEBUG:sequencer:Running task load_svd
0002213:DEBUG:sequencer:Running task pre_connect
0002213:DEBUG:sequencer:Running task dp_init
0002213:DEBUG:sequencer:Running task get_probe_capabilities
0002213:DEBUG:sequencer:Running task connect
0002215:DEBUG:dap:Default wire protocol selected; using SWD
0002215:INFO:dap:DP IDR = 0x2ba01477 (v1 rev2)
0002215:DEBUG:sequencer:Running task clear_sticky_err
0002215:DEBUG:sequencer:Running task power_up_debug
0002216:DEBUG:sequencer:Running task check_version
0002216:DEBUG:sequencer:Running task create_discoverer
0002216:DEBUG:sequencer:Running task discovery
0002216:DEBUG:sequencer:Running task find_aps
0002217:DEBUG:sequencer:Running task create_aps
0002217:DEBUG:sequencer:Running task create_ap.0
0002218:DEBUG:ap:Using accelerated memory access interface
0002218:INFO:ap:AHB-AP#0 IDR = 0x24770011 (AHB-AP var1 rev2)
0002221:DEBUG:ap:AHB-AP#0 default HPROT=3 HNONSEC=0
0002222:DEBUG:ap:AHB-AP#0 implemented HPROT=3 HNONSEC=0
0002223:DEBUG:sequencer:Running task find_components
0002223:DEBUG:sequencer:Running task init_ap.0
0002226:INFO:rom_table:AHB-AP#0 Class 0x1 ROM table #0 @ 0xe00ff000 (designer=020 part=415)
0002229:INFO:rom_table:[0]<e000e000:SCS-M4 class=14 designer=43b part=00c>
0002230:INFO:rom_table:[1]<e0001000:DWT class=14 designer=43b part=002>
0002232:INFO:rom_table:[2]<e0002000:FPB class=14 designer=43b part=003>
0002233:INFO:rom_table:[3]<e0000000:ITM class=14 designer=43b part=001>
0002235:INFO:rom_table:[4]<e0040000:TPIU-M4 class=9 designer=43b part=9a1 devtype=11 archid=0000 devid=ca1:0:0>
0002236:INFO:rom_table:[5]<e0041000:ETM-M4 class=9 designer=43b part=925 devtype=13 archid=0000 devid=0:0:0>
0002236:DEBUG:sequencer:Running task create_cores
0002237:DEBUG:discovery:Creating SCS-M4 component
0002237:DEBUG:cortex_m:Using default memory map for core #0 (no memory map supplied)
0002238:INFO:cortex_m:CPU core #0 is Cortex-M4 r0p1
0002241:INFO:cortex_m:FPU present: FPv4-SP-D16-M
0002242:DEBUG:sequencer:Running task create_components
0002242:DEBUG:discovery:Creating DWT component
0002243:INFO:dwt:4 hardware watchpoints
0002245:DEBUG:discovery:Creating FPB component
0002245:INFO:fpb:6 hardware breakpoints, 4 literal comparators
0002246:DEBUG:fpb:fpb has been disabled
0002248:DEBUG:discovery:Creating ITM component
0002250:DEBUG:discovery:Creating TPIU-M4 component
0002251:DEBUG:sequencer:Running task check_for_cores
0002251:DEBUG:sequencer:Running task halt_on_connect
0002251:DEBUG:cortex_m:halting core 0
0002251:DEBUG:sequencer:Running task post_connect
0002251:DEBUG:sequencer:Running task post_connect_hook
0002251:DEBUG:sequencer:Running task create_flash
0002251:DEBUG:sequencer:Running task notify
0002252:DEBUG:cortex_m:Setting vector catch to 0x00000001
0002256:INFO:server:Semihost server started on port 4444 (core 0)
0002256:INFO:gdbserver:GDB server started on port 3333 (core 0)
0002256:DEBUG:cortex_m:halting core 0
0002802:DEBUG:packet_io:Starting GDB server packet I/O thread
0002802:INFO:gdbserver:One client connected!
0002802:DEBUG:gdbserver:GDB received query: [b'Supported', b'multiprocess+;swbreak+;hwbreak+;qRelocInsn+;fork-events+;vfork-events+;exec-events+;vContSupported+;QThreadEvents+;no-resumed+;xmlRegisters=i386#6a']
0002803:DEBUG:gdbserver:GDB general set: b'StartNoAckMode'
0002804:DEBUG:gdbserver:GDB received query: [b'Xfer', b'features', b'read', b'target.xml', b'0,7fb#4a']
0002804:DEBUG:gdbserver:GDB query b'read_feature': offset: 0, size: 2043
0002806:DEBUG:gdbserver:GDB received query: [b'Xfer', b'features', b'read', b'target.xml', b'7fb,7fb#19']
0002806:DEBUG:gdbserver:GDB query b'read_feature': offset: 2043, size: 2043
0002808:DEBUG:gdbserver:GDB general set: b'NonStop:0'
0002808:DEBUG:gdbserver:GDB received query: [b'TStatus#49']
0002808:DEBUG:gdbserver:Current thread 0 is no longer valid, switching context to target
0002810:DEBUG:register:no accesses
0002810:DEBUG:register:out of date run token; invalidating cache
0002817:DEBUG:gdbserver:Tresponse=b'T0507:c8020020;0d:f8250020;0e:717d0208;0f:f6490208;thread:1;'
0002817:DEBUG:gdbserver:GDB received query: [b'Xfer', b'threads', b'read', b'', b'0,7fb#d0']
0002817:DEBUG:gdbserver:GDB query b'threads': offset: 0, size: 2043
0002823:DEBUG:gdbserver:GDB received query: [b'Attached#8f']
0002823:DEBUG:gdbserver:GDB received query: [b'Offsets#4b']
0002824:DEBUG:gdbserver:GDB received query: [b'Xfer', b'memory-map', b'read', b'', b'0,7fb#e9']
0002824:DEBUG:gdbserver:GDB query b'memory_map': offset: 0, size: 2043
0002826:DEBUG:memory:no reads
0002826:DEBUG:memory:out of date run token; invalidating cache
0002830:DEBUG:gdbserver:GDB received query: [b'Xfer', b'threads', b'read', b'', b'0,7fb#d0']
0002831:DEBUG:gdbserver:GDB query b'threads': offset: 0, size: 2043
0003027:DEBUG:context_facade:GDB getting register context
0003117:DEBUG:context_facade:GDB reg: r0 = 0x20002604
0003117:DEBUG:context_facade:GDB reg: r1 = 0x96000
0003117:DEBUG:context_facade:GDB reg: r2 = 0x2
0003117:DEBUG:context_facade:GDB reg: r3 = 0x1001412
0003117:DEBUG:context_facade:GDB reg: r4 = 0x40021000
0003117:DEBUG:context_facade:GDB reg: r5 = 0x0
0003117:DEBUG:context_facade:GDB reg: r6 = 0x20002900
0003118:DEBUG:context_facade:GDB reg: r7 = 0x200002C8
0003118:DEBUG:context_facade:GDB reg: r8 = 0x0
0003118:DEBUG:context_facade:GDB reg: r9 = 0x0
0003118:DEBUG:context_facade:GDB reg: r10 = 0x0
0003118:DEBUG:context_facade:GDB reg: r11 = 0x0
0003118:DEBUG:context_facade:GDB reg: r12 = 0x30
0003118:DEBUG:context_facade:GDB reg: sp = 0x200025F8
0003118:DEBUG:context_facade:GDB reg: lr = 0x8027D71
0003118:DEBUG:context_facade:GDB reg: pc = 0x80249F6
0003118:DEBUG:context_facade:GDB reg: msp = 0x10007FC0
0003119:DEBUG:context_facade:GDB reg: psp = 0x200025F8
0003119:DEBUG:context_facade:GDB reg: primask = 0x1
0003119:DEBUG:context_facade:GDB reg: xpsr = 0x1000000
0003119:DEBUG:context_facade:GDB reg: control = 0x2
0003119:DEBUG:context_facade:GDB reg: fpscr = 0x0
0003119:DEBUG:context_facade:GDB reg: d0 = 0x0
0003119:DEBUG:context_facade:GDB reg: d1 = 0x0
0003119:DEBUG:context_facade:GDB reg: d2 = 0x0
0003119:DEBUG:context_facade:GDB reg: d3 = 0x0
0003119:DEBUG:context_facade:GDB reg: d4 = 0x0
0003119:DEBUG:context_facade:GDB reg: d5 = 0x0
0003119:DEBUG:context_facade:GDB reg: d6 = 0x0
0003120:DEBUG:context_facade:GDB reg: d7 = 0x0
0003120:DEBUG:context_facade:GDB reg: d8 = 0x0
0003120:DEBUG:context_facade:GDB reg: d9 = 0x0
0003120:DEBUG:context_facade:GDB reg: d10 = 0x0
0003120:DEBUG:context_facade:GDB reg: d11 = 0x0
0003120:DEBUG:context_facade:GDB reg: d12 = 0x0
0003120:DEBUG:context_facade:GDB reg: d13 = 0x0
0003120:DEBUG:context_facade:GDB reg: d14 = 0x0
0003120:DEBUG:context_facade:GDB reg: d15 = 0x0
0003120:DEBUG:context_facade:GDB reg: basepri = 0x0
0003120:DEBUG:context_facade:GDB reg: faultmask = 0x0
0003712:DEBUG:gdbserver:GDB received query: [b'Symbol', b'', b'#5b']
0003712:INFO:gdbserver:Attempting to load argon
0003712:INFO:gdbserver:Attempting to load freertos
0003712:DEBUG:provider:Value for symbol uxCurrentNumberOfTasks = <none>
0003713:INFO:gdbserver:Attempting to load rtx5
0003713:DEBUG:rtx5:osRtxInfo = 0x200002c8
0003713:INFO:gdbserver:rtx5 loaded successfully
Debugger connected to localhost:3333
0003722:DEBUG:rtx5:key error getting current thread id=None; self._threads = {}
0003722:DEBUG:gdbserver:thread_actions={1: None}; default_action=b'c'
0003723:DEBUG:cortex_m:resuming core 0
0003723:DEBUG:manager:added=[] removed=[]
0003723:DEBUG:manager:bps after flush={}
0003724:DEBUG:gdbserver:target resumed
0005478:DEBUG:gdbserver:receive CTRL-C
0005479:DEBUG:cortex_m:halting core 0
0005481:DEBUG:memory:63 reads, 448 bytes [65% hits, 295 bytes]; 0 bytes written
0005481:DEBUG:memory:out of date run token; invalidating cache
0005483:DEBUG:register:57 reads [26% hits, 15 regs]
0005484:DEBUG:register:out of date run token; invalidating cache
0005502:DEBUG:rtx5:RTXTargetThread 0x20002044
0005514:DEBUG:rtx5:RTXTargetThread 0x20002000
0005523:DEBUG:rtx5:RTXTargetThread 0x200011c8
0005533:DEBUG:rtx5:RTXTargetThread 0x20001eb8
0005563:DEBUG:gdbserver:Tresponse=b'T0207:00000000;0d:a0250020;0e:e35e0208;0f:685e0208;thread:20002044;'
0005748:DEBUG:gdbserver:GDB received query: [b'Xfer', b'threads', b'read', b'', b'0,7fb#d0']
0005748:DEBUG:gdbserver:GDB query b'threads': offset: 0, size: 2043
0005777:DEBUG:context_facade:GDB getting register context
0005851:DEBUG:context_facade:GDB reg: r0 = 0x40000C00
0005851:DEBUG:context_facade:GDB reg: r1 = 0x200082C8
0005851:DEBUG:context_facade:GDB reg: r2 = 0x40000C00
0005852:DEBUG:context_facade:GDB reg: r3 = 0x0
0005852:DEBUG:context_facade:GDB reg: r4 = 0x200082C4
0005852:DEBUG:context_facade:GDB reg: r5 = 0x0
0005852:DEBUG:context_facade:GDB reg: r6 = 0x0
0005852:DEBUG:context_facade:GDB reg: r7 = 0x0
0005852:DEBUG:context_facade:GDB reg: r8 = 0x1388
0005852:DEBUG:context_facade:GDB reg: r9 = 0x0
0005852:DEBUG:context_facade:GDB reg: r10 = 0x0
0005852:DEBUG:context_facade:GDB reg: r11 = 0x0
0005852:DEBUG:context_facade:GDB reg: r12 = 0x0
0005852:DEBUG:context_facade:GDB reg: sp = 0x200025A0
0005852:DEBUG:context_facade:GDB reg: lr = 0x8025EE3
0005852:DEBUG:context_facade:GDB reg: pc = 0x8025E68
0005852:DEBUG:context_facade:GDB reg: msp = 0x10007FC0
0005852:DEBUG:context_facade:GDB reg: psp = 0x200025A0
0005853:DEBUG:context_facade:GDB reg: primask = 0x1
0005853:DEBUG:context_facade:GDB reg: xpsr = 0x61000000
0005853:DEBUG:context_facade:GDB reg: control = 0x2
0005853:DEBUG:context_facade:GDB reg: fpscr = 0x0
0005853:DEBUG:context_facade:GDB reg: d0 = 0x0
0005853:DEBUG:context_facade:GDB reg: d1 = 0x0
0005853:DEBUG:context_facade:GDB reg: d2 = 0x0
0005853:DEBUG:context_facade:GDB reg: d3 = 0x0
0005853:DEBUG:context_facade:GDB reg: d4 = 0x0
0005853:DEBUG:context_facade:GDB reg: d5 = 0x0
0005853:DEBUG:context_facade:GDB reg: d6 = 0x0
0005853:DEBUG:context_facade:GDB reg: d7 = 0x0
0005853:DEBUG:context_facade:GDB reg: d8 = 0x0
0005853:DEBUG:context_facade:GDB reg: d9 = 0x0
0005853:DEBUG:context_facade:GDB reg: d10 = 0x0
0005853:DEBUG:context_facade:GDB reg: d11 = 0x0
0005854:DEBUG:context_facade:GDB reg: d12 = 0x0
0005854:DEBUG:context_facade:GDB reg: d13 = 0x0
0005854:DEBUG:context_facade:GDB reg: d14 = 0x0
0005854:DEBUG:context_facade:GDB reg: d15 = 0x0
0005854:DEBUG:context_facade:GDB reg: basepri = 0x0
0005854:DEBUG:context_facade:GDB reg: faultmask = 0x0
0005870:DEBUG:memory:range [40000c00:40000c68] is not cacheable
0005875:DEBUG:memory:range [40000c00:40000c68] is not cacheable
0005884:DEBUG:memory:range [40000c00:40000c68] is not cacheable
Signal: SIGINT (Interrupt)
0008932:DEBUG:memory:range [40000c00:40000c68] is not cacheable
0008935:DEBUG:memory:range [40000c00:40000c68] is not cacheable

So this isn't super criticial but it's still kinda bothersome and maybe interesting to you that debugging with an explicit chip target from that pack fails, while the general cortex_m mode works.

flit commented 4 years ago

Hi @maxgerhardt, thanks for reporting the issue. I think the problem is caused by the memory region definitions in the CMSIS pack. I've seen some issues in other STM32 packs, so I'll double check the L476 pack when I get a chance and report back. (I also need to make pyOCD more resilient to these kinds of issues.)