jlink 功能强大,是很多工程师开发调试嵌入式产品的首选仿真、调试器。它是SEGGER(哲戈微系统)公司的产品,SEGGER 成立于1992年, 总部位于德国蒙海姆, 是一家专注于嵌入式系统开发工具和软件的公司,拥有超过30年的行业经验,提供从代码编写到生产的全套解决方案,其产品以高效可靠著称。

jlink驱动一般都是在SEGGER官网下载:SEGGER - The Embedded Experts - Downloads - J-Link / J-Trace

jlink 官方驱动是 SEGGER 官方一系列工具链(如 J-Flash.exe、JLink.exe、J-Link GDB Server、Ozone),这个驱动是SEGGER 提供的 专用签名驱动,是基于 Windows WDM/Kernel-Mode 驱动,非 WinUSB/libusb,用户安装完驱动后在电脑上设备驱动栏里显示在“通用串行总线控制器”里面,如下图所示:

这个官方驱动支持完整调试功能,如JTAG/SWD 协议、Flash 下载、断点调试等。调试的工具依赖 SEGGER 驱动的私有 API,独家所有不对外公开

而有些时候需要在OpenOCD环境下使用jlink,OpenOCD 通过是通过 WinUSB 与 J-Link 通信的,OpenOCD 通过 libusb/WinUSB 的通用接口 访问 USB 设备的原因是为了避免依赖 SEGGER 私有驱动,前面说了SEGGER驱动是独家所有不对外公开。而OpenOCD 又是开源软件,所以 在OpenOCD 上使用jlink 调试,要绕开 官方驱动。所以很多时候用户需要手动把已经按照好的jlink驱动改为 winusb/libsub驱动,怎么改呢,这里介绍一个办法,使用UsbDriverTool.exe工具,网上有很多工程师推荐Zadig 工具,从个人使用体检来说,使用UsbDriverTool比较友好。UsbDriverTool官网在这里:https://visualgdb.com/UsbDriverTool/  ,这是一个开源软件:

License

UsbDriverTool is free for commercial and non-commercial use.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

下载好 UsbDriverTool 工具后,打开工具,

 在工具列表上可以看到电脑上接的USB设备,第一个设备就是 jlink, 鼠标选中jlink driver,右键

就列出了jlink 可以安装的驱动类型,有Android ADB Driver, FTDI CDM, Libusb-WinUSB, WinUSB这几种, 没有看到jlink 官方驱动,别着急后面会说,其中Restore default driver 是指可以恢复的默认驱动。现在显示的是jlink官方驱动,点击install WinSUB, 等几秒安装完 就可以切换到WinUSB驱动下:

切换到成WinUSB驱动后,在设备管理器中识别类型就是 “通用串行设备总线”了, 会变成 WinUSB Device 或 libusb-win32

前面说了J-Flash、J-Link GDB Server这些工具依赖 SEGGER 驱动的私有 API。如果强制绑定了 WinUSB/libusb,导致 SEGGER 工具无法识别设备, J-Flash,J-Link GDB Server无法使用的,如果你使用jlink 工具打开就会提示这样,当时因为这个提示 jlink 工具用不了,网上找了很多资料都没解决:

用户想要使用jlink 工具,就要再切换到SEGGER官方驱动,点击前面截图中的 “ Restore default driver” 

 在弹出的对话框中选择 J-Link driver , 设备制造商Vendor选择Segge的:

 安装完以后就会切换到SEGGER 官方驱动。在电脑设备管理器中又会显示到 “ 通用串行总线控制器” 列表中。再使用jlink,JFlash,JLinkGDBServer这些工具就不会报错了。

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