本文作者:bigbat
今天我测试的平头哥RVB2601板子”变砖“了,还好最后救活了,就把整个过程记录一下。
本来我想测试一下CH2601是不是能够使用openocd,于是就试试看能不能和openocd通讯。
第一步:
打开CSKYFlashProgrammer.exe,选择好文件,点击开始start
没有成功,程序提示:Debugger server没有启动。
第二步:
进入到F:\rvb2601\CSkyDebugServer\bin目录启动CSkyDebugServer.exe
发现调试器无法连接
可能信息不是这样子的吧,反正是连不上。
这个画面是对的,ICE Device Select(Idle)中没有任何选项,这时我就按了几下Jtag复位键,也没什么反应。我就把连接Jtag的信号线给拔了下来。再次打开好象
ICE Device Select(Idle)中就有东西了,我这时就点了一下OK,看到好象调试器连上了。
点了一下这里,启动一下Server ,再次打开CSKYFlashProgrammer还是连不上,于是决定不再使用CSKYFlashProgrammer,决定使用openocd脚本手动连接系统。
悲剧的是我找了一圈也没有找到任何关于openocd连接的设置。这其中想了很多办法,包括改造其它芯片的”脚本“都失败了。我就想:是不是jtag的USB驱动的问题呢?接着就找到libusb库中的驱动,安装了几波USB驱动,winusb和usbk、CDC这些都试过,都不能连接到openocd的服务上。后来也就放弃了。
决定不再尝试后也就不折腾了,接着按正常的开发方案继续测试,写好程序后,我就开始下载,这时出现了一个错误,我在从新连接板子,悲剧!板子这时就”变砖“了。
现象是:板的程序没有任何问题也没有修改过,原来的程序可以继续使用,但是jtag无法连接了,随后我把csky从新装了一遍还是无法连接,这时我又到其它的机器上去,安装了一遍结果也是连不上板子,看来板子的jtag固件可能被损坏了。
随后我找到原理图:
发现SWD的引脚是悬空的,即使我找到了固件也没有办法写入到STM32103中了。看来我只有买一个烧写器了。我真是不知道怎么了。
回过神来一想反正都是个坏,我飞两根线试试,于是就找来变压器拆下来的漆包线用刀片刮干净。焊在SWDCLK和SWDDIO上,找来编程器,后又在F:\CSky\CDK\CSKY\CSkyDebugServer\bin\links\CK-Link下找hex文件。
当我把第一个文件cklink_lite.hex写入,试了试没有反应,除了cklink_lite_iap,其它文件都试了试都没反应。我怎么看cklink_lite_iap都不像是能工作的文件。直到最后才把cklink_lite_iap烧了进去。没想到可以。于是赶紧又试了几个项目都可以,这才放心把飞线拆了。后来把最新版的T-HeadDebugServer打开,程序提示我升级!升级也成功了。
通过查看升级说明才知道,原来的版本的USB驱动有问题。我猜测变砖的可能是USB驱动本身问题和我瞎折腾也可能有一定关系。
通过这次救砖我有几点建议:
- 最好下次设计时把升级用的SWD引出来。
- JTAG本身有串口,也最好引出来。
- 资料中应该对一些风险操作给与一定的提示。
本文源自:平头哥芯片开放社区
欢迎关注公众号:芯片开放社区(ID:OCC_THEAD),查看更多应用实战文章。