资源预览内容
第1页 / 共81页
第2页 / 共81页
第3页 / 共81页
第4页 / 共81页
第5页 / 共81页
第6页 / 共81页
第7页 / 共81页
第8页 / 共81页
第9页 / 共81页
第10页 / 共81页
亲,该文档总共81页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
嵌入式系统设计与开发 第9章 ARM嵌入式开发工具,本章提要,9.1 ARM下层开发工具 9.2 ARM开发工具概述 9.3 ARM的ADS 9.4 Embest IDE的介绍,9.1 ARM下层开发工具,由于程序的编译环境和运行环境不同,所以ARM嵌入式开发采用交叉编译方法进行。 首先,在通用计算机上对源程序进行编写、编译、汇编、连接形成可以在目标系统上运行的目标文件;接着,通过连接/调试装置将目标文件下载到目标系统上运行;源程序在目标系统上运行的情况连接装置在计算机中反映出来,开发人员通过反映出的情况根据开发项目的需要进行相应的修改并重复上述操作直至达到项目开发预期结果。 因此,可以把ARM嵌入式开发工具分为上层装在计算机中的开发工具、中间的连接装置和下层的ARM芯片本身具有的支持嵌入式开发的工具。,ARM 嵌入式系统实时开发组织结构图,9.1.1 JTAG接口,JTAG接口标准是由测试联合行动组(joint test action group)于19861988年推出的基于边界扫描机制的标准化草 案。1990年IEEE组织将这些草案标准化,并命名为IEEE 1149.1标准,俗称JTAG调试标准。JTAG除了实现通常意义上 的调试功能外,还可实现代码下载或单步执行程序等功能。,边界扫描机制主要的思想是:通过在内部逻辑之间,即在 内部逻辑的边界上增加串行的可读写的边界扫描单元,从而提 供芯片级、板级、系统级的标准测试框架。边界扫描机制可以 实现下列目标: 测试不同单元之间的连接。 测试单个单元的功能。 应用边界扫描寄存器完成其他测 试功能,如伪随机测试、特征分 析和静态测试等。,JTAG接口 的6个主要信号 : 1)Test Clock Input(TCK)。TCK为TAP的操作提供了一个 独立的、基本的时钟信号,TAP的所有操作都是通过这个时钟 信号来驱动的。TCK在IEEE 1149.1标准里是强制要求的。 2)Test Mode Selection Input(TMS)。TMS信号用来控制 TAP状态机的转换,通过TMS信号,可以控制TAP在不同的状 态间相互转换。TMS信号在TCK的上升沿有效。TMS在IEEE 1149.1标准里是强制要求的。 3)Test Data Input(TDI)。TDI是数据输入接口。所有要输 入到特定寄存器的数据都是通过TDI接口一位一位串行输入的 (由TCK驱动)。TDI在IEEE 1149.1标准里是强制要求的。,4)Test Data Output(TDO)。TDO是数据输出的接口。所有 要从特定边界扫描链采样的保存在寄存器中的数据都是通过 TDO接口一位一位串行输出的(由TCK驱动);在芯片串行测 试时,将数据传送给下一个芯片。TDO在IEEE 1149.1标准里 是强制要求的。 5)Test Reset Input(TRST/nTRST)。TRST可以用来对 TAP Controller进行复位(初始化)即JTAG复位。该信号接口 在IEEE 1149.1标准里是可选的,因为通过TMS也可以对TAP Controller进行复位/初始化。为了防止误触发,应在该端加适 当上拉电阻。 6)System Reset(nSRST/SRST)。与目标板上的系统复位 信号相连。可以直接对目标系统复位,同时可以检测目标系统 的复位情况。该信号接口在IEEE 1149.1标准里是可选的,并 不是强制要求的。,20针JTAG接口信号,20针JTAG接口连接,9.1.2 JTAG TAP,JTAG测试访问端口JTAG TAP是一个通用端口,是外部JTAG接口连接芯片的通道,由JTAG TAP控制器和扫描链构成。 通过TAP可以访问芯片提供的所有数据寄存器(DR,data register)和指令寄存器(IR,instruction register)。 对整个TAP的控制是通过TAP Controller完成的。 TAP有5个接口信号:TCK、TMS、TDI、TDO和TRST,提供给JTAG接口。,扫描链是由靠近芯片的输入/输出管脚上各增加一个用于实现对芯片输入/输出信号进行观察和控制的移位寄存器单元,相互连接构成。即在芯片/内部逻辑的周围形成一个边界扫描链(boundary-scan chain)。 如果需要捕获芯片某个管脚上的输出,首先需要把该管脚上的输出装载到边界扫描链的寄存器单元里,然后通过TDO输出,得到相应管脚的输出信号。 如果要在芯片的某个管脚上加载一个特定的信号,则首先通过TDI把期望的信号移位到与相应管脚相连的边界扫描链的寄存器单元里,然后把该寄存器单元的值加载到相应的芯片管脚。,在IEEE 1149.1标准里面,寄存器分为两大类:数据寄存器DR和指令寄存器IR。 边界扫描链属于数据寄存器的一种,用来实现对芯片的输入/输出的观察和控制,而指令寄存器用来实现对数据寄存器的控制。 如在芯片提供的所有边界扫描链中选择一条指定的边界扫描链作为当前的目标扫描链,并作为访问对象就是由相应指令寄存器完成的。,通过TAP接口,对数据寄存器进行访问的一般过程是: 1)通过指令寄存器,选定一个需要访问的数据寄存器。 2)把选定的数据寄存器连接到TDI和TDO之间。 3)由TCK驱动,通过TDI,把需要的数据输入到选定的数据寄 存器中,同时把选定的数据寄存器中的数据通过TDO读出来。,JTAG TAP 控制器状态转换图,指令寄存器和数据寄存器工作过程: 1)系统上电后在TMS信号驱动下,TAP Controller进入Test-Logic Reset状态,然后可依次进入Run-Test/IdleSelect-DR-ScanSelect-IR-ScanCapture-IRShift-IR Exit1-IRPause-IRExit2-IRUpdate-IR,最后回到Run-Test/Idle状态。在Capture-IR状态中,一个特定的指令加载到指令寄存器中,进入到Shift-IR状态。在Shift-IR状态下,通过TCK的驱动,可以将该指令送到指令寄存器中。每条指令都将确定一个相应的数据寄存器。然后可以沿着Shift-IRExit1-IRPause-IRExit2-IRUpdate-IR路径进行,也可以沿着其他的路径到达Update-IR状态。在Update-IR状态,刚才输入到指令寄存器中的指令将更新指令寄存器成为当前指令。最后,进入到Run-Test/Idle状态,指令生效,完成对指令寄存器的访问。,2)对当前数据寄存器的访问由指令寄存器中的当前指令决定。要访问由指令选定的数据寄存器,需要以Run-Test/Idle为起点在TMS信号驱动下,依次进入Select-DR-Scan Capture-DR Shift-DRExit1-DRPause-DRExit2-DRUpdate-DR,最后回到Run-Test/Idle状态。在这个过程中,被当前指令选定的数据寄存器会被连接在TDI和TDO之间。通过TDI和TDO,就可以将新的数据加载到数据寄存器中,同时,也可以捕获数据寄存器中的数据。,现在常用的ARM7和ARM9的微内核ARM7TDMI与ARM9TDMI 都提供了4条扫描链: 1)Scan Chain 0 测试链 2)Scan Chain 1调试链 3)Scan Chain 2编程链 4)Scan Chain 3外围测试链,ARM9TDMI边界扫描链1的另外两个信号DDEN和SYSSPEED 的作用是: DDEN在ARM9TDMI内部测试模式下,是可获取、可测试的。在ARM9TDMI外部测试模式下低电平表示将获取数据总线上输入的数据,高电平表示将要输出扫描链上存储的数据。 在ARM9TDMI进入调试状态时,SYSSPEED将输出。低电平表示微内核现在进入断点调试,高电平表示微内核进入观 察点调试状态。,9.1.3 Embedded ICE 嵌入式在线仿真器,系统中内核调试功能,主要由4部分组成: ARM核内的一组调试扩展。 Embedded ICE宏。 Embedded ICE宏接口。 基于JTAG接口的在主机和内核之间的调试通信通道。,Embedded ICE寄存器,调试控制寄存器(debug control register)用来控制Embedded ICE,6位分别对应6种控制信号,从低到高依次是DBGACK、DBGRQ、INTDIS、SBZ/RAZ、Monitor Mode Enable和Embedded ICE。DBGRQ调试请求信号,通过将该信号置1,可以强制ARM7TDMI/ARM9TDMI暂停当前的指令,进入调试状态;INTDIS用来控制中断;SBZ/RAZ任何时候都必须被置0;Monitor Mode Enable用来控制是否进入Monitor模式; Embedded ICE-RT Disable用来控制整个Embedded ICE-RT,是启用还是禁用,如果禁用的话,ARM7TDMI/ARM9TDMI将一直保持在正常的运行状态。,通过调试状态寄存器(debug status register)可以查询当前系统的状态。调试状态寄存器是可读可写的,但一般只进行读操作。5位信号从低位到高位分别是:DBGACK、DBGRQ、IFEN、CGENL和TBIT,其中DBGACK标识当前系统是否处于调试状态,置1表示处于调试状态;DBGRQ标识DBGRQ信号的当前状态;IFEN标识系统的中断状态是启用还是禁用;CGENL标识调试状态下对存储器的访问是否完成;TBIT用来判断是从ARM还是Thumb模式进入调试状态。,中止状态寄存器(abort status register)用来确定异常的产生原因:断点、观察点还是真的异常。 调试通信控制寄存器(debug comms control register)和调试通信数据寄存器(debug comms data register)是用来控制和操作调试通信通道。其他的寄存器都是关于观察点WATCH POINT的寄存器,用于设置断点和观察点。 剩下的12个寄存器可以表示成如下形式: 观察点0/1地址值/屏蔽寄存器。 观察点0/1数据值/屏蔽寄存器。 观察点0/1控制值/屏蔽寄存器。,9.1.4 ETM嵌入式跟踪宏,ETM能捕获指令和数据序列,访问并把它们的记录发送给芯片上或芯片外的缓冲器,ARM的ETM既可设置成允许触发器工作也可设置成允许跟踪结果被滤出。使用ETM的过滤功能,可以只捕获特别中断的或特殊文件的代码执行,即相当于提供了对代码的压缩功能。 ETM由如下两部分组成: 跟踪端口,用于实时执行的跟踪。代码执行时,CPU发送串行、经过编码、压缩的分支目标地址、管线状态、读写数据给ETM。 触发装置,规范已被开发。该规范允许指定特定应用所需的触发源的准确集合。资源包括地址和数据比较器、计数器和定序器。,9.2 ARM开发工具概述,9.2.1 JTAG仿真器 JTAG仿真器也称为JTAG调试器,是通过ARM芯片的JTAG边 界扫描口进行调试的设备。JTAG仿真器连接比较方便,通过 现有的JTAG边界扫描口与 ARM CPU 核通信,属于完全非插 入式(即不使用片上资源)调试,它无需目标存储器,不占用 目标系统的任何端口,而这些是驻留监控软件所必需的。另 外,由于JTAG调试的目标程序是在目标板上执行,仿真更接 近于目标硬件,因此,许多接口问题,如高频操作限制、AC和 DC参数不匹配与电线长度的限制等均被最小化了。使用集成 开发环境配合JTAG仿真器进行开发是目前采用最多的一种调 试方式。,JTAG仿真器通过ARM处理器的JTAG调试接口与目标机通信, 通过并口或串口、网口、USB口与宿主机通信。通过JTAG方 式可以完成: 读出/写入CPU的寄存器,访问控制ARM处理器内核。 读出/写入内存,访问系统中的存储器和系统端口。 访问ASI C系统。 访问I/O系统。 控制程序运行、停止、单步执行
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号