usb转并口支持linux,使用PCI转并口实现SJF刷写嵌入式开发板
本文內容遵從CC版權協議, 可以隨意轉載, 但必須以超鏈接形式標明文章原始出處和作者信息及版權聲明網址: http://www.penglixun.com/tech/embedded/sjf_board_usingpci_to_ltp.html
整理電腦文件發現曾經寫的這個文檔,怕找不到了,丟這吧。
引言:
目前越來越多的高端主板取消了并口的設計,對于需要使用并口來刷寫開發板的嵌入式開發者是極其不方便的,通過PCI插槽轉接出并口是相對廉價的解決方案。但是使用PCI轉接的并口,并口地址與刷寫軟件默認的地址往往不一致,這就需要對刷寫軟件進行修改。本文就解決了三星S3C 2440刷寫程序SJF2440.exe的代碼修改,使其可以支持任何PCI轉接口上轉接出的并口用JTAG刷機。
方法:
1.安裝GiveIo驅動
為了讓Windows可以讀寫I/O端口,必須安裝GiveIO驅動。
2.獲取并口地址
將PCI轉接卡接入主板,并安裝好并口。
右擊 我的電腦->屬性->硬件->設備管理器->端口(COM和LPT)->雙擊xx*[1] PCI ECP Parallel Port(LPTx*[2])->資源。這樣就可看到“輸入/輸出范圍CD00-CD07”和“輸入/輸出范圍CC00-CC07”。可以讀出并口地址CD00,當外接有多個并口時,則依次使用后續的地址。
3.利用H-JTAG獲取信號連接情況
打開H-JTAG,點擊H-Jtag菜單上的settings->port settings,選擇LPx。在LPx右邊框填入0xCD00,這樣就設置好了并口的地址,對開發板上電,H-JTAG就可以識別出接入的開發板。
然后點擊H-Jtag菜單欄上的settings->jtag settings,可以在Wiggler Pin Assignment里看到TMS/TCK/TDI/TD0/nTRST/nSRST對應的針腳號。
例如我的S3C2440開發板是
TMS->Pin3 D1
TCK->Pin4 D2
TDI->Pin5 D3
TD0->Pin11 Busy
4.修改SJF代碼使其支持外接的PCI口
有了上面獲取的信息就可以來修改SJF的源代碼了。
以SJF2440為例,SJF2410同理。
A:修改源代碼中的ppt.h頭文
#define LPT1 0x378
#define LPT2 0x278
#define LPT3 0x3bc
將這三行改為
#define LPT1 0xcd00
#define LPT2 0xcd00
#define LPT3 0xcd00
對于我的PC機來說修改LPT1就夠了。具體看各位裝完PCI驅動后用了哪個LPT。
B:修改源代碼中的jtag.h頭文件
#define TCK_H 0x01
#define TDI_H 0x40
#define TMS_H 0x02
將這三行修改為
#define TCK_H 0x04
#define TDI_H 0x08
#define TMS_H 0x02
為什么如此修改呢?
對于上面獲取的TMS TDI TCK 三個信號,分別對應D1,D2,D3三個針腳。則有如下關系:
D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 0 1 0 (TMS_H)
0 0 0 0 0 1 0 0 (TCK_H)
0 0 0 0 1 0 0 0 (TDI_H)
用轉為十六進制表示則是TMS_H=0x02,TCK_H=0x04,TDI_H=0x08。
5.如此修改完之后,用VC++進行編譯,通過,然后刷機,獲得成功!
總結
以上是生活随笔為你收集整理的usb转并口支持linux,使用PCI转并口实现SJF刷写嵌入式开发板的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php gd 缩略图,[PHP GD库]
- 下一篇: oracle日志分析产品,鼎甲技术应用: