主题 : [转载]Win32 OpenOCD 0.2.0 使用心得 复制链接 | 浏览器收藏 | 打印
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
楼主  发表于: 2009-10-21 11:57

 [转载]Win32 OpenOCD 0.2.0 使用心得

原文由firedragen发表在http://www.100ask.net/showtopic-2126.aspx

Dear all:


由於昨日剛入手 OpenJTAG,按照 CD-ROM 內容的教程進行安裝並使用版上的 IXP425 config 測試時,發現有些 error(抱歉昨日沒紀錄這些 err msg),就到 YAGARTO website 尋找是否有相關問題與解答;這時發現 Windows 版的 OpenOCD 以及 YAGARTO GNU ARM toolchain 有較新的版本釋出,便下載來使用。那時沒注意 OpenOCD 的 Version 欄位有個『note』,因為 ftd2xx.dll 的專利問題,OpenOCD 0.2.0 改用 libusb-win32 drivers,並連結至 libftdi 的 library,所以搞了很久,終於在剛剛搞定了 OpenOCD 0.2.0 版的初始化,這邊提供一些微薄的心得紀錄,給想使用 Win32 OpenOCD 0.2.0 + openJTAG 的朋友們參考一下。


環境 --
OS:WinXP pro SP3 繁體中文
Target CPU:Intel xscale IXP425




1. 安裝 Win32 openOCD 0.2.0-SR1
根據 YAGARTO 的 link,至 http://www.freddiechopin.info/in ... /category/4-openocd 下載 openocd-0.2.0-sr1.zip,解壓縮後執行 openocd.msi 安裝




2. 變更 driver 並修改設定檔
進入 openocd 的安裝目錄後(預設為 C:\Program Files\OpenOCD\0.2.0\),至 drivers 資料夾下並解開 ft2232.zip 並進入。這時候可以先看一下 info.txt,一開始描述了為何改用 libusb-win32 driver 的原因;繼續往下看,發現 FT2232 JTAG device list 裡面沒有 OpenJTAG(我想這應該是正常的),所以必須修改 inf file 才能使用;使用慣用的 text sofeware 打開 libusb-win32_ft2232_driver.inf,在 [Devices] 以及 [Devices.NT] 的區塊中,各加入一行: "USB<=>JTAG&RS232 (Channel A)"=LIBUSB_DEV, USB\VID_1457&PID_5118&MI_00,儲存後就能關閉此檔案。


由於我們之前使用 OpenJTAG CD-ROM 安裝了相關 driver,所以必須先手動移除再安裝新的 driver。首先將 OpenJTAG 接上,進入『裝置管理員』(可以使用 win key + break 叫出系統內容,再點選『硬體』tag 便能見到),打開 USB controller 的樹狀結構,在 100ASK 的 device 上按右鍵 -> 解除安裝。這邊要注意,不要將 100ASK Serial Port 也解除安裝了,因為我們只需要調整 USB 的相關使用,serial port 的部份不需要更動。


解除安裝後將 OpenJTAG 拔除後再插入,此時會詢問是否從 windows update 以及是否自動 search,都選擇不要,以手動的方式選擇剛剛解壓縮的 driver 資料夾(C:\Program Files\OpenOCD\0.2.0\drivers\ft2232);安裝程式會自動辨識相關檔案並且安裝。結束後再檢視『裝置管理員』,發現 USB controller 裡面沒有原先的裝置,已經變更並放置在『LibUSB-Win32 Devices』的樹狀列表中。此時我們的 OpenJTAG USB 的相關部份已經更新並使用新的 driver 了。




3. 使用新的 OpenOCD cfg file
OpenOCD 0.2.0 Win32 不只變更了 driver 的使用,還修改並移除了原先的 cmd,所以之前的 example cfg file 很多 cmd 都無法被辨識,所以請參考 OpenOCD website 的 user guide( http://openocd.berlios.de/doc/html/index.html )瞭解一下哪些 cmd 已經無法使用。另外,OpenOCD 安裝目錄下的 target 資料夾裡面有許多已經預先定義好的設定檔,可以參考看看。最後附上我目前使用的 openocd.cfg 內容,target cpu 為 intel xscale IXP425,只進行到 init 的部份,後面的 action script 與 flash 相關部份請大家自行使用。

复制代码
  1. #daemon configuration
  2. telnet_port 4444
  3. gdb_port 3333
  4. #interface -- 100ASK
  5. interface ft2232
  6. ft2232_device_desc "USB<=>JTAG&RS232 A"
  7. ft2232_layout jtagkey
  8. ft2232_vid_pid 0x1457 0x5118
  9. jtag_speed 0
  10. reset_config trst_and_srst
  11. jtag_nsrst_delay 200
  12. jtag_ntrst_delay 400
  13. jtag newtap ixp42x cpu -irlen 7 -ircapture 0x1 -irmask 0x7f -expected-id 0x7e
  14. #target configuration
  15. set _TARGETNAME [format "%s.cpu" ixp42x]
  16. target create $_TARGETNAME xscale -endian big -chain-position $_TARGETNAME -variant ixp42x
  17. init
  18. #target_script 0 reset ixp42x.actions
  19. #flash bank cfi 0x50000000 0x1000000 2 2 0
  20. #working_area 0 0x800000 0x100000 nobackup
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."