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