ARM技术的Cortex-M3微处理器测试方法研究与实现
0 引言
随着半导体技术的发展,集成电路制程工艺从深亚微米发展到纳米级,晶体管集成度的大幅提高使得芯片复杂度增加,单个芯片的功能越来越强。二十世纪90年代ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。采用ARM技术知识产权( IP 核)的微处理器,即ARM 微处理器,已遍及工业控制。消费类电子产 品。通信系统。网络系统。无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32 位RISC微处理器七成以上的市场份额。ARM 芯片的广泛应用和发展也给测试带来了挑战,集成电路测试一般采用实际速度下的功能测试,但半导体技术的发展使得测试开发工程资源按几何规律增长,自动测试 设备(ATE)的性能赶不上日益增加的器件I/O 速度的发展,同时也越来难以满足ARM 等微处理器测试所用的时序信号高分辨率要求,因而必须不断提高自动测试设备的性能,导致测试成本不断攀升。此外,因为ARM 芯片的复杂度越来越高,为对其进行功能测试,人工编写测试向量的工作量是极其巨大的,实际上一个ARM 芯片测试向量的手工编写工作量可能达到数十人年甚至更多。本文针对ARM Cortex内核的工作原理,提出了一种高效的测试向量产生方法,并在BC3192 测试系统上实现了对ARM Cortex-M3内核微处理器的测试。
1 微处理器测试方法
集成电路测试主要包括功能测试和直流参数的测试,微处理器的测试也包括功能和直流参数测试两项内 容。微处理器包含丰富的指令集,而且微处理器种类繁多,不同微处理器之间很难有统一的测试规范。为了使测试具有通用性,我们有必要对微处理器的测试建立一 个统一的模型,如图1 所示。芯片测试系统为被测微处理器提供电源和时钟,并能够模拟微处理器的仿真通信接口来控制微处理器工作,同时配合仿真时序施加激励向量,从而达到测试目的。
按微处理器仿真通信接口大致分两类,一类是具有仿真接口(如JTAG)的微处理器,一类是没有仿真接口的微处理器,对于配备类似JTAG 接口的微处理器,测试仪通过仿真一个JTAG接口对被测芯片进行功能或参数测试。没有配备仿真调试接口的芯片,可以根据芯片的外部接口和引导方式选择测试模型。
1.1 跟踪调试模式
大多数的微处理器都提供了跟踪调试接口,例如最常用的JTAG 接口,Cortex-M3内核除了支持JTAG调试外,还提供了专门的指令追踪单元(ITM)。JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1 兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的JTAG 接口是4 线:
TMS、TCK、TDI、TDO,分别为模式选择。时钟。数据输入和数据输出线。JTAG 最初是用来对芯片进行测试的,因此使用JTAG 接口测试微处理器具有很多优点。
用JTAG 接口对微处理器进行仿真测试,是通过测试系统用测试矢量模拟一个JTAG 接口实现对微处理器的仿真控制,其核心是状态机的模拟,图2 所示为测试系统使用的JTAG TAP 控制器的状态转换图。通过测试仪来模拟状态转换就可以实现JTAG 通信控制。
JTAG 在物理层和数据链路层具有统一的规范,但针对不同的芯片仿真测试协议可能略有差异。为了使测试模型具有通用性,我们对测试模型的JTAG 接口做了一个抽象层,如图3 所示。图中抽象层将类型多样的控制函数转化成芯片能识别的数据流来控制被测芯片的工作状态。
1.2 引导模式/FLASH 编程模式
针对没有配备仿真调试接口的微处理器,可以利用引导功能实现对微处理器的测试。因没有配备仿真调试 功能,不能实现仿真测试。因此针对这一类的微处理器测试中,需要在芯片中加载测试代码。大多数的微处理器芯片都具有上电引导功能,可以利用引导功能将测试 代码加载到微处理器中,进而实现功能和直流参数测试。而对于内部配备FLASH的微处理器可以先将测试代码下载到片内FLASH中,以实现对微处理器的功能和参数测试。
为了实现对微处理器的测试控制,通常,测试系统利用微处理器的片上通信接口与片上测试程序通信,互相配合完成功能和参数测试。
2 ARM Cortex-M3 的测试
2.1 ARM Cortex-M3 内核简介
ARM Cortex-M系列微处理器主要用于低成本和低功耗领域,如智能测量。人机接口设备。汽车和工业控制系统。大型家用电器。消费性产品和医疗器械等领域。图4 为Cortex-M 系列微处理器的简要框图。
ARM Cortex-M3 内核搭载了若干种调试相关的特性。
最主要的就是程序执行控制,包括停机(halting)。单步执行(stepping)。指令断点。数据观察点。寄存器和存储器访 问。性能速写(pr
- 嵌入式系统/ARM技术:嵌入式测试中数据获取的几种方式(06-06)
- arm技术中的异步传输模式ATM(12-05)
- 一种嵌入数字水印和ARM技术的门票防伪检测系统的实现(01-12)
- 基于CMSIS标准的Cortex-M3的应用软件开发(06-20)
- 基于μC/OS-II和TCP/IP协议的多串口服务器(08-23)
- μC/OS-II就绪表算法在Cortex-M3架构上的适配设计(01-22)