<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:595.3pt 841.9pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:42.55pt; mso-footer-margin:49.6pt; mso-paper-source:0; layout-grid:15.6pt;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {mso-list-id:1238440670; mso-list-type:hybrid; mso-list-template-ids:-375215690 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 {mso-level-tab-stop:21.0pt; mso-level-number-position:left; margin-left:21.0pt; text-indent:-21.0pt;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} -->
由于最近需要使用 h-jtag 调试和烧写程序,所以要用到并口。而我的笔记本没有并口,经过在网上多日查找资料,决定买华塑的 expresscard 转并口卡。
简单说一下,最近了解的转并口卡情况。一般分为三种,一、是最简单的转换,只是转换成 LPT ,既不支持 EPP ,也不能使用 jtag 调试程序;二、是走 usb 协议的西霸的转换卡,他可以使用 h-jtag ,是因为他有地址并且 h-jtag 可以使用 LPTx 调整地址,但不是真正的绝对地址,有可能在使用加密狗时会有问题(本人并没有验证过,只是听一个卖卡的老板说的)。三、就是能真正使用绝对地址的华塑和恒通,这种卡应该可以满足嵌入式开发。
我用的是华塑的 expresscard 转并口卡,在使用 h-jtag 调试程序时没问题,但是在烧写程序时有问题。就是无论是在 vmware 还是在 sjf2440 时都无法找到并口,后来看到一篇文章修一部分 sjf2440 代码,将其解决。
完整步骤如下:
1. 先装转并口卡的驱动。按照说明装就可以。
2. 这是在设备管理器中的 LPT 是 LPT3 ,将其改为 LPT1 。
3. 安装 GiveIo 驱动。
A: 下载 GiveIo 驱动程序
B: 将 GIVEIO.SYS 拷贝到 C:/WINDOWS/system32/drivers 目录下。
C :依次点击 控制面板 -> 添加硬件 -> 下一步 -> 是…… -> 下一步 -> 添加新的硬件设备 -> 安装我手动从… -> 端口( COM/LPT ) -> 从磁盘安装 -> 浏览 -> 保存有文件 giveio.inf 的目录 -> 完成。安装成功后可以在设备管理器 -> 端口中看到一个名为 giveio 端口。
4. H-Jtag 端口设置
A : jtag settings
根据 jtag 的调试板的原理图对 H-Jtag 进行设置:
我的 jtag 原理图见附件,从图中可以看到以下信号的连接情况:
TMS->Y6->A6->4
TCK->Y8->A8->2
TDI->Y7->A7->3
TD0->A5-Y5->11
根据以上的连接情况就可以对 H-Jtag 进行设置了。点击 H-Jtag 菜单栏上的 settings->jtag settings-> 选择 User define ,进行如下设置 :
TMS->Pin4 D2
TCK->Pin2 D0
TDI->Pin3 D1
TD0->Pin11 Busy
注意:
TMS->D2
TCK->D0
TDI->D1
后面修改 SJF 源码将会用到
B : Port settings
点击 H-Jtag 菜单上的 settings->port settings 选择 LPx 。在 LPx 右边框填入 0x3cf8 ,对 H-Jtag 的设置完毕。
0x3cf8 的来历: 3cf8 这个值在后面修改 SJF2440 (如果你是 2410 的板子那么就是 SJF2410 了)的源代码也将用到。安装完 PCI 转并口卡的驱动后 右击我的电脑 -> 属性 -> 硬件 -> 设备管理器 -> 端口( COM 和 LPT ) -> 双击 PCI ECP Parallel Port ( LPT1 ) -> 资源。这样就可看到“输入 / 输出范围 3cf8-3cff ”和“输入 / 输出范围 CC00-CC07” 。 3cf8 就是从这读出来的。
5. 修改 SJF2440 的源代码(如果你用了 PCI 转并口并且 H-Jtag 相应的端口都配好后发现不能使用 SJF2440 或 SJF2410 那么极有可能需要修改源代码)
SJF2440 和 SJF2410 源代码见附件。下载完源代码后从 VC++ 中打开 .dsp 工程文件。
A :修改源代码中的 ppt.h 头文
#define LPT1 0x378
#define LPT2 0x278
#define LPT3 0x3bc
将这三行改为
#define LPT1 0x3cf8
#define LPT2 0x3cf8
#define LPT3 0x3cf8
其实对于我的 PC 机来说修改 LPT1 就够了。具体看各位装完 PCI 驱动后用了哪个 LPT 了。
B :修改源代码中的 jtag.h 头文件
#define TCK_H 0x01
#define TDI_H 0x40
#define TMS_H 0x02
将这三行修改为
#define TCK_H 0x01
#define TDI_H 0x02
#define TMS_H 0x04
为什么这么修改详见附件中的《 Jflash-s3c2410(linux 版本 ) 原理分析》
在此我仅做下简要说明
在第 2 步是我有如下提示:
注意:
TMS->D2
TCK->D0
TDI->D1
在此处就要派上用场了
TMS TDI TCK D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 1 0 0 (TMS_H) 0 0 0 0 0 0 0 1 (TCK_H) 0 0 0 0 0 0 1 0 (TDI_H) |
所以有
#define TCK_H 0x01 即 TCK_H=01H=0000 0001B
#define TDI_H 0x02 即 TDI_H=02H=0000 0010B
#define TMS_H 0x04 即 TDI_H=04H=0000 0100B
至此所有配置过程结束。此时点击 VC++ 的“!”就可以在工程文件所在目录的 Debug 子目录内产生 SJF2440.exe 了。
结束语:本文只是记录一下安装过程,可能会有错误的地方,会在以后学习中逐步改正。
转载自: http://blog.chinaunix.net/u2/70540/showart.php?id=722069