10.1.1 一些基本概念 - 51CTO.COM

来源:百度文库 编辑:神马文学网 时间:2024/05/24 02:38:26

第10章 自制简易JTAG下载烧写工具

对于普通嵌入式系统爱好者来说,不太可能花太多的钱去买比较高档的调试仿真工具来调试我们自己的目标板,最经济的做法就是自己制作一个简单JTAG线缆用来烧写flash,先将bootloader固化到flash中,因为bootloader编译出来都很小,一般几十KB,最多几百KB,用简易JTAG烧写不需要多少时间,如果顺利,bootloader能够正常工作,那么就可以在bootloader菜单中通过串口或者TFTP下载其他程序到目标板的DRAM中进行运行调试或者烧写最后定型的软件,因为通过串口或者TFTP下载的速度比简易JTAG线缆下载烧写速度快。当然也可以从网上搜索购买一个简易JTAG线缆(很便宜,最多不超过50RMB),不管是什么版本都行,然后用我们下面介绍的简易JTAG烧写软件来烧写目标板的flash,使用烧写软件之前只需先根据所购买JTAG线缆的具体连线图中并口与JTAG口的对应关系适当修改源代码中的管脚变量定义,然后重新编译链接就可以了。

这一章我们就介绍简易JTAG线缆硬件原理,烧写软件流程,并说明使用简易JTAG线缆烧写flash的方法。

10.1  JTAG简介

JTAG接口的基本工作原理是:在芯片内部定义一个TAP(Test AccessPort,测试访问端口),开发人员使用连接到芯片的JTAG外部接口上的JTAG调试器,通过访问芯片内部的TAP端口来扫描芯片内部各个扫描单元以写入或读取扫描寄存器的状态,从而对芯片进行测试和调试。一个扫描单元对应一个外部管脚,每个外部管脚有一个扫描寄存器BSR单元,所有这些管脚的扫描寄存器连在一起就形成了扫描链。简单地说,PC通过JTAG调试器对目标板的调试就是通过TAP端口完成对扫描寄存器BSR和指令寄存器IR的读写访问。要了解关于JTAG 更全面的知识,请参阅 IEEE1149.1标准。

10.1.1  一些基本概念

JTAG

是Joint Test Action Group(联合测试行动组)的缩写,是一种国际标准测试协议,它遵守IEEE1149.1标准。一个含有JTAG接口的处理器,只要时钟正常,就可以通过JTAG接口访问处理器的内部寄存器、挂在处理器总线上的设备以及内置模块的寄存器。

TAP

是Test AccessPort(测试访问端口)的缩写,是芯片内部一个通用的端口,通过TAP可以访问芯片提供的所有数据寄存器(DR)和指令寄存器(IR),对整个TAP的控制是通过TAP控制器(TAP Controller)完成的。

边界扫描

英文叫BoundaryScan,边界扫描的基本思想是在靠近芯片的输入输出管脚(PIN)上设置一个移位寄存器单元,也就是边界扫描寄存器(Boundary-ScanRegister)。当芯片处于调试状态时,边界扫描寄存器可以将芯片和外部输入输出管脚隔离开来,通过边界扫描寄存器单元,可以实现对芯片外部输入输出管脚的观察和控制。对于芯片的输出管脚可以通过与之相连的边界扫描寄存器单元把信号(数据)加载到该引脚中去,对于芯片的输入管脚,也可以通过与之相连的边界扫描寄存器"捕获"该管脚上的输出信号。在正常的运行状态下,边界扫描寄存器对芯片来说是透明的,所以正常的运行不会受到任何影响,这样,边界扫描寄存器提供了一种便捷的途径用于观测和控制所需调试的芯片。另外,芯片管脚上的边界扫描(移位)寄存器单元可以相互连接起来,使芯片的周围形成一个边界扫描链(Boundary-ScanChain),边界扫描链可以串行地输入和输出,通过相应的时钟信号和控制信号,就可以方便地观察和控制处在调试状态下的芯片。