jtag一直是傳說中的神器. 以前刷dd-wrt變磚的時候就想用它玩玩,結果當時把無線路由忙刷好了, 買回來的線就一直在抽屜中沉睡. 這幾天玩嵌入系統, 把那根簡陋的線找出來, 看看原理, 準備施展一番, 沒想到居然左右連不上裝置...今天終於連線成功, 整理一下遇到的問題. 因為是公司的裝置, 還好能找到電路圖.
1. jtag插座引腳標準混亂, 每個廠家板上的介面都不一樣, 有5腳的, 有10針, 14針, 20針, 腳距也有2.5和2.0之分, 更要命的針數一樣了, 每個針的定義還不一樣, **啊. 一定要找來電路圖看看清楚再接. 雖然都是弱訊號(沒電源)燒不壞, 接錯了還是挺費神的.
2. 別相信電路板的上jtag標誌. 有的裝置有兩個三個jtag介面,有的jtag結構被隱藏到很多排線中間. 一開始看到乙個口就插, 結果後來問問專家, 那個不是cpu的.
3. 別相信網上的軟體, 很可能他們對驅動的支援不好. 比如h-jtag就不能識別我的mips裝置, 又沒log, 報個錯誤就退出, 看不出**的問題. h-jtag可以自定義並口管腳, 但還是不行. 最後還是openocd幫忙搞定, 因為還有原始碼可以看.
4. 用並口線, 我的因為是當初刷路由用的, 非常簡陋, 能肉眼看出接線方法:
tdi: 2
tdo: 13
tck: 3
tms: 4
bin\openocd-0.6.0-rc2.exe -f parport.cfg 執行提示如下:
[quote]warn : adapter driver 'parport' did not declare which transports it allows; assuming legacy jtag-only
info : only one transport option; autoselect 'jtag'
parport port = 0x378
adapter speed: 3 khz
info : clock speed 3 khz
warn : there are no enabled taps. auto probing might not work!!
error: jtag scan chain interrogation failed: all ones
error: check jtag inte***ce, timings, target power, etc.
error: trying to use configured scan chain anyway...
warn : bypassing jtag setup events due to errors
warn : gdb services need one or more targets defined[/quote]
反正看到all ones就是沒連線成功.
配置檔案如下:
[quote]inte***ce parport
parport_port $_parportaddr
parport_cable wiggler
adapter_khz 3[/quote]
通過openocd文件可以看到它支援很多態別的並口, 但是並未給出這些並口的接線圖.
網上做wiggler的電路圖找來看看, 居然跟我不一樣, 但是我這個鳥接法屬於神馬接法呢?
看看原始碼:
這裡面用二維陣列定義了裝置引腳, 但是這些1/2/4/0x10/0x40/0x80都代表什麼腳呢? 特別是tdo, 我接在13腳, 怎麼看都沒有. 再往後看原始碼, 原來這些數字代表了io操作中的bit位.
看這裡:
第二腳是並口的d0, 是電腦資料暫存器的0位, 掩碼是1, 所以tck掩碼2, tms掩碼4, 並口13腳是select輸入訊號,對應狀態暫存器的bit4, 掩碼0x10. 所以去原始碼裡面對應一下, 就***是dlc5, 這就是broadcom無線路由常用jtag連線的引腳. 上網一搜, 果然tjtag這個軟體支援dlc5和wiggler, 估計早期版本預設就是dlc5, 所以大家都用這種線救磚. 國內bjtag是不是說也是它?
現在改改配置檔案: [b]parport_cable dlc5[/b]
然後認真的把線按照機器電路圖接上去, 執行openocd, 成功:
[quote]warn : auto auto0.tap - use "jtag newtap auto0 tap -expected-id 0x....... ..."
warn : auto auto0.tap - use "... -irlen 5"
warn : gdb services need one or more targets defined[/quote]
好了, 後面可以慢慢把玩jtag命令, 然後載入cpu配置, 用gdb除錯.
折騰了半天, 最好去**買個標準的wiggler介面, 輸出5根線做成散的, 想用什麼介面自己插, 萬能!
今天終於搞定ORACLE了
昨天在windowsxp professioal 下面搞了很久,也查了不少的資料,就是執行不了oracle器,每次連線都報沒有listener的錯誤,本來這個東西安裝對於我來說就是乙個新事物,還要給我出一些這樣的問題,叫我怎麼搞得出來嗎。還好,今天要裝rising的企業版,所以就把作業系統ghost...
今天終於搞定了USB
前幾天裝了ml1.2,什麼都搞定了,就是usb搞不定。折騰了好幾天。我以前是修改rc.sysinit,但是怎麼改都不行。我的機器配置 piv2.8ghz,512m,80g 40g 雙硬碟 gf440 64m vibra128,cdrw。intel晶元組。今天上午,我想起了最後一招,重新編譯核心。我以...
終於搞定erlang安裝openssl了
下載最新的erlang原始碼包 解壓縮,進入解壓後的目錄 如果以前安裝過erlang,要先執行 make clean 執行.configure with ssl openssl的位址 prefix erlang要安裝得位址 在我這就是 configure with ssl usr local ssl...