找回密码
 注册
关于网站域名变更的通知
查看: 581|回复: 1
打印 上一主题 下一主题

基于JTAG的ARM芯片系统

[复制链接]
  • TA的每日心情
    开心
    2020-9-8 15:12
  • 签到天数: 2 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2020-9-9 11:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x

    1 引言
    6 b5 g8 b- o9 U' Q6 T    32位ARM处理器是英国先进RISC机器公司(Advanced RISC Machines,ARM)的产品。随着嵌入式处理器性能的逐步提高,运算速度越来越快、处理的数据量越来越大,传统的调试方法如ROM驻留监控程序以及串口调试工具已经不能满足要求。ARM处理器采用一种基于JTAG的ARM的内核调试通道,它具有典型的ICE功能,基于ARM的包含有Embedded ICE(嵌入式在线仿真器模块的系统芯片通过JTAG端口与主计算机连接。通过配置支持正常的断点、观察点以及处理器和系统状态访问,完成调试。为了对代码进行实时跟踪,ARM的提供了嵌入式跟踪单元(Embedded Trace Macrocell),对应用程序的调试将更加全面。2 I& L; u- ~2 R  r. {$ a/ G
    2 JTAG边界扫描原理  n- B, G* g* ~( ^9 o2 |
        “JTAG边界扫描”或IEEE1149标准[1]是由“测试联合行动组”(Joint Test Action Group,简称JTAG)开发的针对PCB的“标准测试访问接口和边界扫描结构”的标准。这个标准是ARM处理器调试的基础。+ Z9 K* ]) Y8 K, n: F5 @$ `
    2.1 硬件电路
    / V7 |) h( s7 D0 d8 |    JTAG边界扫描测试接口的一般结构


    + m  C8 J- b$ Z' ~% o9 q
        JTAG边界扫描硬件电路主要由三部分构成:

    $ `- t* u" j( Q
        1) TAP控制器。测试访问端口(TAP)控制器,是由TMS控制状态转换的状态机。
    , j; Z) p3 ?# j! @$ _
        2) 指令寄存器。用于存储JTAG边界扫描指令,通过它可以串行的输入并执行各种操作指令。

    6 }1 \' t# h% e  g7 ~+ _; X
        3) 数据寄存器。特定芯片的行为由测试指令寄存器的内容决定。测试指令寄存器可用来选择各种不同的数据寄存器。
    6 V4 f5 W1 K1 i: C! h8 {# k
    2.2 边界扫描测试信号

    # u  l, j6 X, ^* j! Z/ Q% \& H
        支持这个测试标准的芯片必须提供5个专用信号接口:
    6 h7 ]0 I6 Z3 k7 K2 p
    TRST:测试复位输入信号,低电平有效,为TAP控制器提供异步初始化信号。

    6 H( A" ]5 B$ Y' ^: X
    TCK:JTAG测试时钟,独立于任何系统时钟,为TAP控制器和寄存器提供测试参考。

    ( w1 {" ^4 n+ ^+ ^2 m/ Z. n6 t, A
    TMS:TAP控制器的测试模式选择信号,控制测试接口状态机的操作。

    # \0 `  Y1 ]* w+ Y7 H/ _
    TDI:JTAG指令和数据寄存器的串行输入端,给边界扫描链或指令寄存器提供数据。
    ) t6 L) N/ i7 `
    TDO:TAG指令和数据寄存器的串行输出。

    8 P; h7 r9 v- q" l1 A4 c& Q
    2.3 指令
    . U! h3 P* y& C
        JTAG测试系统是通过向指令寄存器送入指令,然后使用数据寄存器进行测试。测试指令说明要进行的测试种类及测试要使用的数据寄存器。测试指令分为公开指令和私有指令。公开指令已经定义且用于通用测试。私用指令用于片上的专用测试,测试标准没有规定如何使用私有指令。测试标准支持的集的公开指令有:

    * M2 [* p5 g% b% z4 _, g
    BYPASS:器件将TDI经一个时钟延时连接到TDO,用于同一个测试环中其它器件的测试。
    - F% m$ x2 G4 j4 z. K
    EXTEST:将边界扫描寄存器连接到TDI和TDO之间,用于支持板级连接测试。
    1 J7 e$ [6 O" p, l0 X
    IDCODE:将ID寄存器连接到TDI和TDO之间。通过它可以读出器件ID(厂家赋与的固定标识,包括产品编号及版本码)。
    $ X1 V) I  L# u4 B2 }7 h: f+ Z
    INTEST:将边界扫描寄存器连接到TDI和TDO之间。
    1 |) l" E; q8 o! w( W  z3 Y" H* b

    3 EmbeddedICE
    , j5 Q# P4 H+ m+ P
        ARM的EmbeddedICE调试结构[3]是一种基于JTAG的ARM的内核调试通道,它是基于JTAG测试端口的扩展,引入了附加的断点和观测点寄存器,这些数据寄存器可以通过专用JTAG指令来访问,一个跟踪缓冲器也可用相似的方法访问。ARM核周围的扫描路径可以将指令加入ARM流水线并且不会干扰系统的其它部分。这些指令可以访问及修改ARM和系统的状态。由于EmbeddedICE条件断点,单步运行等功能的实现是基于片上JTAG测试访问端口进行调试,芯片不需要增加额外的引脚,避免使用笨重的、不可靠的探针接插设备完成调试。芯片中的调试模块与外部的系统时序分开,可以直接运行在芯片内部的独立时钟速度。
    . s/ x3 j; \9 o1 _+ c$ ^
    3.1 硬件结构

    ' l* L5 f- O$ o" i& x% m
        EmbeddedICE模块包括两个观察点寄存器和控制与状态寄存器,还包括一个Debug comms端口。当地址、数据和控制信号与观察点寄存器的编程数据相匹配时,也就是触发条件满足时,观察点寄存器可以中止处理器。由于比较是在屏蔽控制下进行的,因此当ROM或RAM中的一条指令执行时,任何一个观察点寄存器可配置为能够中止处理器的断点寄存器。
    & {/ V! N: k$ N% M
        1) 观察点

    3 t, F5 H+ _. O  T& F
        每个观察点皆可以观察ARM地址总线、数据总线、和等信号的特定组合值。任何一个组合值与观察点寄存器值匹配则中止处理器。另外一种方式是把两个观察点链接起来,只有个观察点先匹配了,当第二个观察点再匹配时将使处理

    - }! W9 c$ N/ H" l# p% {
    器中止。

    6 J+ j% o1 N9 |& v
        2) 寄存器
    9 i0 _) \" _+ i' f4 J( D. a2 D7 _
        EmbeddedICE寄存器通过JTAG测试端口使用专用扫描链编程。扫描链38位长,包括32个数据位,5个地址位和一个控制寄存器是读还是写的 位。地址位指定特定的寄存器,地址和寄存器一一对应。
    $ a# l; U/ {7 e, r
       3) Debug comms端口
    $ w( i: f" S) U, G- r
        debug comms端口运行在目标系统上的软件可以通过这个端口与主机通信。运行在目标系统上的软件将comms端口视为一个6位控制寄存器和32位可读写寄存器,可以使用对协处理器14的MRC和MCR指令访问。主机将这些寄存器视为EmbeddedICE寄存器。
    # R! a5 d4 B1 \; W7 h' E
    3.2 实现原理

    . R* J( V. c7 Z  k( w3 C6 c/ q, Y
        1) 访问状态

    9 d6 @' p" }) k. Q+ K
        EmbeddedICE模块允许程序在指定点中止,但不允许直接观测、修改处理器或系统状态。这可以通过属于JTAG端口访问的扫描路径实现。访问处理器状态的方法是中止处理器,再在处理器指令序列中强制插入一条多寄存器存取指令。然后通过扫描链向处理器加入时钟,使处理器将寄存器内容送到数据端口。每个寄存器的值都可以被扫描链采样并移出。
    & G, p' s  G, {5 P5 i8 F
        2) 调试
    : G, T4 v3 Q* n6 B! j! e
        基于ARM的包括EmbeddedICE模块的系统芯片通过JTAG端口和协议转换器与主计算机连接。这种配置支持正常的断点、观察点以及处理器和系统状态访问,(除上面介绍的comms端口以外)这是程序设计人员在本地或基于ICE的调试中习惯采用的方式。采用适当的主机调试软件,以较少的硬件代价得到完全的源代码级调试功能。
    ; T+ [3 Q) Z6 m8 X4 ^  a! H

    4 ARM的嵌入式跟踪6 R4 t' `+ m3 e6 p
        EmbeddedICE提供的断点及观察点将使处理器偏离正常执行序列,破坏了软件的实时行为,它不能完成实时操作调试功能。ARM结构的处理器采用嵌入式跟踪宏单元ETM很好的解决了系统实时调试的问题。( P8 _8 n" v6 f! }4 `
    4.1 硬件电路3 q! b. x# d  [6 C3 A9 S3 f
        EmbeddedICE单元支持断点和观察点功能并提供主机和目标软件的通信通道。ETM单元[5]压缩处理器接口信息并通过跟踪端口送到片外。这两个单元都由JTAG端口控制。SoC外部的EmbeddedICE控制器用于将主机系统连接到JTAG端口,跟踪端口分析器使主机系统与跟踪端口对接。主机通过一个网络可以与跟踪端口分析器和EmbeddedICE二者连接。9 r3 c- ?2 V+ @5 e1 K+ Q6 U
    4.2 实现原理
    ( \2 P. V2 ?: W0 _8 c6 H    由调试软件配置并通过标准JTAG接口传输到ETM上。在程序执行时ETM可以通过产生对处理器地址、数据及控制总线活动的追踪(Trace)来获得处理器的全速操作情况。在实时仿真时外设和中断程序依然能够继续运行。用户控制断点和观察点的设置并可以配置各种跟踪功能。跟踪触发条件可以指定,跟踪采集可以在触发之前、之后或以触发为中心可以选择跟踪是否包括数据访问。跟踪采集可以是数据访问的地址、数据本身,也可以是两者兼有。$ s! O2 G& F, n8 i/ ^1 [1 `
        ETM是使用软件通过JTAG端口进行配置的,所使用的软件是ARM软件开发工具的一个扩展。跟踪数据从跟踪端口分析仪并解压,终反链接到源代码。

    5 应用实例* ]; a) a1 {: P1 d, W$ s
        下面以S3CEV40开发板[4]为例,介绍ARM调试结构应用。S3CEV40采用的CPU为Samsung公司的S3C44B0X,是国内应用广泛的基于ARM7TDMI内核的SoC。其调试系统的硬件结构如图2:


    % T0 J+ D% Z$ E0 X2 N  [; r
        计算机的并行口和Embest PowerICE for ARM仿真器的DB25接口通过标准的DB25公、母转换电缆连接。Embest PowerICE for ARM仿真器通过一个的IDC头的直通电缆(1-1, 2-2,… 20-20)与目标板的JTAG接口相连接。20芯的Embest PowerICE for ARM仿真器接口的定义如图3所示:

    * F. h% @/ [& U# e
        S3CEV40所用到的调试软件为EmbestIDE集成开发环境,它提供源码级调试,提供了图形和命令行两种调试方式,可进行断点设置、单步执行、异常处理,可查看修改内存、寄存器、变量等,可查看函数栈,可进行反汇编等。它为用户提供2种调试方法:
    8 M* F( b8 [. V+ J7 ]* M. s

    % u5 M# }7 A2 s% K- M

      k# k- }% x5 E& r9 B- z, T
    脱机调试:Embest IDE for ARM带ARM指令集模拟器,用户能在PC上调试ARM应用软件。

    0 I8 j- w2 _! I1 B: g$ @) y

    调试:Embest IDE将程序通过仿真器到开发板,直接进行调试。

    6 S, Q: H3 P6 x3 f/ G. P
        Embest IDE的调试功能包括:断点功能;程序的单步执行;变量监视功能,随程序运行同步更新变量,变量值即时修改;寄存器即时查看与修改;存储器查看与修改,存储器内容显示格式定制;堆栈显示;同时提供图形界面操作和命令行操作方式;支持被调试代码的多种显示模式,能以源码、汇编、混合等形式来显示程序;具有与MS Visual Studio类似的调试菜单功能:Go,Stop,Reset,Step into,Run to Cursor等;程序的上载和。

    ( W- ?- y" n: a9 G) ]/ s

    6 结束语
    - A1 o: R/ D6 K1 j9 n2 A! Z    本文介绍了32位ARM嵌入式处理器的调试技术。在JTAG边界扫描技术的基础上介绍了ARM的EmbeddedICE及嵌入式跟踪并在此基础上介绍了一个系统调试实例。嵌入式调试技术是嵌入式软硬件开发中必要的一环,掌握了它能在开发中起到事半功倍的作用。
    , y0 g& k( \, P4 Q' P, t    嵌入式技术正在日新月异的发展着,嵌入式调试技术也不是一成不变的,它必将随着高速、低功耗Soc的发展而进步。


    2 s; i8 ?. Z1 a" I& y: ]5 K1 @
    ( ^3 v  h* G5 b4 a9 x3 b' m
  • TA的每日心情
    奋斗
    2020-8-27 15:56
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-9-9 13:13 | 只看该作者
    传统的调试方法如ROM驻留监控程序以及串口调试工具已经不能满足要求
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-19 01:20 , Processed in 0.125000 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表