7 平台搭建与下载工具

书籍下载地址(复制到下载工具进行下载):

https://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part1.rar

https://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part2.rar

 

注:书籍内容会不定期进行更新!

 

7.4 JTAG与串行调试(SWD

7.4.1 JTAG简介

   

 JTAG(Joint Test Action Group;联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如DSPFPGA器件等。标准的JTAG接口是4线:TMSTCKTDITDO,分别为模式选择、时钟、数据输入和数据输出线。

    JTAG最初是用来对芯片进行测试的,JTAG的基本原理是在器件内部定义一个TAPTest Access Port;测试访问口)通过专用的JTAG测试工具对进行内部节点进行测试。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。现在,JTAG接口还常用于实现ISPIn-System Programmable�在线编程),对FLASH等器件进行编程。

JTAG编程方式是在线编程,传统生产流程中先对芯片进行预编程现再装到板上因此而改变,简化的流程为先固定器件到电路板上,再用JTAG编程,从而大大加快工程进度。

具有JTAG口的芯片都有如下JTAG引脚定义:

  TCK——测试时钟输入;

  TDI——测试数据输入,数据通过TDI输入JTAG口;

  TDO——测试数据输出,数据通过TDOJTAG口输出;

  TMS——测试模式选择,TMS用来设置JTAG口处于某种特定的测试模式。

  可选引脚TRST——测试复位,输入引脚,低电平有效。

  含有JTAG口的芯片种类较多,如CPUDSPCPLD等。

JTAG内部有一个状态机,称为TAP控制器。TAP控制器的状态机通过TCKTMS进行状态的改变,实现数据和指令的输入。

    JTAG标准定义了一个串行的移位寄存器。寄存器的每一个单元分配给IC芯片的相应引脚,每一个独立的单元称为BSCBoundary-Scan Cell)边界扫描单元。这个串联的BSCIC内部构成JTAG回路,所有的BSRBoundary-Scan Register)边界扫描寄存器通过JTAG测试激活,平时这些引脚保持正常的IC功能。

 

 

7.4.2 SWD简介

ARM Cortex-M0 集成了调试的功能。支持串行线调试功能。ARMCortex-M0 被配置为支持多达 4个断点和 个观察点。

串行线调试技术可作为 CoreSight调试访问端口的一部分,它提供了针调试端口,这是 JTAG 的低针数和高性能替代产品。

    串行线调试 (SWD) 为严格限制针数的包装提供一个调试端口,通常用于小包装微控制器,但也用于复杂 ASIC 微控制器,此时,限制针数至关重要,这可能是设备成本的控制因素。

    SWD 将 针 JTAG 端口替换为时钟 单个双向数据针,以提供所有常规 JTAG 调试和测试功能以及实时系统内存访问,而无需停止微控制器或需要任何目标驻留代码。SWD 使用 ARM 标准双向线协议(在 ARM 调试接口第 版中定义),以标准方式与调试器和目标系统之间高效地传输数据。作为基于 ARM 微控制器的设备的标准接口,软件开发人员可以使用 ARM 和第三方工具供应商提供的各种可互操作的工具。

l 仅需要 个针 对于非常低的连接设备或包装至关重要 

l 提供与 JTAG TAP 控制器的调试和测试通信

l 使调试器成为另一个 AMBA 总线主接口,以访问系统内存和外设或调试寄存器

l 高性能数据速率 - 4 M 字节/秒 @ 50 MHz

l 低功耗 不需要额外电源或接地插针

l 较小的硅面积 - 2.5k 附加门数

l 低工具成本

l 可靠 内置错误检测

l 安全 防止未连接工具时出现插针故障

 

    SWD 提供了从 JTAG 的轻松且无风险的迁移,因为两个信号 SWDIO 和 SWCLK 重叠在 TMS 和 TCK 插针上,从而使双模式设备能够提供其他 JTAG 信号。在 SWD 模式下,可以将这些额外的 JTAG 针切换到其他用途。SWD 与所有 ARM 微控制器以及使用 JTAG 进行调试的任何微控制器兼容,它可以访问 Cortex微控制器和 CoreSight 调试基础结构中的调试寄存器。目前,批量生产设备中实现了串行线技术,例如,NuMicro M051系列微控制器

    ARM 多点 SWD 技术允许通过单个连接同时访问任意数量的设备,以将 SWD 优点应用于基于多微控制器的复杂 SoC,从而为复杂设备开发人员提供了低功耗 针调试和跟踪解决方案。这对连接受限的产品特别重要,例如,手机,其中多晶片和多芯片是很常见的。

    多点 SWD 完全向后兼容,从而保留现有的单一点到点主机设备连接,并允许在未选择设备时将其完全关闭以降低功耗。

 

SWD串行调试具有以下特性:

l 支持ARM串行线调试模式;

l 可直接对所有存储器、寄存器和外设进行调试;

l 调试阶段不需目标资源;

l 4 个断点。个指令断点,可以用来重映射修补代码的指令地址。2个数据比较器,可用来重映射修补文字的地址;

l 2 个数据观察点,可用作跟踪触发器;

 

 

下表列出了与调试和跟踪相关的JTAGSWD不同管脚功能。有些功能与其它功能共用管脚,因此这些功能不能同时使用。

表7.4-1 JTAGSWD功能引脚

管教名称

类型

说明

TCK

输入

JTAG测试时钟。该管脚在 JTAG模式下是调试逻辑的时钟

TMS

输入

JTAG测试模式选择。TMS 管脚负责选择 TAP 状态机的下一个状态

TDI

输入

JTAG测试数据输入。这是移位寄存器的串行数据输入

TDO

输出

JTAG 测试数据输出。这是移位寄存器的串行数据输出。在 TCK 信号

的下降沿,数据将通过移位寄存器从器件向外输出

TRST

输入

JTAG测试复位。可用TRST 管脚来复位调试逻辑中的测试逻辑

SWCLK

输入

串行线时钟。这个管脚在串行线调试模式下是调试逻辑的时钟

SWDCLK)。在 JTAG 模式下该管脚为 TCK 管脚

SWDIO

输入/输出

串行线调试数据输入/输出。外部调试工具可通过 SWDIO 管脚来与

NuMicro M051通讯,并对其进行控制。在 JTAG 模式下该管脚为 TMS管脚

posted @ 2012-02-18 11:38  温子祺  阅读(734)  评论(0编辑  收藏  举报