openOCD的使用


openOCD的使用

简介

openOCD是一个用于JTAG调试的软件, 可以用于不同调试器和CPU, 还可以与GDB配合, 开源.

安装

openOCD的项目主页是http://sourceforge.net/projects/openocd/files/openocd/, 可以下载源代码和软件手册, 我选择的是0.7.0版本. 主要步骤如下:

  • 从项目主页下载软代码包到本地, 并解压
  • 然后是autoconfig的配置, 在解压的目录中执行 ./configure --prefix=/usr/local --enable-jlink. --prefix用于设置软件安转的目录, --enable-jlink选项用于支持jlink调试器, 还有很多其他选项, 可以通过命令./configure --help 查看.
  • 执行 makemake install, make install 可能需要超级用户权限 + 安装完成已后运行 openocd -v 查看是否能够使用 通过Debian的仓库可以直接下载0.5版本的openOCD, 版本有点老, 不太好用, 所以编译0.7版本, 在编译的过程中没有出现错误, 现在(2014/06)的最新版本是0.8, 我在编译0.8版本的过程中会报错, 没找到错误的原因.

openOCD的配置

openOCD的配置文件使用的是tcl语言, 有很多现成的配置脚本可以直接使用, 对配置文件不是很了解, 具体的可以查看软件手册. 在启动openOCD时可以使用 -f 选项指定配置文件, 可以多次使用指定多个配置文件. 如过不指定, 则默认使用当前目录中的openocd.cfg文件. 以下是我自己的一个配置文件

	# interface config
	source [find interface/jlink.cfg]
	adapter_khz 6000
	
	# board config
		source [find target/samsung_s3c2440.cfg]
	
	## NOR flash config
	nand device nand s3c2440 $_TARGETNAME 
	
	## NAND flash config
	flash bank nor cfi 0 0x200000 2 2 $_TARGETNAME jedec probe
	
	
	## Target reset handlers for SDRAM and I/O configuration
	
	## reset config
	adapter_nsrst_delay 100
	jtag_ntrst_delay 100
	reset_config trst_and_srst
	
	## other
	
	proc init_2440 { } {
		halt
		s3c2440.cpu curstate
	
		# sdram
		mww phys 0x48000000 0x22011110 ;
		mww phys 0x4800001c 0x00018005 ;
		mww phys 0x48000020 0x00018005 ;
		mww phys 0x48000024 0x008C04F4 ;
		mww phys 0x48000028 0x000000B1 ;
		mww phys 0x4800002C 0x00000030 ;
		mww phys 0x48000030 0x00000030 ;
	}
	
	proc ldimg { } {
		load_image /home/sannyas/main.bin 0x30000000 bin;
		resume 0x30000000
	}

配置中有些命我也不知道是什么意思, 不过能使用就可以了. 可以添加一些自己定义的命令, 方便在调试的时候使用, 比如上面的 ini_2440ldimg 就是自己定义命令.

使用

openOCD的使用比较简单, 直接运行openocd命令, 并指定配置文件, 或使用默认的配置文件, 运行成功后, 可以执行命令 telnet localhost 4444, 使用telnet接入openocd, 就可以执行一些调试命令. 使用openocd主要是熟悉常用的操作和命令.

常用操作和命令


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM