栏目导航

45553.com

您的位置: 主页 > 45553.com >

香港正版挂牌硬件学习之通过树莓派操控jtag

时间:2019-11-14

  最近在搞路由器的时候,不小心把CFE给刷挂了,然后发现能通过jtag进行救砖,所以就对jtag进行了一波研究。

  首先是需要进行初始化GPIO的模式,BCM模式对应的针脚排序是上面图中橙色的部门。

  然后可以对各个针脚进行单独设置,比如上图中,把2号针脚设置为输出,3号针脚设置为输入。

  将树莓派对应针脚和路由器的连起来以后,可以运行tjtag-pi程序。但是在运行的过程中却遇到了问题,经常会卡在写flash的时候。通过调整配置,有时是可以写成功的,但是CFE并没有被救回来,备份flash的数据,发现并没有成功写入数据。

  首先是针脚,我见过的设备给jtag一般是提供了5 * 2以上的引脚。其中有一般都是接地引脚,另一半只要知道4个最重要的引脚。

  jtag大致架构如上图所示,其中TAP-Controller的架构如下图所示:

  jtag的核心是TAP-Controller,通过解析TMS数据,来决定输入和输出的关系。所以我们先来看看TAP-Controller的架构。

  从上面的图中我们可以发现,在任何状态下,输出5次1,都会回到TEST LOGIC RESET状态下。所以在使用jtag前,我们先通过TMS端口,发送5次为1的数据,jtag的状态机将会进入到RESET的复原状态。

  当TAP进入到SHIFT-IR的状态时,Instruction Register将会开始接收TDI传入的数据,当输入结束后,进入到UPDATE-IR状态时将会解析指令寄存器的值,随后决定输出什么数据。

  讲到这里,就出现一个问题了,TMS就一个端口,jtag如何知道TMS每次输入的值是多少呢?这个时候就需要用到TCK端口了,欧美创投圈资本方向首次转移NMN成亿万富。该端口可以称为时钟指令。当TCK从低频变到高频时,获取一比特TMS/TDI输入,TDO输出1比特。

  把上面的代码理解清楚后,基本就理解了TAP的逻辑。接下来就是指令的问题了,指令寄存器的长度是多少?指令寄存器的值为多少时是有意义的?

  不同的CPU对于上面的答案都不一样,通过我在网上搜索的结果,每个CPU应该都有一个bsd(boundary scan deion)文件。本篇文章研究的CPU型号是BCM5354,但是我并没有在网上找到该型号CPU的bsd文件。我只能找了一个相同厂商不同型号的CPU的bsd文件进行参考。

  当指令寄存器的值为IDCODE的时候,IDCODE寄存器的输出通道开启,我们来看看IDCODE寄存器:

  因为我也是个初学者,香港正版挂牌!边界扫描描述文件中的内容并不是都能看得懂,比如在边界扫描文件中并不能看出BYPASS指令是做什么的。但是在其他文档中,得知BYPASS寄存器一般是用来做测试的,在该寄存器中,香港财神爷高手论坛暗影之剑有单机版吗输入和输出是直连,可以通过比较输入和输出的值,来判断端口是否连接正确。

  另外还有边界扫描寄存器一大堆数据,也没完全研究透,相关的资料少的可怜。而且也找不到对应CPU的文档。

  当研究到这里的时候,我只了解了jtag的基本原理,只会使用两个基本的指令(IDCODE, BYPASS)。但是对我修砖没任何帮助。

  没办法,我又回头来看tjtag的源码,在tjtag中定义了几个指令寄存器的OPCODE:

  照抄着tjtag中flash AMD的操作,可以成功对flash进行擦除,写入操作读取操作。但是却不知其原理。

  接下来将会对该flash文档进行研究,并在之后的文章中分享我后续的研究成果。



友情链接:

www.501982.com,大众六合网心水论坛,www501982.com,45553.com,kj803.com,铁算盘开奖直播,2017年开奖号,448kj开奖结果。

最快开奖结果现场直播| 香港本期开奖结果| 四海图库总站| www.68149.com| 二四六天天好彩免费资料大全| 香港平特一肖| 香港跑狗图| 买码是什么意思| 香港本期开奖结果| www.807988.com| www.76754.com| 财神网站|