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

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


一、什么是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 等)。

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

目录
相关文章
|
6月前
|
网络协议 Unix Linux
OpenOCD(五):调试适配器配置
OpenOCD(五):调试适配器配置
382 0
|
1月前
|
Ubuntu Linux 程序员
交叉编译valgrind在嵌入式设备上调试程序
交叉编译valgrind在嵌入式设备上调试程序
|
6月前
|
小程序 存储控制器 Android开发
OPENJTAG调试学习(二):OpenOCD、OpenJTAG 烧写程序、调试程序
OPENJTAG调试学习(二):OpenOCD、OpenJTAG 烧写程序、调试程序
607 0
|
Windows Python
MicroPython 玩转硬件系列3:上电自动执行程序
MicroPython 玩转硬件系列3:上电自动执行程序
|
存储 Linux Android开发
会C/C++就可以开发Linux/Android应用程序?替代传统串口屏的Yoxios了解一下!
会C/C++就可以开发Linux/Android应用程序?替代传统串口屏的Yoxios了解一下!
203 0
|
XML 测试技术 网络安全
开发调试工具:可编程 USB 转串口适配器开发板
首先声明一下,大家都是搞硬件开发的,这几种接口当然是很简单的事,但有些时候对于一个新的设备或者芯片的测试,有个现成的工具当然更顺手,节省时间,也更可靠嘛。
|
机器人 Linux C语言
openwrt开发使用-选择芯片编译烧录
openwrt开发使用-选择芯片编译烧录
571 1
openwrt开发使用-选择芯片编译烧录
|
Linux
树莓派内核驱动编写——添加与调用
树莓派内核驱动编写——添加与调用
462 0
|
存储 IDE Linux
【详解】嵌入式开发中固件的烧录方式
版本:v1.2   Crifan Li 摘要 本文主要介绍了嵌入式开发过程中,将固件从PC端下载到开发板中的各种方式,主要包括NFS挂载,Nand Flash和Nor Flash,USB,RS232,网卡NIC等方式。
1892 0
|
Android开发
Android系统固件定制方式
Android系统固件定制方式
391 0