对华为HG255D路由器进行JTAG调试的进一步研究
网上对于HG255D路由器进行救砖的方法时有时会失败,特别是引导代码uboot完全被破坏或者flash被清空的情况下,除了把flash焊下来,就只能使用jtag的方式进行恢复了。网上关于华为HG255D路由器的JTAG定义只有GND,TDO,TDI,TMS,TCLK,VREF,NTRST共7根线的连接方式,由于缺少NSRST的连线定义,使得当引导代码uboot完全被破坏或者flash被清空的情况下,有时候甚至通过jtag也不能救砖,比如运行某个命令时,在telnet界面只是增加一行空白行,没有预期的运行结果输出,或者看到pc为0x00000000的输出。
经过对RT3052 CPU的datasheet引脚定义发现PORST_N引脚为CPU的复位引脚,在JTAG接口里面对应于NSRST。将该引脚连接到JTAG,可以使用JTAG软件让CPU复位,而jtag的TAP不复位,从而使CPU一开始就进入调试状态。使用的JTAG调试软件为openocd 0.9.0,JTAG硬件可以是Jlink v8或者BusBlaster V3C。
在OpenOCD配置文件中需要增加关于复位的引脚定义,表明cpu的复位和jtag的TAP复位是分别控制的。如下:
adapter_nsrst_delay 100
jtag_ntrst_delay 100
reset_config trst_and_srst
在OPENOCD的Telnet连接中输入reset halt,就可以使CPU复位并暂停于第一条指令地址0xbfc00000处,此时再执行ralink_init,load_image uboot-ram.bin 0x200000,resume 0x200000等命令就可以将RAM版boot程序导入到内存执行了。然后可以通过内存运行的uboot进行flash的重新写入操作。这样就算原来flash中的代码完全被破坏也可以进行修复了。
最初的目的是能够用来学习路由相关的嵌入式软件开发,而不是救砖。利用openocd提供的gdb功能可以实现软件的单步调试和增加断点等功能。由于现在hg255d路由器在网上的价格非常便宜(10-20元),加上一个jtag仿真器就可以组成一套性价比较高的嵌入式开发学习设备了。可以用来学习MIPS的嵌入式软件开发,如uboot和路由器操作系统OpenWrt等。
最后说下,在改写flash之前要先把flash整个备份下来,之后不管怎么操作都可以利用这个备份文件将hg255d恢复到原来的样子,以便进行比较研究。特别是有关无线配置参数部分的内容,如果没有备份,从别的hg255d板子上拷贝的无线配置参数不一定适合现在的板子。
图1
图1为HG255D板子上关于JTAG引脚的连线点定义。
图2
图2为焊接好JTAG连线后的样子。
图3
图3 为启动openocd后运行reset命令后jtag响应情况。
图4
图4为运行内存板uboot后的过程。此时启用了work-area-phys,速度达到85KB/s。
图5
图5为关闭work-aera-phys,速度降为2KB/s。
图6
图6为拷贝hg255d的flash中数据到PC机上过程。
图7
图7为向hg255d中flash写入uboot过程。执行命令前要关闭work-area-phys。每次只写256字节,比较慢。
图8
图8为openocd后台进程情况。
图9
图9为擦除flash过程。一个sector为128K字节。
图10
图11
图10和图11为rt3052的datasheet中关于jtag引脚和复位引脚的定义。
对华为HG255D路由器进行JTAG调试的进一步研究相关推荐
- 在华为HG255D路由器上刷了OpenWRT,实现了多拨,下载速度超快
2019独角兽企业重金招聘Python工程师标准>>> 在HG255D上刷了OpenWRT,用NWan实现了多拨,家里20M宽带现在成了60M(3拨),下载速度最高能到7M/s,速度 ...
- jtag调试 c语言,研究基于IEEE1149.7标准的CJTAG测试设计方法
摘要:在深入研究IEEE 1149.7标准的基础上,针对测试问题设计了CJTAG测试控制器,实现了T0,T1,T3和T4层级的主要功能.对该控制器的各个功能进行了仿真验证.结果表明该控制器产生的测试信 ...
- 华为HG255d二级级联路由时上下级互访解决
2013/11/15 电信宽带安装时送的华为HG255d路由器,因为某原因破解了,用作了二级路由. 突然需要挂在一级路由上的PC要访问二级路由上的设备.作此记录.(实际上早就解决了,但记录找不到了,又 ...
- 华为交换机路由器常用命令
2019独角兽企业重金招聘Python工程师标准>>> 华为交换机路由器常用命令 网络技术 /wangzhijun1743 发表于2007-03-24, 12:25 交换机命令 ...
- CISCO与华为3COM路由器配置差别
华为路由器与同档次的CISCO路由器在功能特性与配置界面上完全一致,有些方面还根据国内用户的需求作了很好的改进.例如中英文可切换的配置与调试界面,使中文用户再也不用面对着一大堆的英文专业单词而无从下手 ...
- 华为4G路由器2虚拟服务器,华为4g2pro路由器虚拟服务器设置
华为4g2pro路由器虚拟服务器设置 内容精选 换一换 用户在华为云华东.华北以及华南区域分别各创建了一个VPC,同时,华东VPC通过云专线(DC)与云下IDC互通,用户部署在云下IDC机房的服务器想 ...
- 华为AR28-11路由器配置
公司使用华为AR28-11路由器,宽带接入. 现使用2M光纤接入, 地址:124.117.254.* 255.255.255.252. 公司电脑使用192.168.1.0 255.255.255.0 ...
- 华为4G路由器成软银快速部署宽带业务新利器
随着全球4G网络的快速部署和发展,华为4G无线路由器凭借即插即用.卓越的无线性能.良好的Wi-Fi覆盖等优点,已经成为各大运营商大力推进优质宽带业务的新利器,有效地帮助运营商在竞争和用户体验上获得先机 ...
- 华为路由器 android,华为智能路由器app
华为智能路由器app是一款很受欢迎的智能路由设备控制软件,内置2.4GHz/5GHz双频巴伦天线,最佳天线倾角,更全面的Wi-Fi覆盖:双天线自成30度最佳倾角,降低天线之间的相关性:每个天线性能都发 ...
- 华为k662c的虚拟服务器,华为k662c路由器怎么设置
小路 回答数:1025 2021-07-16 14:10:32 赞 0 华为k662c路由器怎么设置?华为k662c路由器是一个三合一的设备,有3种工作模式.一种是光猫模式,另外一种是无线路由器模式, ...
最新文章
- 将MongoDB服务加入随机启动
- Photoshop 混色模式学习
- C++ OOP学习记录
- 第十天2017/04/25(2、企业财富库:)
- SAPCAR 压缩解压软件的使用方法
- hpg8服务器系列指示灯意思,HP Proliant GEN8服务器指示灯说明
- jmeter更改java内存,jmeter内存溢出解决方法
- JDK源码包结构分类
- 一道小学数学题引发的“纷争” 产科医生给出解答
- js 获取当前gmt时间_javascript-如何将日期转换为GMT?
- 极简代码(八)—— binary activation function
- kubernetes视频教程笔记 (12)-容器探针
- 古风素材无水印免费下载
- java项目开发经验总结,值得收藏!
- Linux工具参考篇(网摘)
- 为公司添加以网站作为邮箱后缀的企业邮箱
- ios13测试版怎么卸载软件,苹果iOS13怎么卸载软件 iOS13删除软件教程
- 如何做好网络推广?软文文案在做网络推广上的策略分享
- shell in find exclude
- 如何打开探月工程数据发布与信息服务系统下载的数据