关于openocd的reset_config配置 - zlyang

时间:2024-02-21 14:41:05

关于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的选项
    此情况包括:
  1. jtag或芯片没有trst引脚。
  2. 芯片trst引脚存在,但是没有连接到板子的jtag口上,或者io功能复用没有配置为JTAG TRST
    trst为jtag标准可选引脚,为了节省芯片io或者pcb版面面积或者接插件成本,可能不用此引脚。
  • 如果jtag与板子的系统复位引脚未连接,则排除srst选项
  1. jtag没有srst引脚。
  2. srst和trst不同,它通常连接的是核心板的复位电路,所以不要去芯片手册的jtag部分去找这个引脚,
    因为实际上它连的是芯片的reset引脚

其他srst可选参数包括:

  1. adapter_nsrst_assert_width: srst复位时,复位脉宽时间,单位毫秒
  2. adapter_nsrst_delay: srst复位后,延迟多少时间允许openocd再次操作jtag,单位毫秒
  3. srst_gates_jtag或srst_nogate: srst复位期间,是否关闭jtag clock输出,默认为srst_gates_jtag关闭
  4. connect_deassert_srst(默认)或connect_assert_srst: 连接目标的时候是否执行srst复位。前置条件为配置了srst_nogate
  5. srst_open_drain(默认)或srst_push_pull: 根据srst线路驱动类型选择开漏或者推挽模式