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ドライバは恐れることなく基本に忠実にやればよいようです。


最近のコメント