pylink使用耗费了我半天时间,始终没明白以下几个报错是哪里来的:
1.引用代码出现报错
import pylink
jlink = pylink.JLink()
jlink.open()
#报错:
#AttributeError: module 'pylink' has no attribute 'Jlink'
这里不是因为网上统一的说法,pyc文件的问题,通过powershell单步调试代码,发现卡在pylink.JLink()这里,这里需要特别注意,当help(pylink)的时候会看到可用文件是有jlink的,但是将pylink.JLink()更改为pylink.jlink()仍旧会报错ypeError: ‘module’ object is not callable,这里需要注意,jlink本身是个库文件,而不是函数本身,所以这里也不能引用,正确的用法是:
from pylink.jlink import JLink
l = JLink()
l.open()
#或者
from pylink import jlink
l = jlink.JLink()
2.在引用jlink库的时候出现了报错T
line 295, in __init__
raise TypeError('Expected to :be given a valid DLL.')
这个报错网上搜了好多资料,也没找到相关的介绍,只能大致的了解到是因为无法连接到jlink的库,没办法加载成功,我也是初步怀疑当初为了减小C盘容量将jlink安装到其他盘里去了,可能是因为这个,但是对于电脑装在哪里不是很明确,直到搜索到了这样一篇外文的帖子,原网址如下:
https://github.com/square/pylink/issues/34
其中他进行了一步操作:将 JLinkARM.dll 和 JLink_x64.dll 文件复制到 Windows/system32 目录和运行会话的用户目录。初步尝试之后发现可以正确通过该步骤编码,正确识别jlink
3.关于冷门MCU
因为我这边主要用的是小众MCU,相关资料添加到jlink的JLinkDevices.xml以及Devices中之后就可以使用(这一步网上教程很多,就不多加陈述),但对于pylink调用的是JLink_x64.dll(还是JLinkARM.dll记不清了)这之中是不含小众MCU的,找了几天没有找到相关资料,目前的结论是如果想要使用只能通过识别MCU内核的方式才能使用,实际上换成识别内核的方式确实可行,但这样在使用过程中容易出现问题,除非库在调用的时候更改方式,目前看来想要通过pylink操作jlink的方式失败了。