TransferTimeoutError for LPC546xx
Open
Nobody has claimed this yet.
bug
needs feedback
target
- Dominant language
- Python
- Stars
- 1.5k
- Forks
- 560
- Avg merge
- 1h 41m
- Merged PRs (30d)
- 3
Description
While debugging LPC546XX, using pyocd 0.12.0, I get the following error.
0000246:WARNING:svd:Failed to load SVD file LPC54608.svd
0000247:INFO:cmsis_dap_core:DAP SWD MODE initialized
0000263:INFO:dap:DP IDR = 0x2ba01477
0000276:INFO:dap:AP#0 IDR = 0x24770011
0000287:INFO:rom_table:AP#0 ROM table #0 @ 0xe00ff000 (designer=43b part=4c4)
0000296:INFO:rom_table:[0]<e000e000:SCS-M4 class=14 designer=43b part=00c>
0000302:INFO:rom_table:[1]<e0001000:DWT class=14 designer=43b part=002>
0000308:INFO:rom_table:[2]<e0002000:FPB class=14 designer=43b part=003>
0000315:INFO:rom_table:[3]<e0000000:ITM class=14 designer=43b part=001>
0000320:INFO:rom_table:[4]<e0040000:TPIU-M4 class=9 designer=43b part=9a1 devtype=11 archid=0000 devid=0:0:ca1>
0000325:INFO:rom_table:[5]<e0041000:ETM-M4 class=9 designer=43b part=925 devtype=13 archid=0000 devid=0:0:0>
0000332:INFO:cortex_m:CPU core is Cortex-M4
0000338:INFO:cortex_m:FPU present
0000345:INFO:dwt:4 hardware watchpoints
0000348:INFO:fpb:6 hardware breakpoints, 4 literal comparators
0000358:INFO:semihost:Telnet: server started on port 4444
0000358:INFO:gdbserver:GDB server started at port:3333
Started by GNU MCU Eclipse
0000803:INFO:gdbserver:One client connected!
0000957:INFO:gdbserver:Semihosting enabled
0001157:INFO:gdbserver:Attempting to load Argon
0001158:INFO:gdbserver:Attempting to load RTX5
0001158:INFO:gdbserver:RTX5 loaded successfully
[---|---|---|---|---|---|---|---|---|----]
[========================================]
0027144:INFO:flash_builder:Programmed 444348 bytes (14 pages) at 17.02 kB/s
0035197:ERROR:gdbserver:Unhandled exception in handleMsg:
Traceback (most recent call last):
File "c:\python27\lib\site-packages\pyOCD\gdbserver\gdbserver.py", line 530, in handleMsg
reply = handler()
File "c:\python27\lib\site-packages\pyOCD\gdbserver\gdbserver.py", line 964, in getRegisters
return self.createRSPPacket(self.target_facade.getRegisterContext())
File "c:\python27\lib\site-packages\pyOCD\gdbserver\context_facade.py", line 55, in getRegisterContext
vals = self._context.readCoreRegistersRaw(reg_num_list)
File "c:\python27\lib\site-packages\pyOCD\rtos\rtx5.py", line 138, in readCoreRegistersRaw
inException = self._get_ipsr() > 0
File "c:\python27\lib\site-packages\pyOCD\rtos\rtx5.py", line 195, in _get_ipsr
return self._parent.readCoreRegister('xpsr') & 0xff
File "c:\python27\lib\site-packages\pyOCD\debug\context.py", line 87, in readCoreRegister
regValue = self.readCoreRegisterRaw(regIndex)
File "c:\python27\lib\site-packages\pyOCD\debug\context.py", line 99, in readCoreRegisterRaw
vals = self.readCoreRegistersRaw([reg])
File "c:\python27\lib\site-packages\pyOCD\debug\cache.py", line 484, in readCoreRegistersRaw
return self._regcache.readCoreRegistersRaw(reg_list)
File "c:\python27\lib\site-packages\pyOCD\debug\cache.py", line 111, in readCoreRegistersRaw
self._check_cache()
File "c:\python27\lib\site-packages\pyOCD\debug\cache.py", line 88, in _check_cache
if self._context.core.isRunning():
File "c:\python27\lib\site-packages\pyOCD\coresight\cortex_m.py", line 630, in isRunning
return self.getState() == Target.TARGET_RUNNING
File "c:\python27\lib\site-packages\pyOCD\coresight\cortex_m.py", line 607, in getState
dhcsr = self.readMemory(CortexM.DHCSR)
File "c:\python27\lib\site-packages\pyOCD\coresight\cortex_m.py", line 441, in readMemory
result = self.ap.readMemory(addr, transfer_size, now)
File "c:\python27\lib\site-packages\pyOCD\coresight\ap.py", line 258, in readMemory
result = readMemCb()
File "c:\python27\lib\site-packages\pyOCD\coresight\ap.py", line 240, in readMemCb
res = result_cb()
File "c:\python27\lib\site-packages\pyOCD\coresight\dap.py", line 316, in readAPCb
result = result_cb()
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 663, in read_reg_cb
res = transfer.get_result()
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 119, in get_result
self.daplink.flush()
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 594, in flush
self._read_packet()
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 749, in _read_packet
decoded_data = cmd.decode_data(raw_data)
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 419, in decode_data
data = self._decode_transfer_data(data)
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 317, in _decode_transfer_data
raise DAPAccessIntf.TransferTimeoutError()
TransferTimeoutError
0051846:ERROR:gdbserver:Unhandled exception in handleMsg:
Traceback (most recent call last):
File "c:\python27\lib\site-packages\pyOCD\gdbserver\gdbserver.py", line 532, in handleMsg
reply = handler(msg[msgStart:])
File "c:\python27\lib\site-packages\pyOCD\gdbserver\gdbserver.py", line 753, in vCommand
return self.vCont(cmd)
File "c:\python27\lib\site-packages\pyOCD\gdbserver\gdbserver.py", line 804, in vCont
return self.resume(None)
File "c:\python27\lib\site-packages\pyOCD\gdbserver\gdbserver.py", line 676, in resume
self.target.resume()
File "c:\python27\lib\site-packages\pyOCD\coresight\cortex_m.py", line 639, in resume
if self.getState() != Target.TARGET_HALTED:
File "c:\python27\lib\site-packages\pyOCD\coresight\cortex_m.py", line 607, in getState
dhcsr = self.readMemory(CortexM.DHCSR)
File "c:\python27\lib\site-packages\pyOCD\coresight\cortex_m.py", line 441, in readMemory
result = self.ap.readMemory(addr, transfer_size, now)
File "c:\python27\lib\site-packages\pyOCD\coresight\ap.py", line 258, in readMemory
result = readMemCb()
File "c:\python27\lib\site-packages\pyOCD\coresight\ap.py", line 240, in readMemCb
res = result_cb()
File "c:\python27\lib\site-packages\pyOCD\coresight\dap.py", line 316, in readAPCb
result = result_cb()
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 663, in read_reg_cb
res = transfer.get_result()
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 119, in get_result
self.daplink.flush()
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 594, in flush
self._read_packet()
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 749, in _read_packet
decoded_data = cmd.decode_data(raw_data)
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 419, in decode_data
data = self._decode_transfer_data(data)
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 317, in _decode_transfer_data
raise DAPAccessIntf.TransferTimeoutError()
TransferTimeoutError
0051855:ERROR:gdbserver:Unhandled exception in handleMsg:
Traceback (most recent call last):
File "c:\python27\lib\site-packages\pyOCD\gdbserver\gdbserver.py", line 530, in handleMsg
reply = handler()
File "c:\python27\lib\site-packages\pyOCD\gdbserver\gdbserver.py", line 964, in getRegisters
return self.createRSPPacket(self.target_facade.getRegisterContext())
File "c:\python27\lib\site-packages\pyOCD\gdbserver\context_facade.py", line 55, in getRegisterContext
vals = self._context.readCoreRegistersRaw(reg_num_list)
File "c:\python27\lib\site-packages\pyOCD\rtos\rtx5.py", line 138, in readCoreRegistersRaw
inException = self._get_ipsr() > 0
File "c:\python27\lib\site-packages\pyOCD\rtos\rtx5.py", line 195, in _get_ipsr
return self._parent.readCoreRegister('xpsr') & 0xff
File "c:\python27\lib\site-packages\pyOCD\debug\context.py", line 87, in readCoreRegister
regValue = self.readCoreRegisterRaw(regIndex)
File "c:\python27\lib\site-packages\pyOCD\debug\context.py", line 99, in readCoreRegisterRaw
vals = self.readCoreRegistersRaw([reg])
File "c:\python27\lib\site-packages\pyOCD\debug\cache.py", line 484, in readCoreRegistersRaw
return self._regcache.readCoreRegistersRaw(reg_list)
File "c:\python27\lib\site-packages\pyOCD\debug\cache.py", line 111, in readCoreRegistersRaw
self._check_cache()
File "c:\python27\lib\site-packages\pyOCD\debug\cache.py", line 88, in _check_cache
if self._context.core.isRunning():
File "c:\python27\lib\site-packages\pyOCD\coresight\cortex_m.py", line 630, in isRunning
return self.getState() == Target.TARGET_RUNNING
File "c:\python27\lib\site-packages\pyOCD\coresight\cortex_m.py", line 607, in getState
dhcsr = self.readMemory(CortexM.DHCSR)
File "c:\python27\lib\site-packages\pyOCD\coresight\cortex_m.py", line 441, in readMemory
result = self.ap.readMemory(addr, transfer_size, now)
File "c:\python27\lib\site-packages\pyOCD\coresight\ap.py", line 258, in readMemory
result = readMemCb()
File "c:\python27\lib\site-packages\pyOCD\coresight\ap.py", line 240, in readMemCb
res = result_cb()
File "c:\python27\lib\site-packages\pyOCD\coresight\dap.py", line 316, in readAPCb
result = result_cb()
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 663, in read_reg_cb
res = transfer.get_result()
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 119, in get_result
self.daplink.flush()
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 594, in flush
self._read_packet()
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 749, in _read_packet
decoded_data = cmd.decode_data(raw_data)
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 419, in decode_data
data = self._decode_transfer_data(data)
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 317, in _decode_transfer_data
raise DAPAccessIntf.TransferTimeoutError()
TransferTimeoutError
0051931:ERROR:gdbserver:Unhandled exception in handleMsg:
Traceback (most recent call last):
File "c:\python27\lib\site-packages\pyOCD\gdbserver\gdbserver.py", line 530, in handleMsg
reply = handler()
File "c:\python27\lib\site-packages\pyOCD\gdbserver\gdbserver.py", line 964, in getRegisters
return self.createRSPPacket(self.target_facade.getRegisterContext())
File "c:\python27\lib\site-packages\pyOCD\gdbserver\context_facade.py", line 55, in getRegisterContext
vals = self._context.readCoreRegistersRaw(reg_num_list)
File "c:\python27\lib\site-packages\pyOCD\rtos\rtx5.py", line 138, in readCoreRegistersRaw
inException = self._get_ipsr() > 0
File "c:\python27\lib\site-packages\pyOCD\rtos\rtx5.py", line 195, in _get_ipsr
return self._parent.readCoreRegister('xpsr') & 0xff
File "c:\python27\lib\site-packages\pyOCD\debug\context.py", line 87, in readCoreRegister
regValue = self.readCoreRegisterRaw(regIndex)
File "c:\python27\lib\site-packages\pyOCD\debug\context.py", line 99, in readCoreRegisterRaw
vals = self.readCoreRegistersRaw([reg])
File "c:\python27\lib\site-packages\pyOCD\debug\cache.py", line 484, in readCoreRegistersRaw
return self._regcache.readCoreRegistersRaw(reg_list)
File "c:\python27\lib\site-packages\pyOCD\debug\cache.py", line 111, in readCoreRegistersRaw
self._check_cache()
File "c:\python27\lib\site-packages\pyOCD\debug\cache.py", line 88, in _check_cache
if self._context.core.isRunning():
File "c:\python27\lib\site-packages\pyOCD\coresight\cortex_m.py", line 630, in isRunning
return self.getState() == Target.TARGET_RUNNING
File "c:\python27\lib\site-packages\pyOCD\coresight\cortex_m.py", line 607, in getState
dhcsr = self.readMemory(CortexM.DHCSR)
File "c:\python27\lib\site-packages\pyOCD\coresight\cortex_m.py", line 441, in readMemory
result = self.ap.readMemory(addr, transfer_size, now)
File "c:\python27\lib\site-packages\pyOCD\coresight\ap.py", line 258, in readMemory
result = readMemCb()
File "c:\python27\lib\site-packages\pyOCD\coresight\ap.py", line 240, in readMemCb
res = result_cb()
File "c:\python27\lib\site-packages\pyOCD\coresight\dap.py", line 316, in readAPCb
result = result_cb()
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 663, in read_reg_cb
res = transfer.get_result()
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 119, in get_result
self.daplink.flush()
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 594, in flush
self._read_packet()
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 749, in _read_packet
decoded_data = cmd.decode_data(raw_data)
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 419, in decode_data
data = self._decode_transfer_data(data)
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 317, in _decode_transfer_data
raise DAPAccessIntf.TransferTimeoutError()
TransferTimeoutError
0051943:ERROR:gdbserver:Unhandled exception in handleMsg:
Traceback (most recent call last):
File "c:\python27\lib\site-packages\pyOCD\gdbserver\gdbserver.py", line 530, in handleMsg
reply = handler()
File "c:\python27\lib\site-packages\pyOCD\gdbserver\gdbserver.py", line 964, in getRegisters
return self.createRSPPacket(self.target_facade.getRegisterContext())
File "c:\python27\lib\site-packages\pyOCD\gdbserver\context_facade.py", line 55, in getRegisterContext
vals = self._context.readCoreRegistersRaw(reg_num_list)
File "c:\python27\lib\site-packages\pyOCD\rtos\rtx5.py", line 138, in readCoreRegistersRaw
inException = self._get_ipsr() > 0
File "c:\python27\lib\site-packages\pyOCD\rtos\rtx5.py", line 195, in _get_ipsr
return self._parent.readCoreRegister('xpsr') & 0xff
File "c:\python27\lib\site-packages\pyOCD\debug\context.py", line 87, in readCoreRegister
regValue = self.readCoreRegisterRaw(regIndex)
File "c:\python27\lib\site-packages\pyOCD\debug\context.py", line 99, in readCoreRegisterRaw
vals = self.readCoreRegistersRaw([reg])
File "c:\python27\lib\site-packages\pyOCD\debug\cache.py", line 484, in readCoreRegistersRaw
return self._regcache.readCoreRegistersRaw(reg_list)
File "c:\python27\lib\site-packages\pyOCD\debug\cache.py", line 111, in readCoreRegistersRaw
self._check_cache()
File "c:\python27\lib\site-packages\pyOCD\debug\cache.py", line 88, in _check_cache
if self._context.core.isRunning():
File "c:\python27\lib\site-packages\pyOCD\coresight\cortex_m.py", line 630, in isRunning
return self.getState() == Target.TARGET_RUNNING
File "c:\python27\lib\site-packages\pyOCD\coresight\cortex_m.py", line 607, in getState
dhcsr = self.readMemory(CortexM.DHCSR)
File "c:\python27\lib\site-packages\pyOCD\coresight\cortex_m.py", line 441, in readMemory
result = self.ap.readMemory(addr, transfer_size, now)
File "c:\python27\lib\site-packages\pyOCD\coresight\ap.py", line 258, in readMemory
result = readMemCb()
File "c:\python27\lib\site-packages\pyOCD\coresight\ap.py", line 240, in readMemCb
res = result_cb()
File "c:\python27\lib\site-packages\pyOCD\coresight\dap.py", line 316, in readAPCb
result = result_cb()
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 663, in read_reg_cb
res = transfer.get_result()
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 119, in get_result
self.daplink.flush()
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 594, in flush
self._read_packet()
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 749, in _read_packet
decoded_data = cmd.decode_data(raw_data)
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 419, in decode_data
data = self._decode_transfer_data(data)
File "c:\python27\lib\site-packages\pyOCD\pyDAPAccess\dap_access_cmsis_dap.py", line 317, in _decode_transfer_data
raise DAPAccessIntf.TransferTimeoutError()
TransferTimeoutError
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the LPC546xx session with pyOCD 0.12.0 and follow the traceback through gdbserver.py, rtx5.py, cortex_m.py, and pyDAPAccess/dap_access_cmsis_dap.py, especially _decode_transfer_data(). Trace the CMSIS-DAP transfer response that raises TransferTimeoutError; done means the reported debugging flow no longer produces the unhandled exception.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- devtools, embedded-iot
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100