worldcup
驱动小牛
驱动小牛
  • 注册日期2004-08-19
  • 最后登录2006-10-19
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2347回复:21

新手请教ddk的初级问题

楼主#
更多 发布于:2004-08-19 13:27
初学ddk开发,几个问题请教大家,谢谢:

(1)书上说,开发驱动需要两台机器,一台用于开发,一台用于调试,
为什么不能在同一台(只有一个CPU)机器上开发,编译,调试?

(2)ddk中使用的那些古怪的,名字特长的函数,都是哪来的,是操作
系统内核中的吗,存在于那些系统文件中?

(3)单纯的用ddk来开发driver,是不是可在任何编辑器下写代码,再
用build命令编译就可以生成sys文件了?

(4)我现在只有一台pc机,ddk自带的那些例子,对于初学者先研究那
些比较合适?

谢谢!!!
worldcup
驱动小牛
驱动小牛
  • 注册日期2004-08-19
  • 最后登录2006-10-19
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-08-24 14:01
刚看了一篇文章:

"在当前目录的驱动程序构造树中创建一个子目录,然后,运行构造
实用程序。在构造树的当前目录中,构造实用程序可以自动创建出
驱动程序的源代码。构造实用程序在Windows 98 DDK例子驱动程序
构造树的根目录下(%98DDK%\src)运行。例如,如果仅仅对为声
音设备类构造的例子驱动程序有兴趣,可以设置当前目录
到%98DDK%\src\audio上,然后,运行构造实用程序。 "


我的问题:
这里所说大的"构造实用程序"是不是能自动生成程序框架(象
driverstudio那样),这个程序在哪里?我用的是ddk for w2k!
谢谢!!
worldcup
驱动小牛
驱动小牛
  • 注册日期2004-08-19
  • 最后登录2006-10-19
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-08-24 12:58
谢谢ohmygod_zl
可惜没有硬件

昨天看了cancel,startio等,有点晕!
没办法,只能继续晕了!
有问题再麻烦大家!!!
ohmygod_zl
驱动牛犊
驱动牛犊
  • 注册日期2004-08-02
  • 最后登录2004-08-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-08-23 20:33
有硬件才好!
要结合硬件才学的快!
拿着硬件入手做吧!
最好的学习过程莫过于动手实践!
worldcup
驱动小牛
驱动小牛
  • 注册日期2004-08-19
  • 最后登录2006-10-19
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-08-23 09:34
谢谢Sundsea和ohmygod_zl

最近可能要做pci板卡(数据采集)的驱动开发,想请教各位大侠
做pci板卡的驱动开发有哪些难点,有什么好的文档或例程可以
借鉴一下?
谢谢!

这几天通过学习ddk,知道了驱动入口是DriveEntry,知道了IRP,
知道了Dispatch等,但没有什么项目做,也就不知道再研究些
什么了!

还想请教各位,在ddk自带的那些example中,那些不需要硬件
的支持就可以测试,我想找一个典型的入门级的例子研究一
下!
我编译安装了\NTDDK\src\general\portio哪个例子,但用
gpdwrite.exe和gpdread.exe测试出现:

C:\ddd>gpdwrite -b 1 a
Wrote data a to port 1

C:\ddd>gpdread -b 1
Read from port 1 returned ff

为什么向port1写入a,但读出的是ff
我真不知道如何去调试这种程序,
请指教!!!
ohmygod_zl
驱动牛犊
驱动牛犊
  • 注册日期2004-08-02
  • 最后登录2004-08-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-08-20 23:38
老大说的对,没有目的是什么都学不会的
Sundsea
驱动老牛
驱动老牛
  • 注册日期2003-05-06
  • 最后登录2012-06-05
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望35点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-08-20 22:36
两台机器调试驱动是较好的做法,
个人经历:
曾经用单台机器调试驱动,结果把硬盘上文件都毁了,
欲哭无泪呀!!!!!
Sundsea
驱动老牛
驱动老牛
  • 注册日期2003-05-06
  • 最后登录2012-06-05
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望35点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-08-20 22:34
刚开始学,你得有个目标,想学习哪方面的驱动编程,没有目的是什么都学不会的.
ohmygod_zl
驱动牛犊
驱动牛犊
  • 注册日期2004-08-02
  • 最后登录2004-08-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-08-20 20:22
