首页
社区
课程
招聘
华为光猫HG8245H救砖笔记④为HG8245H配置OpenOCD调试环境
发表于: 2017-2-19 22:39 9444

华为光猫HG8245H救砖笔记④为HG8245H配置OpenOCD调试环境

bxc 活跃值
6
2017-2-19 22:39
9444

原文发在我的blog:1bcK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0D9L8$3N6Q4x3X3g2U0M7$3g2J5M7$3!0X3N6q4)9J5k6h3&6W2N6q4)9J5c8X3q4J5j5$3S2A6N6X3g2K6i4K6u0r3x3e0b7%4

主要讲了OpenOCD的配置文件。

正文:

准备工具:

Windows下使用OpenOCD+FT2232H进行片上调试需要以下工具:

HG8245H的硬件配置:

  • CPU: Hisilicon SD5115 (基于ARM Cortex-A9)
  • RAM:Hynix H5TQ1G63EFR-H9C (128 MBytes; 64Mbits x 16; DDR3-1333 9-9-9)
  • Nand Flash:Spansion S34ML01G1-00TFI000 (128 MBytes; 48 nm SLC; 100,000 P/E)
  • WLAN:Broadcom BCM43217 (802.11 b/g/n; 2×2 MIMO)

OpneOCD配置文件概述:

使用OpenOCD来实现片上调试的最主要一步,就是编写OpenOCD的配置脚本文件。OpenOCD新版本的每次发布,或多或少都会更新一些自带的配置脚本文件。配置文件不光是描述如何与目标设备通信,还可以配置使用的JTAG适配器参数,目标设备上的Flash设备等。所以为了灵活的配置硬件,OpenOCD的scripts目录分了很多子目录:interface、cpu、fpga、board等,根据名字,大概可以知道该目录下的配置脚本文件的用途。

HG8245H的配置脚本文件:

这次的调试配置脚本,关于适配器部分我采用附带的FT2232系列配置文件,加以修改。而目标CPU部分,只能参考别的配置文件,自己写一个。具体编写过程就忽略不写了,这里直接放上来我写好的FT2232H的JTAG适配器配置文件和SD5115的配置文件:
ft2232h.cfg:

hi_sd5115_jtag.cfg:

OpenOCD快速启动脚本:

为了方便启动OpenOCD,写了2个bat脚本来实现一键调试:

ft2232h_x64.bat:

open_telnet.bat(telnet的端口号根据实际配置文件,自行更改):

OpenOCD调试测试:

  • 首先为FT2232H替换驱动,因为FT2232H是双通道系列,所以PC上应该有2个设备(在通用串行总线控制器下,应该有USB Serial Converter A和B,2个设备,如果想用A通道做JTAG适配器,就替换USB Serial Converter A),只需要替换一个通道的驱动即可,另一个保留FTDI的驱动,用作UART通信。
  • 连接好HG8245H的JTAG并上拉DBGSEL,然后让CPU进入调试状态(让StartCode找不到UBoot,或者将Flash的RE#引脚与GND短接)。
  • 给HG8245H上电,然后执行ft2232h_x64.bat。

如果JTAG正常的话,OpenOCD的控制台里会输出以下类似的内容:

Open On-Chip Debugger 0.10.0
Licensed under GNU GPL v2
For bug reports, read
aa5K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3!0H3k6h3&6G2j5$3c8Q4x3X3g2G2M7X3N6Q4x3V1k6V1L8$3y4Q4x3V1k6V1L8%4S2&6k6$3g2F1i4K6u0r3j5Y4g2Y4M7#2)9J5k6h3S2@1L8h3H3`.
adapter speed: 30000 kHz
ftdi samples TDO on falling edge of TCK
Error: libusb_open() failed with LIBUSB_ERROR_NOT_SUPPORTED
Info : clock speed 30000 kHz
Info : JTAG tap: sd5115.cpu tap/device found: 0x4ba00477 (mfg: 0x23b (ARM Ltd.), part: 0xba00, ver: 0x4)
Info : DAP transaction stalled (WAIT) – slowing down
Info : DAP transaction stalled (WAIT) – slowing down
Info : DAP transaction stalled (WAIT) – slowing down
Info : sd5115.cpu: hardware has 6 breakpoints, 4 watchpoints

需要注意的是:Error: libusb_open() failed with LIBUSB_ERROR_NOT_SUPPORTED。

该错误其实不是问题,因为FT2232H是双通道的,2个通道的VID,PID都是一样的。并且只替换了通道A的驱动,所以这个错误,可能是打开通道B时出现的,只要OpenOCD的控制台没有一闪而退,就是正常的。

没有问题的话,可以执行open_telnet.bat打开telnet,执行OpenOCD的命令。

如果不知道哪些命令可用,可以在telnet里执行help查看命令帮助,也可以翻看OpenOCD的用户手册




[培训]科锐逆向工程师培训第53期2025年7月8日开班!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 42947
活跃值: (65767)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
2
好文章
2017-2-20 12:07
0
雪    币: 300
活跃值: (284)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
3
大神,请接受我的膝盖。最近也入手了一个华为光猫HS8125  GPON,正在研究怎么在上面看光口的速度。目前无解
2017-2-23 11:37
0
游客
登录 | 注册 方可回帖
返回