这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » OpenOCD介绍以及上手

共3条 1/1 1 跳转至

OpenOCD介绍以及上手

菜鸟
2009-04-05 21:12:18     打赏
【介绍】
OpenOCD是一个开源的JTAG上位机程序,主页在http://openocd.berlios.de/web/,论坛在http://forum.sparkfun.com/viewforum.php?f=18。目前支持多种芯片,可以简单查看src/target/target.c中的target_types的定义就可以了解支持哪些处理器了:
target_type_t *target_types[] =
{
 &arm7tdmi_target,
 &arm9tdmi_target,
 &arm920t_target,
 &arm720t_target,
 &arm966e_target,
 &arm926ejs_target,
 &feroceon_target,
 &xscale_target,
 &cortexm3_target,
 &arm11_target,
 &mips_m4k_target,
 NULL,
};
并且支持的芯片还在不断增加中。
支持的编程工具,主要是并口的JTAG工具和基于FT2232的JTAG工具。当然,由于源代码都是公开的,并且可以自己编译,所以增加自己定义的工具的驱动也是相当容易的。

【编译安装】
自己编译安装OpenOCD可以参考DIY Versaloon中的DIY OpenOCD部分。
一定要注意doc/openocd.pdf文档(需要编译生成),里面有各个配置和命令的详细说明。

【配置】
OpenOCD需要针对不同的JTAG工具和不同的目标芯片,配置一个配置文档。
一般而言,配置文档分为4个部分
1.分别是定义各个接口的Port(比如telnet_port,gdb_port,tcl_port)
2.JTAG工具的定义
3.目标的定义
4.脚本的定义
接口Port的定义一般如下(非特殊情况,无需修改,定义了一些端口号)
telnet_port 4444
gdb_port 3333
tcl_port 6666
JTAG工具的定义,一般在工具的主页里会提供,而且针对不同的目前芯片,这个定义不需要修改。
目前芯片的定义,是用来告诉OpenOCD,你的JTAG链是如何连接的(以什么顺序,链接了那些目标芯片)。OpenOCD支持的芯片的定义,基本在src/target/target目录中都可以找到对应的配置文件。
脚本的定义,对于最新版本的OpenOCD尤为重要(最新的OpenOCD去掉了一些配置,而使用脚本的方式来实现)。脚本主要实现了如何操作目标芯片,不同的目标芯片的操作方式会有区别。
OpenOCD的配置基本可以使用现成的一些配置,一般在使用的JTAG工具的主页上可以找到。

【使用】
OpenOCD的启动可以直接调用openocd.exe程序,改程序会自动寻找openocd.cfg默认配置。当然,可以使用-f参数来指定使用的配置文件,比如:
openocd -f openocd_stm32.cfg
如果配合Makefile来实现编译完成后自动下载固件的功能的话,可以使用OpenOCD配置文件的脚本配置部分,以脚本的方式来实现自动的固件下载。
如果需要使用GDB或者手动操作目标设备的话,在配置文件的脚本部分中,只需要初始化目标芯片的脚本即可。然后可以通过telnet或者gdb或者tcl来连接上OpenOCD。

【示例】
比如使用STM32的OpenOCD支持的时候,可以键入命令openocd -f openocd_stm32.cfg,界面如下:

然后可以使用telnet到4444端口(telnet localhost 4444),之后可以键入各种操作命令:

当然,也可以使用gdb或者IAR EWARM5.11以后支持的GDB Server的方式连接上OpenOCD来实现编程和调试的功能。



关键词: OpenOCD     介绍     以及     上手     芯片     可以     ta    

院士
2009-04-07 12:35:28     打赏
2楼

死鱼,好久没上了~~~

看不到图啊


高工
2011-08-30 10:37:50     打赏
3楼

★被水淹死的鱼★ 呼唤高手!


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]