基础环境配置

Catalogue
  1. 1. IDE
    1. 1.1. Keil5 MDK
  2. 2. 编译器
  3. 3. 驱动
  4. 4. 仿真器
    1. 4.1. OpenOCD
      1. 4.1.1. 简介
    2. 4.2. J-Link
  5. 5. 参考文献

IDE

Keil5 MDK

编译器

驱动

  • USB转串口驱动 CH340
  • JLink驱动

仿真器

调试arm,总要遵循arm的调试接口协议吧,jtag就是其中的一种吧。当仿真时,iar,keil,ads等等都有一个公共的调试接口,RDI(RDI接口是ARM公司提出的调试接口标准,主要用于ARM芯片的JTAG仿真。)就是其中的一咱吧, 那么我们如何完成RDI–>arm调试协议(JTAG)的转换呢? 如是乎就有两种做法:

(1) 在电脑上写一个服务程序,把keil,ads,iar中的RDI命令解析成相关的JTAG协议,然后通后一个物理转换接口(注意,这个转换只是电气物理层 上的转换,就像RS232那样的作用)发送你的的目标板。 h-jtag就是这样的。 h-jtag的硬件就仅是一个物理电平的转换接口,所以很简单。而电脑中装的h-jtag软件就是前面说到的服务程序,负责协议转换的。

(2)另一种做法,就是做一个板,用此板直接接收来自keil,ads,iar等软件的调试命令,由此板做rdi->jtag协议的转换。然后与目标板通信,这就是jlink的工作原理。(这也就实现了USB转JTAG协议。)

有一回贴说:“大佬,两者都是软件完成的,只不过软件放的地方不一样(一个放计算机,一个放仿真器里面了).真正的硬件,就象是JTRACE一样,用FPGA来实现.实质上,还是软件到硬件的过程.”。

OpenOCD

简介

OpenOCD是一款功能强大的开源调试软件,支持多种调试器,例如Jlink、STlink、FT2232、并口等;支持多种嵌入式处理器,例如 ARM7,ARM9, ARM10, ARM11 和 Cortex 等核心的芯片;另外还提供一个GDB Server接口。

说的直白一些 openOCD只把Jlink仿真器当作普通的USB设备来使用,不使用Jlink自带的仿真器驱动程序,如果已安装了 Jlink 仿真器驱动程序,这个过程就是把原先的驱动程序换掉 。

同上实现和JTAG通信的一种实现方式

参考文献

解析J-Link、J-Trace、Open JTAG原理以及其区别-电子工程世界 (eeworld.com.cn)