pyocd / pyocd-pemicro Goto Github PK
View Code? Open in Web Editor NEWPEMicro probe plugin for pyOCD
License: Other
PEMicro probe plugin for pyOCD
License: Other
I think the old version was pyocd_pemicro
and the new version is pyocd-pemicro
. This was probably an accident.
The following exceptions occur if the pyocd-pemicro plugin is installed, but not the PEMicro drivers, and you attempt to run pyocd list
.
On macOS 10.15:
0000705:CRITICAL:__main__:uncaught exception: dlopen(unitacmp-64.dylib, 6): image not found
Traceback (most recent call last):
File "/Volumes/projects/pyOCD-flit/pyocd/__main__.py", line 398, in run
self._COMMANDS[self._args.cmd](self)
File "/Volumes/projects/pyOCD-flit/pyocd/__main__.py", line 458, in do_list
ConnectHelper.list_connected_probes()
File "/Volumes/projects/pyOCD-flit/pyocd/core/helpers.py", line 109, in list_connected_probes
allProbes = ConnectHelper.get_all_connected_probes(blocking=False)
File "/Volumes/projects/pyOCD-flit/pyocd/core/helpers.py", line 82, in get_all_connected_probes
allProbes = DebugProbeAggregator.get_all_connected_probes(unique_id=unique_id)
File "/Volumes/projects/pyOCD-flit/pyocd/probe/aggregator.py", line 64, in get_all_connected_probes
probes += cls.get_all_connected_probes(unique_id, is_explicit)
File "/Volumes/projects/pyOCD-flit/venv/mac39/lib/python3.9/site-packages/pyocd_pemicro/pemicro_probe.py", line 78, in get_all_connected_probes
port_list = pemicro.list_ports()
File "/Volumes/projects/pyOCD-flit/venv/mac39/lib/python3.9/site-packages/pypemicro/pemicro.py", line 423, in list_ports
lib = PyPemicro.get_pemicro_lib()
File "/Volumes/projects/pyOCD-flit/venv/mac39/lib/python3.9/site-packages/pypemicro/pemicro.py", line 405, in get_pemicro_lib
libs_list = PyPemicro.get_pemicro_lib_list(dllpath=dllpath)
File "/Volumes/projects/pyOCD-flit/venv/mac39/lib/python3.9/site-packages/pypemicro/pemicro.py", line 162, in get_pemicro_lib_list
library_dlls.append(PyPemicro._load_pemicro_lib_info("", lib_name))
File "/Volumes/projects/pyOCD-flit/venv/mac39/lib/python3.9/site-packages/pypemicro/pemicro.py", line 124, in _load_pemicro_lib_info
dll = cdll.LoadLibrary(os.path.join(dll_path, lib_name))
File "/usr/local/Cellar/[email protected]/3.9.0_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/ctypes/__init__.py", line 452, in LoadLibrary
return self._dlltype(name)
File "/usr/local/Cellar/[email protected]/3.9.0_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/ctypes/__init__.py", line 374, in __init__
self._handle = _dlopen(self._name, mode)
OSError: dlopen(unitacmp-64.dylib, 6): image not found
RaspberryPi looks similar with a slightly different error message:
0002117:CRITICAL:__main__:uncaught exception: unitacmp-64.so: cannot open shared object file: No such file or directory
As pypemicro package has removed the message field in the latest version 0.1.6, the current version of pyocd-pemicro can't catch specific exceptions and being now installed by default it always fails pyocd on the system without libraries @flit :
:#sudo pyocd list
0001632:CRITICAL:__main__:uncaught exception: 'PEMicroException' object has no attribute 'message'
Traceback (most recent call last):
File "/usr/local/lib/python3.7/dist-packages/pypemicro/pemicro.py", line 403, in get_pemicro_lib
filename = PyPemicro.get_newest_lib_filename(libs_list)
File "/usr/local/lib/python3.7/dist-packages/pypemicro/pemicro.py", line 381, in get_newest_lib_filename
raise PEMicroException("Unable to find any usable library in the system!")
pypemicro.pemicro.PEMicroException: Unable to find any usable library in the system!
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/dist-packages/pypemicro/pemicro.py", line 419, in list_ports
lib = PyPemicro.get_pemicro_lib()
File "/usr/local/lib/python3.7/dist-packages/pypemicro/pemicro.py", line 407, in get_pemicro_lib
raise PEMicroException(str(exc))
pypemicro.pemicro.PEMicroException: Unable to find any usable library in the system!
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/dist-packages/pyocd_pemicro/pemicro_probe.py", line 82, in get_all_connected_probes
port_list = pemicro.list_ports()
File "/usr/local/lib/python3.7/dist-packages/pypemicro/pemicro.py", line 421, in list_ports
raise PEMicroException(str(exc))
pypemicro.pemicro.PEMicroException: Unable to find any usable library in the system!
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/dist-packages/pyocd/__main__.py", line 401, in run
self._COMMANDS[self._args.cmd](self)
File "/usr/local/lib/python3.7/dist-packages/pyocd/__main__.py", line 461, in do_list
ConnectHelper.list_connected_probes()
File "/usr/local/lib/python3.7/dist-packages/pyocd/core/helpers.py", line 109, in list_connected_probes
allProbes = ConnectHelper.get_all_connected_probes(blocking=False)
File "/usr/local/lib/python3.7/dist-packages/pyocd/core/helpers.py", line 82, in get_all_connected_probes
allProbes = DebugProbeAggregator.get_all_connected_probes(unique_id=unique_id)
File "/usr/local/lib/python3.7/dist-packages/pyocd/probe/aggregator.py", line 64, in get_all_connected_probes
probes += cls.get_all_connected_probes(unique_id, is_explicit)
File "/usr/local/lib/python3.7/dist-packages/pyocd_pemicro/pemicro_probe.py", line 89, in get_all_connected_probes
if cls.NO_LIBRARY_ERR in exc.message:
AttributeError: 'PEMicroException' object has no attribute 'message'
All two instances of if cls.NO_LIBRARY_ERR not in exc.message:
has to be replaced.
For example, if cls.NO_LIBRARY_ERR not in str(exc):
seems to work.
I have encountered FreeBSD OS detection. Will provide a fix soon :-)
(venv37zephyr) pyocd list
0001563:CRITICAL:__main__:Unable to determinate running operation system (FreeBSD)
Traceback (most recent call last):
File "/home/x/usr/local/venv37zephyr/lib/python3.7/site-packages/pypemicro/pemicro.py", line 401, in get_pemicro_lib
libs_list = PyPemicro.get_pemicro_lib_list(dllpath=dllpath)
File "/home/x/usr/local/venv37zephyr/lib/python3.7/site-packages/pypemicro/pemicro.py", line 142, in get_pemicro_lib_list
lib_name = PyPemicro.get_library_name()
File "/home/x/usr/local/venv37zephyr/lib/python3.7/site-packages/pypemicro/pemicro.py", line 99, in get_library_name
raise PEMicroException(f"Unable to determinate running operation system ({system_name})")
pypemicro.pemicro.PEMicroException: Unable to determinate running operation system (FreeBSD)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/x/usr/local/venv37zephyr/lib/python3.7/site-packages/pypemicro/pemicro.py", line 419, in list_ports
lib = PyPemicro.get_pemicro_lib()
File "/home/x/usr/local/venv37zephyr/lib/python3.7/site-packages/pypemicro/pemicro.py", line 407, in get_pemicro_lib
raise PEMicroException(str(exc))
pypemicro.pemicro.PEMicroException: Unable to determinate running operation system (FreeBSD)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/x/usr/local/venv37zephyr/lib/python3.7/site-packages/pyocd_pemicro-1.0.4-py3.7.egg/pyocd_pemicro/pemicro_probe.py", line 81, in get_all_connected_probes
port_list = pemicro.list_ports()
File "/home/x/usr/local/venv37zephyr/lib/python3.7/site-packages/pypemicro/pemicro.py", line 421, in list_ports
raise PEMicroException(str(exc))
pypemicro.pemicro.PEMicroException: Unable to determinate running operation system (FreeBSD)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/x/usr/local/venv37zephyr/lib/python3.7/site-packages/pyocd-0.30.4.dev31-py3.7.egg/pyocd/__main__.py", line 150, in run
status = cmd.invoke()
File "/home/x/usr/local/venv37zephyr/lib/python3.7/site-packages/pyocd-0.30.4.dev31-py3.7.egg/pyocd/subcommands/list_cmd.py", line 93, in invoke
ConnectHelper.list_connected_probes()
File "/home/x/usr/local/venv37zephyr/lib/python3.7/site-packages/pyocd-0.30.4.dev31-py3.7.egg/pyocd/core/helpers.py", line 109, in list_connected_probes
allProbes = ConnectHelper.get_all_connected_probes(blocking=False)
File "/home/x/usr/local/venv37zephyr/lib/python3.7/site-packages/pyocd-0.30.4.dev31-py3.7.egg/pyocd/core/helpers.py", line 82, in get_all_connected_probes
allProbes = DebugProbeAggregator.get_all_connected_probes(unique_id=unique_id)
File "/home/x/usr/local/venv37zephyr/lib/python3.7/site-packages/pyocd-0.30.4.dev31-py3.7.egg/pyocd/probe/aggregator.py", line 64, in get_all_connected_probes
probes += cls.get_all_connected_probes(unique_id, is_explicit)
File "/home/x/usr/local/venv37zephyr/lib/python3.7/site-packages/pyocd_pemicro-1.0.4-py3.7.egg/pyocd_pemicro/pemicro_probe.py", line 90, in get_all_connected_probes
raise cls._convert_exception(exc) from exc
pyocd.core.exceptions.ProbeError: Unable to determinate running operation system (FreeBSD)
Hi! I'm currently trying to package this for Arch Linux (for packaging pyocd).
When looking at your package requirements, it shows that the requirement on pypemicro is pinned to 0.1.7.
This is problematic in the context of system package management where only one package version is allowed (downstream distributions will remove this strict requirement). Is there a particular reason for it to be there?
Somewhat related: It seems as if the pypemicro project is currently not very transparent about which commit in the project repository let to what release on pypi.org.
Also somewhat related: The information on the requirements in the README are outdated and probably should not be there.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.