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

using packs is broken in master #832

Closed kiram9 closed 4 years ago

kiram9 commented 4 years ago

While looking at #743 I tried using master, however when I try to launch with a pack specified in the command line an exception is thrown. This does not happen if I checkout the release/0.24 branch.

pyOCD$ python pyocd.py gdb --target stm32g071rbtx --pack Keil.STM32G0xx_DFP.1.2.0.pack 
0000368:INFO:board:Target type is stm32g071rbtx
0000443:CRITICAL:__main__:uncaught exception: join() argument must be str or bytes, not 'PackFlashAlgo'
Traceback (most recent call last):
  File "/home/kieran/software/pyOCD/pyocd/__main__.py", line 360, in run
    self._COMMANDS[self._args.cmd](self)
  File "/home/kieran/software/pyOCD/pyocd/__main__.py", line 622, in do_gdbserver
    with session:
  File "/home/kieran/software/pyOCD/pyocd/core/session.py", line 299, in __enter__
    self.open()
  File "/home/kieran/software/pyOCD/pyocd/core/session.py", line 415, in open
    self._board.init()
  File "/home/kieran/software/pyOCD/pyocd/board/board.py", line 83, in init
    self.target.init()
  File "/home/kieran/software/pyOCD/pyocd/core/coresight_target.py", line 163, in init
    seq.invoke()
  File "/home/kieran/software/pyOCD/pyocd/utility/sequencer.py", line 208, in invoke
    resultSequence = call()
  File "/home/kieran/software/pyOCD/pyocd/core/coresight_target.py", line 230, in create_flash
    flmPath = self.session.find_user_file(None, [region.flm])
  File "/home/kieran/software/pyOCD/pyocd/core/session.py", line 210, in find_user_file
    thisPath = os.path.join(self.project_dir, filename)
  File "/usr/lib/python3.6/posixpath.py", line 94, in join
    genericpath._check_arg_types('join', a, *p)
  File "/usr/lib/python3.6/genericpath.py", line 149, in _check_arg_types
    (funcname, s.__class__.__name__)) from None
TypeError: join() argument must be str or bytes, not 'PackFlashAlgo'
flit commented 4 years ago

Thanks for the report, will look at this one quickly.