网上对于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调试的进一步研究相关推荐

  1. 在华为HG255D路由器上刷了OpenWRT,实现了多拨,下载速度超快

    2019独角兽企业重金招聘Python工程师标准>>> 在HG255D上刷了OpenWRT,用NWan实现了多拨,家里20M宽带现在成了60M(3拨),下载速度最高能到7M/s,速度 ...

  2. jtag调试 c语言,研究基于IEEE1149.7标准的CJTAG测试设计方法

    摘要:在深入研究IEEE 1149.7标准的基础上,针对测试问题设计了CJTAG测试控制器,实现了T0,T1,T3和T4层级的主要功能.对该控制器的各个功能进行了仿真验证.结果表明该控制器产生的测试信 ...

  3. 华为HG255d二级级联路由时上下级互访解决

    2013/11/15 电信宽带安装时送的华为HG255d路由器,因为某原因破解了,用作了二级路由. 突然需要挂在一级路由上的PC要访问二级路由上的设备.作此记录.(实际上早就解决了,但记录找不到了,又 ...

  4. 华为交换机路由器常用命令

    2019独角兽企业重金招聘Python工程师标准>>> 华为交换机路由器常用命令 网络技术  /wangzhijun1743  发表于2007-03-24, 12:25 交换机命令 ...

  5. CISCO与华为3COM路由器配置差别

    华为路由器与同档次的CISCO路由器在功能特性与配置界面上完全一致,有些方面还根据国内用户的需求作了很好的改进.例如中英文可切换的配置与调试界面,使中文用户再也不用面对着一大堆的英文专业单词而无从下手 ...

  6. 华为4G路由器2虚拟服务器,华为4g2pro路由器虚拟服务器设置

    华为4g2pro路由器虚拟服务器设置 内容精选 换一换 用户在华为云华东.华北以及华南区域分别各创建了一个VPC,同时,华东VPC通过云专线(DC)与云下IDC互通,用户部署在云下IDC机房的服务器想 ...

  7. 华为AR28-11路由器配置

    公司使用华为AR28-11路由器,宽带接入. 现使用2M光纤接入, 地址:124.117.254.* 255.255.255.252. 公司电脑使用192.168.1.0 255.255.255.0 ...

  8. 华为4G路由器成软银快速部署宽带业务新利器

    随着全球4G网络的快速部署和发展,华为4G无线路由器凭借即插即用.卓越的无线性能.良好的Wi-Fi覆盖等优点,已经成为各大运营商大力推进优质宽带业务的新利器,有效地帮助运营商在竞争和用户体验上获得先机 ...

  9. 华为路由器 android,华为智能路由器app

    华为智能路由器app是一款很受欢迎的智能路由设备控制软件,内置2.4GHz/5GHz双频巴伦天线,最佳天线倾角,更全面的Wi-Fi覆盖:双天线自成30度最佳倾角,降低天线之间的相关性:每个天线性能都发 ...

  10. 华为k662c的虚拟服务器,华为k662c路由器怎么设置

    小路 回答数:1025 2021-07-16 14:10:32 赞 0 华为k662c路由器怎么设置?华为k662c路由器是一个三合一的设备,有3种工作模式.一种是光猫模式,另外一种是无线路由器模式, ...

最新文章

  1. 将MongoDB服务加入随机启动
  2. Photoshop 混色模式学习
  3. C++ OOP学习记录
  4. 第十天2017/04/25(2、企业财富库:)
  5. SAPCAR 压缩解压软件的使用方法
  6. hpg8服务器系列指示灯意思,HP Proliant GEN8服务器指示灯说明
  7. jmeter更改java内存,jmeter内存溢出解决方法
  8. JDK源码包结构分类
  9. 一道小学数学题引发的“纷争” 产科医生给出解答
  10. js 获取当前gmt时间_javascript-如何将日期转换为GMT?
  11. 极简代码(八)—— binary activation function
  12. kubernetes视频教程笔记 (12)-容器探针
  13. 古风素材无水印免费下载
  14. java项目开发经验总结,值得收藏!
  15. Linux工具参考篇(网摘)
  16. 为公司添加以网站作为邮箱后缀的企业邮箱
  17. ios13测试版怎么卸载软件,苹果iOS13怎么卸载软件 iOS13删除软件教程
  18. 如何做好网络推广?软文文案在做网络推广上的策略分享
  19. shell in find exclude
  20. 如何打开探月工程数据发布与信息服务系统下载的数据

热门文章

  1. C语言学习资源汇总,史上最全面总结,没有之一
  2. win7 64位系统下载
  3. [Ubuntu] fg、bg让你的进程在前后台之间切换
  4. java整蛊小游戏源码_java小游戏源代码
  5. 在D365/AX2012中设计SSRS
  6. Oracle数据库学习笔记(十五)--自连接
  7. blender源代码分析----第三方库的说明
  8. mysql客户端字符集_设置MySQL客户端连接使用的字符集
  9. Spring源码下载步骤
  10. 读完两遍《STL源码剖析》后,我发现了一些辛秘