1. J-Link 内置智能支持 CPU
通常有以下 2 种方式在 J-Link 软件中支持一个新的 CPU。
- J-Link 固件智能识别
- PC 端 (DLL) 智能识别
最理想的是在 固件 中智能识别,这种方式更强大更健壮,J-Link PC 软件能自动的检测到连接的 CPU-core。如果固件支持智能识别,则会自动识别。如果使用的 J-Link 固件不支持智能识别,并且只有 PC 端智能识别连接到的 CPU,则会以弹窗的形式出现如下警告。
1.1 J-Link 固件智能识别
在较新的 J-Link 上,J-Link 固件可以识别新的 CPU-core,这意味着对于这些 J-Link,目标序列 不用再从 PC 端 生成,而是直接在 J-Link 中生成。在固件中集成智能识别可以提高稳定性和更高的性能。
1.2 PC 端 (DLL) 智能识别
这是在基本实现级别支持一个 CPU-core。这种实现不依赖于 J-Link model,因为这不需要在固件中实现智能识别。这也就意味着,所有的 目标序列(JTAG/SWD/…) 都是在 PC 端产生,J-Link 只是简单的把这些 目标序列 发送出去和将结果发送给 DLL。只要使用的 DLL-Version 能识别 CPU-core, 这种方式就可以使旧的 J-Link 识别新的 CPU-core。
这种方式有个很大的弊端,每一个发送给目标的 序列,都会触发一个 USB 或 以太网 的传输事件。特别是在 USB 连接时会有一个很长的延时,显著影响 J-Link 的执行效率。特别是当执行动作时,J-Link 必须频繁的等待 CPU 的操作。举个例子,一个内存的读写操作,它需要跟随状态读操作或重复,直到内存操作完成。在执行这种任务时, PC 端就需要做一些假设,比如:在给定的周期之后完成操作。或者它需要进行大量的 USB 或 以太网 事务传输。在第一种模式 (fast mode) 在某些情况下不能工作,如 CPU 速度比较低。第二种模式 (slow mode) 将更可靠,但非常缓慢,因为有大量的 USB 或 以太网 事务传输。简单地归结为:最好的解决方案是在模拟器本身具有智能识别。
1.2.1 PC 端 (DLL) 的局限性
-
不稳定,尤其是低速目标
由于大量的 USB 事务会导致 J-Link 的性能非常差,PC 端的实现假设 CPU/Debug 接口足够快,可以处理 命令/请求 而不需要等待。因此,在使用 PC 端智能识别时,不能保证所有情况下的稳定性,特别是如果目标接口速度 (JTAG/SWD/…) 明显高于 CPU 速度的情况下。
-
性能低
因为有很多的数据在主机接口 (尤其是 USB) 传输,即使主机接口上的事务数量被限制在最小 (fast mode),由此产生的下载速度通常远低于在 固件中实现智能识别的速度。
-
不支持
如果使用 PC 端实现智能识别,SEGGER 公司不会给予任何支持。
2. J-Link 软件
从 J-Link 官网 下载软件和工具包,包括使用 J-Link 的应用程序。同时还附带了 J-Link 的 USB 驱动和文档。
软件 | 描述 |
---|---|
J-Link Commander | 命令行工具,具有目标分析的基本功能 |
J-Link GDB Server | 是一个服务器,通过 TCP/IP 连接到 GNU Debuger (GDB),它是使用 GDB 协议的工具链连接到 J-Link 是必需的 |
J-Link GDB Server command line version | J-Link GDB Server 的命令行版本。和 GUI 版本的功能相同 |
J-Link Remote Server | 它提供了通过 TCP/IP 远程使用 J-Link/J-Trace 的可能性 |
J-Mem | 目标内存查看器。显示正在运行的目标的内存内容,并允许编辑 |
J-Flash | 独立的 Flash 编程程序。详见 UM08003(J-Flash User Guide).pdf |
J-Flash Lite | 独立的 Flash 编程程序。删减版的 J-Flash |
J-Link RTT Viewer | 免费的 J-Link 程序。显示使用 RTT 的目标的终端输出。可以并行或独立于调试器。 |
J-Link SWO Viewer | 免费的 J-Link 程序。显示使用 SWO 引脚的目标的终端输出。可以并行或独立于调试器。 |
J-Link SWO Analyzer | 解析 SWO RAW 输出的命令行工具,并把其存放在文件中 |
JTAGLoad | 打开 svf 文件,并通过 J-Link/J-Trace 将文件数据发送给目标。 |
J-Link Configurator | J-Link 的基于 GUI 的配置工具。同时支持基于 USB 和 TCP/IP 的 J-Link 连接。详见: J-Link Configurator |
RDI support | 提供支持远程调试接口(RDI: Remote Debug Interface)。这将允许用户使用 遵从 RDI 的任何调试器通过 J-Link 调试。 |
Processor specific tools | 处理特定处理器的免费命令行工具。包括:STR9 Commander 和 STM32 Unlock |
3. J-Link Commander (Command line tool)
更多 J-Link Commander 支持的指令,详见 SEGGER Wiki: J-Link commander。
3.1 命令行选项
为测试和自动化目的,可以使用不同的命令行选项启动 J-Link Commander。下表列出了J-Link Commander 有效的命令行选项。所有的命令行选项不分大小写。
命令 | 描述 |
---|---|
-AutoConnect |