ubuntu下安裝openocd ,利用Openocd + Jlink 調(diào)試ARM
網(wǎng)址: http://sourceforge.net/projects/openocd/
2.解壓
3.進(jìn)入解壓之后的目錄 cd /openocd-0.5.0
4.進(jìn)行配置 ./configure --enable-jlink
這個(gè)時(shí)候出現(xiàn)錯(cuò)誤提示 找不到usb.h,原因是沒有安裝libusb的庫(kù)
下面安裝Libusb庫(kù)
5.sudo apt-get install libusb++-dev
安裝完之后重新執(zhí)行第四步操作 ./configure --enable-jlink,此時(shí)配置成功
6.make 編譯
7.make install
以上這些步驟完成之后,如果我們要使用openocd,還需要進(jìn)行配置,那就是編寫一個(gè)配置文件openocd.cfg
配置完之后。執(zhí)行openocd ,出錯(cuò),提示Error:Cannot find jlink interface.please check connection and permission .
這種錯(cuò)誤的原因有可能是系統(tǒng)沒有識(shí)別usb。但是我在系統(tǒng)中已經(jīng)安裝過libusb。那為什么會(huì)這樣。后來發(fā)現(xiàn)是這樣的,我的ubuntu是裝在virtualbox虛擬機(jī)上的,在虛擬機(jī)中我沒有為之分配一個(gè)Usb設(shè)備,所以導(dǎo)致這樣。于是通過虛擬機(jī)上的圖標(biāo)為之分配一個(gè)usb設(shè)備,再輸入此命令。jlink就識(shí)別了。
但是并不是完全通過的。雖然可以識(shí)別jlink了,但是輸入命令openocd之后,仍有一些錯(cuò)誤信息。如下圖

上圖用的是Jlink v7固件。之后,我將固件Jlink v8燒寫到j(luò)link 中。出現(xiàn)如下錯(cuò)誤:


后來幾經(jīng)周折,解決掉此問題。總結(jié)如下:
原因有三: 一是Jlink固件版本問題。用v7的話會(huì)有提示:Arm11targetJTAGerrorscregout0x00;二是用戶權(quán)限問題,不要再普通用戶下執(zhí)行openocd命令 ,而換做在超級(jí)用戶下執(zhí)行 ;三則是配置文件問題,在自帶的jlink.cfg文件中加入jtag時(shí)鐘配置。使用openocd 自帶的配置文件(在安裝目錄下)/usr/local/share/openocd/scripts/interface/jlink.cfg ,和/usr/local/share/openocd/scripts/target/samsung_s3c6410.cfg .其中jlink.cfg 中添加一句時(shí)鐘約束語句 : jtag_khz 250
運(yùn)行命令: openocd -f jlink.cfg -f samsung_s3c6410.cfg
結(jié)果如圖:

評(píng)論