关于openocd的reset_config配置
在openocd的target目录下,目标芯片配置文件中有一行reset_config,用于配置复位操作
参考openocd的手册,该配置可选参数为: none (默认), trst_only, srst_only and trst_and_srst.
http://openocd.org/doc/html/Reset-Configuration.html
首先了解一下srst和trst是什么,参见另一篇随笔《jtag接口定义》
然后该配置与硬件设计有关
- 如果jtag与芯片的trst引脚未连接,则排除包含trst的选项
此情况包括:
- jtag或芯片没有trst引脚。
- 芯片trst引脚存在,但是没有连接到板子的jtag口上,或者io功能复用没有配置为JTAG TRST
trst为jtag标准可选引脚,为了节省芯片io或者pcb版面面积或者接插件成本,可能不用此引脚。
- 如果jtag与板子的系统复位引脚未连接,则排除srst选项
- jtag没有srst引脚。
- srst和trst不同,它通常连接的是核心板的复位电路,所以不要去芯片手册的jtag部分去找这个引脚,
因为实际上它连的是芯片的reset引脚
其他srst可选参数包括:
- adapter_nsrst_assert_width: srst复位时,复位脉宽时间,单位毫秒
- adapter_nsrst_delay: srst复位后,延迟多少时间允许openocd再次操作jtag,单位毫秒
- srst_gates_jtag或srst_nogate: srst复位期间,是否关闭jtag clock输出,默认为srst_gates_jtag关闭
- connect_deassert_srst(默认)或connect_assert_srst: 连接目标的时候是否执行srst复位。前置条件为配置了srst_nogate
- srst_open_drain(默认)或srst_push_pull: 根据srst线路驱动类型选择开漏或者推挽模式