以前说过的那本经典书是必看的
我还看了《操作系统》(个人感觉用处不大)
我做usb,还看了usb的规范
还看了ddk文档里关于bulkusb的一篇文章,还不错
我也只是接触驱动程序不到一个月
对那些名字古怪的函数还是感觉头疼
函数大概知道功能就可以吧我觉得
像我做的wdm的驱动研究一下DriverEntry和AddDevice,再看看pnp,power,read,write等就知道个大概了
反正我觉得每行代码都自己写就没必要也太难了
现在大家做东西了解原理以后拿一些现成的修改一下就ok :)
我比较懒啊
worldcup
驱动小牛
驱动小牛
  • 注册日期2004-08-19
  • 最后登录2006-10-19
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-08-20 16:19
to ohmygod_zl:
你都看什么驱动开发的书,
是如何入门的,可否推荐一下,
谢谢!
worldcup
驱动小牛
驱动小牛
  • 注册日期2004-08-19
  • 最后登录2006-10-19
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-08-20 16:16
to ohmygod_zl :
我也是新手,你的问题我也不明白,只能帮你up了,希望
早日解决,也教教我,谢谢你的帮助!

upupupup!!!
ohmygod_zl
驱动牛犊
驱动牛犊
  • 注册日期2004-08-02
  • 最后登录2004-08-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-08-19 18:39
一样的,我都试过了,结果就出现了我在另一个帖子里描述的情况:
1. 在设备管理器中找到我的usb设备所连的那个hub,选更新设备驱动,然后安装我写的驱动,出错:“指定位置不包括有关硬件的信息”
2. 在设备管理器中找到我的usb设备所连的那个hub,卸载了操作系统自带的驱动,然后设备就被删除了,然后添加新硬件,系统又自动装上驱动了

反正是装不上郁闷不知道什么原因
worldcup
驱动小牛
驱动小牛
  • 注册日期2004-08-19
  • 最后登录2006-10-19
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-08-19 17:38
谢谢ohmygod_zl

以下是ddk的portio example带的说明文档:

To install the driver:

1.Double-click the Add/Remove Hardware Wizard applet in Control Panel.
1.Select Add/Troubleshoot a Device.
3.Select Add a new device.
4.Select No, I Want to Select the Hardware from a list.
5.Select Other Devices and then click Next.
6.Click Have Disk and point to the directory that contains genport.inf file.

我想和usb的不一定相同!
ohmygod_zl
驱动牛犊
驱动牛犊
  • 注册日期2004-08-02
  • 最后登录2004-08-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-08-19 17:15
我是用ds做的驱动不是用ddk直接写的,在程序里加打印输出语句,用DriverMonitor可以看到,我试过的。
我的驱动还装不上,正郁闷呢,请教一下你装的步骤?
例子bulkusb有人用过可以,我就在做这个,不过没用ddk的例子,用ds生成的框架


[编辑 -  8/19/04 by  ohmygod_zl]
worldcup
驱动小牛
驱动小牛
  • 注册日期2004-08-19
  • 最后登录2006-10-19
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-08-19 17:07
谢谢大家,再问个问题:

用build编译生成*.sys文件后,通过控制面板安装,如果
修改了源代码,重新用build.exe编译,是不是还需要通过
控制面板安装一遍,还是直接拷贝覆盖\system32\driver\
下的同名sys文件就行了??

还有就是ddk for w2k 自带的example中,哪一个可以通过简单
的修改,再编译安装,再通过测试程序就可以看到修改后的效果,
我大体看了一下\src\general\portio 例子,也不知如何修改
代码genport.c,请指教!!

再就是用什么工具可以输出调试信息DebugPrint("...");

#define DebugPrint(_x_) \
               DbgPrint ("PortIo:"); \
               DbgPrint _x_;

一下又提了这么多问题,麻烦大家了,谢谢!!!
ohmygod_zl
驱动牛犊
驱动牛犊
  • 注册日期2004-08-02
  • 最后登录2004-08-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-08-19 16:40
据说是在98下可以装的,当然首先要装98ddk(先装vc,再装ddk,最后装ds),还有安装ds时一些选项根2000的不一样
不过我本人没有装过:)
ohmygod_zl
驱动牛犊
驱动牛犊
  • 注册日期2004-08-02
  • 最后登录2004-08-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-08-19 16:37
你看看我推荐的那本书,再看一些简单的例子就知道了
不少人都是这样的
不用着急,这东东要耐心学
worldcup
驱动小牛
驱动小牛
  • 注册日期2004-08-19
  • 最后登录2006-10-19
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-08-19 16:21
to tjs:
sorry,我也只在w2k pro上安装过DRIVERSTUDIO

tjs
tjs
驱动牛犊
驱动牛犊
  • 注册日期2004-03-04
  • 最后登录2006-07-24
  • 粉丝0
  • 关注0
  • 积分161分
  • 威望17点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2004-08-19 16:05
请问 DRIVERSTUDIO 是否只能在WIN 2000 上使用,我试在WIN ME 和WIN98 下安装总是提示出错.
巧姐姐
worldcup
驱动小牛
驱动小牛
  • 注册日期2004-08-19
  • 最后登录2006-10-19
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2004-08-19 15:57
谢谢两位!


to ohmygod_zl:
驱动的框架是怎样的,那有资料?
谢谢!!
上一页
游客

返回顶部