1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > usb转并口支持linux 使用PCI转并口实现SJF刷写嵌入式开发板

usb转并口支持linux 使用PCI转并口实现SJF刷写嵌入式开发板

时间:2021-09-13 09:18:51

相关推荐

usb转并口支持linux 使用PCI转并口实现SJF刷写嵌入式开发板

本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: /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++进行编译,通过,然后刷机,获得成功!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。