Ng_MicHeAl
驱动牛犊
驱动牛犊
  • 注册日期2004-06-15
  • 最后登录2006-05-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2300回复:9

EZ-USB driver开发(新手)几个困惑的问题~~~~~

楼主#
更多 发布于:2004-07-05 11:34
看附带得pdf文件――EZ-USB General Driver。说可以以GPD(就是ezusbsys.c,在ezusbdrv文件夹内)出发,编写dirver.是这样的吗?

是不是以这个文件为基础,添加一些代码就可以了?比如我想使用bulk传输,就只需要再相应的地方写入bulk的代码?文件其他的地方就不需要作修改?是这样理解得嘛?

还有,ezusbsys.c中有个过程:
NTSTATUS
Ezusn_StartDevice(....)
中有一段如下:
#ifdef DOWNLOAD_KEIL_MONITOR
   //
   // download the Keil monitor
   //

   //
   // First download loader firmware.  The loader firmware implements a vendor
   // specific command that will allow us to anchor load to external ram
   //
   Ezusb_8051Reset(fdo,1);
   Ezusb_DownloadIntelHex(fdo,loader);
   Ezusb_8051Reset(fdo,0);

   //
   // Now download the Keil Monitor
   //
   Ezusb_DownloadIntelHex(fdo,mon51hi);
   Ezusb_8051Reset(fdo,1);
   Ezusb_8051Reset(fdo,0);

#endif // if DOWNLOAD_KEIL_MONITOR

我的理解就是这里的代码的含义是我所开发的usb得firmware的固件下载,是这样的吗?
如果是的话,那么我就要把写好的固件程序(如果是*.hex文件)用ezloader编译成相应的c文件,做替换嘛?就象pdf文件――EZ Loader Custom USB Firmware Loader Driver中描述的那样嘛?

最后一个问题:
同样在ezusbsys.c中有个过程:
NTSTATUS
Ezusb_ProcessIOCTL(....)

是处理DeviceIoControl指令的地方,那么如何将这些指令,比如:
IOCTL_Ezusb_VENDOR_REQUEST,IOCTL_Ezusb_ANCHOR_DOWNLOAD,IOCTL_EZUSB_BULK_READ等等与我的user mode下的应用程序联系起来呢?能否举几个看看呢?

各位,我才开始接触usb ,所以有很多疑惑,希望各位能多帮帮忙,
先谢了。分数20不够的话,我可以另外发贴给分!!!
Ng_MicHeAl
驱动牛犊
驱动牛犊
  • 注册日期2004-06-15
  • 最后登录2006-05-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-06 13:55
还有几个问题,不发新贴了。
1。drivers目录下的ezmon是做什么用的?
2。开始写firmware是不是以target\FW\ezusb下的FW.uv2为基础啊
我看了example中的几个例子,都是有5个相同的文件,只是在不同的函数内写代码/写好後是不是用ezloader和hex2c?
xzxzhao
驱动牛犊
驱动牛犊
  • 注册日期2004-06-15
  • 最后登录2010-03-09
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望16点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-07-06 12:28
你吧cypress的ezmon的例子按上面所说的改一下你下载编译后安装看看是否成功
xzxzhao
驱动牛犊
驱动牛犊
  • 注册日期2004-06-15
  • 最后登录2010-03-09
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望16点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-06 12:26
我也是这样做的但固件下载不下去因为ezmoniter没有监视到第二次列举的设备描述符
Ng_MicHeAl
驱动牛犊
驱动牛犊
  • 注册日期2004-06-15
  • 最后登录2006-05-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-07-06 10:26
什么意思?
xzxzhao
驱动牛犊
驱动牛犊
  • 注册日期2004-06-15
  • 最后登录2010-03-09
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望16点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-07-06 09:18
bingjie是个高手,但是好像不行呀
Ng_MicHeAl
驱动牛犊
驱动牛犊
  • 注册日期2004-06-15
  • 最后登录2006-05-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-07-06 08:30
那我问的第一个问题呢?是不是以ezusbsys.c为基础出发就可以写一个driver了呢?

bingjie
驱动小牛
驱动小牛
  • 注册日期2001-08-15
  • 最后登录2007-11-29
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-07-05 17:03
把你生成的.hex文件用Hex2C转换为C文件,然后再替换mon51hi就可以下载你自己的Firmare了
但是要注意下载完后你的驱动会被卸载然后又重新加载,为避免重新加载后的驱动再次下载Firmware,你可能要判断DeviceDescriptor里的内容已区分Firmware是否已下载。
在应用程序中你只要调用DeviceIoControl就可以同Ezusb_ProcessIOCTL进行通讯了
lpwnd
驱动小牛
驱动小牛
  • 注册日期2003-03-04
  • 最后登录2012-01-20
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-07-05 15:12
你可以看看它的EZMr这个应用程序啊!
Ng_MicHeAl
驱动牛犊
驱动牛犊
  • 注册日期2004-06-15
  • 最后登录2006-05-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-07-05 12:41
没人回答?自己顶一下
游客

返回顶部