对华为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引脚和复位引脚的定义。

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
RT1180的JTAG调试可以使用openocd软件和相应的JTAG硬件进行。首先,需要准备RT1180的JTAG配置文件和openocd的配置文件。JTAG配置文件可以从JTAG厂商处获取,而openocd的配置文件可以根据目标平台进行相应的配置。\[1\]\[2\] 在进行JTAG调试之前,需要确保已经安装了openocd软件,并且JTAG硬件已经连接到目标设备。可以使用JTAG硬件如Jlink v8或者BusBlaster V3C。\[1\] 接下来,可以使用openocd软件来进行RT1180的JTAG调试。可以使用命令行输入相应的openocd命令来启动调试会话。具体的命令可以根据openocd的配置文件进行设置。\[2\] 需要注意的是,JTAG调试的具体步骤和命令可能会因为不同的硬件和软件版本而有所差异。因此,在进行JTAG调试之前,建议查阅相关的文档和资料,以确保正确的配置和操作。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [对华为HG255D路由器进行JTAG调试进一步研究](https://blog.csdn.net/zouyulong2010/article/details/82193862)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [OpenOCD安装与使用(JTAG调试)](https://blog.csdn.net/qq_36393978/article/details/112509307)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值