« 2011.02.20 | トップページ | 2011.02.23 »

2011.02.21

Spartan-6ボードのWindows7 64bit対応

特電Spartan-6ボードを、正式にWindows7 64bit対応しました。

こちらのページから、「デバイスドライバとファームウェア」をダウンロードしてください。
http://www.tokudenkairo.co.jp/sp6/download.html#config
各種ツール(USB-JTAGや、サンプルアプリケーション)は更新しなくても動作します。

先日の暫定対応のところから何が違うかというと、結局、ezusb.sysベースのデバイスドライバに戻したことです。
新しいcyusb.sysでは、どうしてもSP6-SB-JTAGの速度が上がりませんでした。
おそらくドライバの問題ではなくアプリの問題だと思うのですが、その原因を調べきることができなかったため、古いけど動作の安定したezusb.sysをベースにデバイスドライバを64bit化したのです。

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

ここでは、EZ-USB FX2LPの64bit版ドライバの作り方として、ezusb.sysのソースをお持ちの方に、その64bit化のための方法を書き残しておくことにします。上で紹介した64bit版Spartan-6ボード用ドライバはこうして作られています。
なお、内容については一切無保証ですので、各自の責任のもとに行ってください。

① リソースファイルの10行目
#include "afxres.h"

#include "winres.h"
に変更する。

② soucesファイルの
TARGETLIBS=$(BASEDIR)\lib\*\free\usbd.lib

TARGETLIBS=$(BASEDIR)\lib\wlh\amd64\usbd.lib
に変更する。


③ ezusb,sysの829行目にCompleteRequestという関数のプロトタイプがある。この第3引数
IN ULONG info

IN ULONG_PTR info
にする。

(ソースファイル名).cの517行目
CompleteRequest関数の弟3引数
IN ULONG info

IN ULONG_PTR info
にする。

⑤ 3200行目から始まるEzusb_DownloadTest関数の中で、3212行目
ULONG CompareCount = 0;

SIZE_T CompareCount = 0;
にする。

⑤ 3200行目から始まるEzusb_DownloadTest関数の中で、3212行目
ULONG CompareCount = 0;

SIZE_T CompareCount = 0;
にする。

⑥同様に4702行目の
ULONG fragSize;

SIZE_T fragSize;
にする。

⑥同様に4775行目の
ULONG fragSize;

SIZE_T fragSize;
にする。

そして、WDK 6001.18002あたりでWindows Vista & Windows Server 2008 x64環境でコンパイルする。
これで、ezusb.sysを元にカスタマイズした64bit版のドライバが作成できます。①~④の手順で、ローダも同様に64bit化できますので、USBポートに挿した瞬間にファームウェアをダウンロードしてRenumerationということもできるようになります。

まとめると、64bitドライバは恐れることなく基本に忠実にやればよいようです。

| | コメント (0)

« 2011.02.20 | トップページ | 2011.02.23 »