OpenOCD(一):什么是OpenOCD&调试适配器硬件

OpenOCD由Dominic Rath创建,作为2005年毕业论文的一部分 在奥格斯堡应用科学大学(http://www.hs-augsburg.de)。 从那时起,该项目已发展成为一个活跃的开源项目, 由来自世界各地。

一、什么是OpenOCD?

什么是OpenOCD

开放式片上调试器(OpenOCD)旨在提供调试,嵌入式目标的系统内编程和边界扫描测试设备。

它是在调试适配器的帮助下完成的,该适配器是一个小型硬件模块,有助于提供正确的类型向正在调试的目标发出电信号。这些是必需,因为调试主机(运行 OpenOCD 的主机)不会通常对此类信令或连接器具有本机支持需要连接到目标。

此类调试适配器支持一个或多个传输协议,每个都涉及不同的电信号(并使用在该信令之上的不同消息传递协议)。那里调试适配器的类型很多,没有统一性的名称。

这些适配器有时打包为离散加密狗,它们通常可以称为硬件接口加密狗。 一些开发板也直接集成它们,这可能会让开发板直接连接到调试通过 USB 主机(有时也通过 USB 为其供电)。

例如,JTAG适配器支持JTAG 信令,用于通信在目标板上使用符合 JTAG (IEEE 1149.1)标准的 TAP。 TAP是一个“测试访问端口”,一个处理特殊指令和数据的模块。TAP 以菊花链形式连接在和在芯片和电路板之间。JTAG支持调试和边界扫描操作。

还有支持串行线调试 (SWD) 的 SWD 适配器 与一些较新的 ARM 内核通信以及调试的信号同时支持 JTAG 和 SWD 传输的适配器。仅支持 SWD 调试,而JTAG支持边界扫描操作。

对于某些芯片,还有编程适配器用于将代码写入闪存的特殊传输,没有支持片上调试或边界扫描。 (在撰写本文时,OpenOCD 不支持此类非调试适配器)。

  • 加密狗:OpenOCD目前支持多种类型的硬件加密狗: 基于 USB、基于并行端口和其他运行的独立机箱内部的OpenOCD。请参阅调试适配器硬件。

  • GDB 调试:它允许ARM7(ARM7TDMI和ARM720t),ARM9(ARM920T, ARM922T, ARM926EJ–S, ARM966E–S), XScale (PXA25x, IXP42x), Cortex-M3 (Stellaris LM3、意法半导体STM32和Energy Micro EFM32)和 基于英特尔 Quark (x10xx) 的内核将通过 GDB 协议进行调试。

  • 闪存编程:支持外部闪存写入 CFI 兼容的 NOR 闪存(Intel 和 AMD/Spansion 命令集)和几个 内部闪光灯(LPC1700、LPC1800、LPC2000、LPC4300、AT91SAM7、AT91SAM3U、 STR7x、STR9x、LM3、STM32x 和 EFM32)。初步支持各种NAND闪存 包括控制器(LPC3180、Orion、S3C24xx 等)。

    扫描二维码关注公众号,回复: 16001161 查看本文章

OpenOCD 网站

OpenOCD网站提供来自社区的最新公共新闻:

http://openocd.org/

最新用户指南:

您现在正在阅读的用户指南可能不是最新的 可用。更新代码的版本可能可用。 它的HTML表单定期发布在:

http://openocd.org/doc/html/index.html

PDF表格同样发布在:

http://openocd.org/doc/pdf/openocd.pdf

OpenOCD用户论坛

有一个由SparkFun主办的OpenOCD论坛(phpBB), 这可能对您有所帮助。请注意,如果您愿意 任何引起开发人员注意的事情,你 应该将其发布到 OpenOCD 开发人员邮件列表 而不是这个论坛。

http://forum.sparkfun.com/viewforum.php?f=18

OpenOCD 用户的邮件列表

OpenOCD用户邮件列表提供了主要的方法 用户之间的通信:

https://lists.sourceforge.net/mailman/listinfo/openocd-user

OpenOCD IRC

支持也可以在 irc: irc://irc.libera.chat/openocd 上找到

2 调试适配器硬件

定义:加密狗:插入计算机并用作 一个适配器…[截图]

在 OpenOCD 的情况下,这通常是指一个小型适配器 通过 USB 或并行端口连接到计算机。

2.1 选择加密狗

选择加密狗时,您应该记住几件事。

运输它是否支持您需要的通信类型? OpenOCD主要关注JTAG。您的版本也可能支持 与目标设备通信的其他方式。
电压您的目标电压是多少 - 1.8、2.8、3.3 或 5V? 您的加密狗是否支持它?您可能需要一个电平转换器。
引脚排列您的目标板使用什么引脚排列? 您的加密狗是否支持它?你也许可以使用跳线 电线或“章鱼”连接器,用于转换引脚排列。
连接您的计算机是否具有 USB、并行或 需要以太网端口?
RTCK您是否希望将其与 ARM 芯片和具有 RTCK 支持(也称为“自适应时钟”)?

2.2 基于 USB FT2232

市场上有许多USB JTAG加密狗,其中许多是基于 在“未来技术设备国际”(FTDI)的芯片上被称为FTDI FT2232;

这是一个USB全速(12 Mbps)芯片。 有关详细信息,请参阅:http://www.ftdichip.com。 在2009年夏季,这些FTDI的USB高速(480 Mbps)版本芯片开始在JTAG适配器中可用。

2012年左右,一个新的 变体出现 - FT232H - 这是FT2232H的单通道版本。 (使用这些高速FT2232H或FT232H芯片的适配器可能支持自适应 计时。

FT2232芯片足够灵活,可以支持其他一些芯片运输选项,例如 SWD 或用于 编程一些芯片。他们有两个沟通渠道, 一个可以同时用于UART适配器 另一个用于提供调试适配器。

此外,一些开发板集成了FT2232芯片作为 内置低成本调试适配器和 USB 转串行解决方案。

usbjtag
Link http://elk.informatik.fh-augsburg.de/hhweb/doc/openocd/usbjtag/usbjtag.html
jtagkey
参见: http://www.amontec.com/jtagkey.shtml
jtagkey2
参见:http://www.amontec.com/jtagkey2.shtml
oocdlink
参见:http://www.oocdlink.com 作者:Joern Kaipf
信号泽
见: http://www.signalyzer.com
Stellaris评估板
参见:http://www.ti.com - Stellaris评估板 捆绑基于 FT2232 的 JTAG 和 SWD 支持,可用于调试 恒星芯片。使用单独的JTAG适配器是可选的。 这些板也可以在“直通”模式下用作JTAG适配器 到其他目标板,禁用恒星芯片。
TI/发光 ICDI
请参见:http://www.ti.com - TI/发光在线调试 接口 (ICDI) 板包含在 Stellaris LM3S9B9x 中 评估套件。就像另一个不可拆卸的FT2232支架一样 Stellaris评估板,它们可用于调试其他目标板。
olimex-jtag
参见: http://www.olimex.com
Flyswatter/Flyswatter2
参见:http://www.tincantools.com
Turtelizer2
请参阅: Turtelizer 2 或 http://www.ethernut.de

链接: http://www.hitex.com/index.php?id=383
stm32stick链接
http://www.hitex.com/stm32-stick
axm0432_jtag
公理AXM-0432链路 http://www.axman.com - 注意:此JTAG未出现 自 2012 年 <> 月起不再可用。
科尔蒂诺
链接 http://www.hitex.com/index.php?id=cortino
DLP-USB1232H
链路 http://www.dlpdesign.com/usb/usb1232h.shtml
数字-HS1
链接 http://www.digilentinc.com/Products/Detail.cfm?Prod=JTAG-HS1
基于 FT2232H 的开放式
链路 http://code.google.com/p/opendous/wiki/JTAG (开放硬件)。
基于JTAG的撬锁微型2
链路 http://www.distortec.com/jtag-lock-pick-tiny-2 FT232H
GW16042
链接:基于 http://shop.gateworks.com/index.php?route=product/product&path=70_80&product_id=64 FT2232H

2.3 USB-JTAG / Altera USB-Blaster 兼容

这些设备也显示为 FTDI 设备,但不是 协议与FT2232设备兼容。然而,他们是 协议彼此兼容。USB-JTAG器件通常由 FT245后跟理解特定协议的CPLD, 或者使用其他一些硬件模拟此协议。

它们可能出现在不同的 USB VID/PID 下,具体取决于特定的 产品。驱动程序可以配置为搜索任何 VID/PID 对 (请参阅驱动程序命令部分)。

USB-JTAGKolja Waschk 的 USB Blaster 兼容适配器
链接: http://ixo-jtag.sourceforge.net/
Altera USB-Blaster
Link: http://www.altera.com/literature/ug/ug_usb_blstr.pdf

2.4 基于 USB J-Link

SEGGER J-Link 适配器有多个 OEM 版本。是的 基于微控制器的JTAG适配器的示例,它使用一个 AT91SAM764 内部。

赛格J-Link
链接:http://www.segger.com/jlink.html
Atmel SAM-ICE(仅适用于 Atmel 芯片!
链接: http://www.atmel.com/tools/atmelsam-ice.aspx
IAR J-Link

2.5 基于 USB RLINK

Raisonance有一个名为RLink的适配器。它以精简的形式存在于STM32底漆上, 永久连接到JTAG线。它也存在于STM32 Primer2上,但连接用于 SWD而不是JTAG,因此不受支持。

存在理由 RLink
链接:http://www.mcu-raisonance.com/rlink-debugger-programmer__microcontrollers__tooltool__T018:4cn9ziz4bnx6.html
STM32 引物
链接: http://www.stm32circle.com/resources/stm32primer.php
STM32 底漆2
链接: http://www.stm32circle.com/resources/stm32primer2.php

2.6 USB ST-LINK based

意法半导体有一款名为ST-LINK的适配器。 它们仅适用于意法半导体芯片,特别是STM32和STM8。

ST-LINK
这是可独立使用的,也可以作为某些套件的一部分使用,例如。STM32VL发现。
链接: http://www.st.com/internet/evalboard/product/219866.jsp
ST-LINK/V2
这是独立提供的,也可以作为某些套件的一部分使用,例如。STM32F4发现。
链接: http://www.st.com/internet/evalboard/product/251168.jsp
STLINK-V3
这是独立提供的,也可以作为某些套件的一部分提供。
链接: http://www.st.com/stlink-v3
STLINK-V3PWR
这是独立可用的。 除了调试器功能外,探测器还包括一个 SMU(源 测量单元),旨在分析代码期间的功耗 执行。OpenOCD 不支持 SMU。
链接: http://www.st.com/stlink-v3pwr
有关信息,原始 ST-LINK 使用大容量存储 USB 类枚举;然而 它的实现完全被破坏了。结果是这会导致 Linux 下的问题。 最简单的解决方案是使用以下方法之一让 Linux 忽略 ST-LINK:

modprobe -r usb-storage && modprobe usb-storage quirks=483:3744:i
将“Options USB-Storage Quirks=483:3744:I”添加到/etc/modprobe.conf

2.7 USB TI/Stellaris ICDI 基于

德州仪器有一个名为ICDI的适配器。 不要与最初安装在其上的基于 FTDI 的适配器混淆 评估板。这是安装在Stellaris LaunchPad上的适配器。

2.8 USB CMSIS-DAP based

新唐有一个名为Nu-Link的适配器。 它既可作为独立加密狗提供,也可嵌入开发板上。 它支持SWD,串行端口桥接器和用于固件更新的大容量存储。 Nu-Link v1 和 v2 均受支持。

2.9 基于 USB CMSIS-DAP

ARM发布了一个名为CMSIS-DAP的接口标准,简化了连接 基于 ARM Cortex 的目标的调试器 http://www.keil.com/support/man/docs/dapdebug/dapdebug_introduction.htm。

2.10 其他

USBprog
Link:http://shop.embedded-projects.net/ - 使用 Atmel MEGA32 和 UBN9604
USB - 预
链接:http://tools.asix.net/prg_presto.htm
Versaloon-Link Link
: http://www.versaloon.com
ARM-JTAG-EW
链接: http://www.olimex.com/dev/arm-jtag-ew.html

集链接:http://dangerousprototypes.com/bus-pirate-manual/
opendous
Link: http://code.google.com/p/opendous-jtag/ - 使用 AT90USB162
电子棒
链接:http://code.google.com/p/estick-jtag/
Keil ULINK v1
链接: http://www.keil.com/ulink1/
TI XDS110 调试探针
链接: https://software-dl.ti.com/ccs/esd/documents/xdsdebugprobes/emu_xds110.html
链接: https://software-dl.ti.com/ccs/esd/documents/xdsdebugprobes/emu_xds_software_package_download.html#xds110-support-utilities

猜你喜欢

转载自blog.csdn.net/weixin_45264425/article/details/132016236