首页
社区
课程
招聘
[求助]各位大虾,推荐一个写驱动集成开发环境
发表于: 2007-4-9 18:22 17445

[求助]各位大虾,推荐一个写驱动集成开发环境

2007-4-9 18:22
17445

想写写驱动,不知道哪个开发环境好,以前下载了个DDK,装上以后都不知道从那里下手,编辑器都找不到因此作罢了。现在要做单片机和PC通信的接口,不得不写了。

各位大虾推荐一个吧,最好能生成个框架的,不用我敲那么多代码


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
支持
分享
最新回复 (29)
雪    币: 116
活跃值: (220)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
2
EditPlus
2007-4-9 19:03
0
雪    币: 615
活跃值: (1212)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
RadASM
2007-4-9 19:09
0
雪    币: 45
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
VC配合DDK
2007-4-9 19:55
0
雪    币: 231
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qdk
5
VC如何配合DDK,能详细一些吗。
貌似VC里没有DDK这种工程
2007-4-9 20:00
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
DriverStudio + VC + DDK
2007-4-9 20:03
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
DriverStudio  
听说是收费软件
还听说大多数集成的驱动开发环境都是收费的
通通都是听说的...呵呵
2007-4-10 09:14
0
雪    币: 560
活跃值: (359)
能力值: ( LV13,RANK:1370 )
在线值:
发帖
回帖
粉丝
8
RadASM+KmdKit  又小又好用
2007-4-10 15:57
0
雪    币: 231
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qdk
9
谢谢了,先试试楼上说的。
2007-4-10 17:22
0
雪    币: 12
活跃值: (605)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
VC+EasySYS
2007-4-10 17:32
0
雪    币: 231
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qdk
11
谢谢了啊!!
可不可以往我邮箱里传一个
刚才搜了一下,好多转载的内容,加上我这里是校园网,网速不怎么好。
各位好心人,我的邮箱是qdk0901@gmail.com
EasySYS
KmdKit
有教程更好
都行
2007-4-10 17:53
0
雪    币: 231
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qdk
12
又有新问题了,驱动写出来了,怎么运行它呢
2007-4-10 18:52
0
雪    币: 231
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qdk
13
解决了上个问题,又有新问题
原来kmdkit的example里就有加载程序的例子:
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;
;  scp.asm
;
;  Service Control Program for beeper.sys driver
;
;  Written by Four-F (four-f@mail.ru)
;
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

.386
.model flat, stdcall
option casemap:none

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                  I N C L U D E   F I L E S                                       
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

include \masm32\include\windows.inc

include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include \masm32\include\advapi32.inc

includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\advapi32.lib

include \masm32\Macros\Strings.mac

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                         C O D E                                                   
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

.code

start proc

local hSCManager:HANDLE
local hService:HANDLE
local acDriverPath[MAX_PATH]:CHAR

        ; Open a handle to the SC Manager database
        invoke OpenSCManager, NULL, NULL, SC_MANAGER_CREATE_SERVICE
        .if eax != NULL
                mov hSCManager, eax

                push eax
                invoke GetFullPathName, $CTA0("beeper.sys"), sizeof acDriverPath, addr acDriverPath, esp
            pop eax

                ; Register driver in SCM active database
                invoke CreateService, hSCManager, $CTA0("beeper"), $CTA0("Nice Melody Beeper"), \
                                SERVICE_START + DELETE, SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, \
                                SERVICE_ERROR_IGNORE, addr acDriverPath, NULL, NULL, NULL, NULL, NULL
                .if eax != NULL
                        mov hService, eax
                        invoke StartService, hService, 0, NULL
                        ; Here driver beeper.sys plays its nice melody
                        ; and reports error to be removed from memory
                        ; Remove driver from SCM database
                        invoke DeleteService, hService
                        invoke CloseServiceHandle, hService
                .else
                        invoke MessageBox, NULL, $CTA0("Can't register driver."), NULL, MB_ICONSTOP
                .endif
                invoke CloseServiceHandle, hSCManager
        .else
                invoke MessageBox, NULL, $CTA0("Can't connect to Service Control Manager."), \
                                                        NULL, MB_ICONSTOP
        .endif

        invoke ExitProcess, 0

start endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                                                                                   
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

end start
刚才修改了一下那个beeper,不小心扬声器不断地响,电脑死机了
重起电脑,想再修改一下再运行,没想到加载程序提示不能注册驱动,请问大虾们这是怎么回事啊

用getlasterror()
得到的是ERROR_SERVICE_EXISTS(1073)
怎么回事啊,晕了
2007-4-10 19:44
0
雪    币: 603
活跃值: (617)
能力值: ( LV12,RANK:660 )
在线值:
发帖
回帖
粉丝
14
VS2005+VAX
2007-4-15 21:45
0
雪    币: 223
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
同意,这个确实好用
2007-4-16 23:59
0
雪    币: 231
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qdk
16
找了一个easysys放在这里,方便使用
上传的附件:
2007-4-17 20:23
0
雪    币: 231
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qdk
17
kmdkit
解压到masm的目录下,运行install.bat就行了
上传的附件:
2007-4-17 20:27
0
雪    币: 231
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qdk
18
kmdkit+radasm+masm
很好用,呵呵,谢谢各位的介绍了
2007-4-17 20:31
0
雪    币: 135
活跃值: (226)
能力值: ( LV12,RANK:330 )
在线值:
发帖
回帖
粉丝
19
[QUOTE=qdk;296003]以前下载了个DDK,装上以后都不知道从那里下手,编辑器都找不到因此作罢了QUOTE]

当初我学驱动时也是遇到这种尴尬
我觉得学习的话还是DDK+VC好一些,就象WIN32编程虽然可以MFC,但还是要从SDK学起
新版的DDK里没有编辑器,一般是用VC写CPP文件,然后在那个目录里建个Sources,把开始菜单里Build Environment的相应控制台图标拖进去,然后把Makefile文件也复制进去,在控制台里把目录cd到当前文件夹然后打build就可以编译了。也还算方便,关键你要写个Sources文件,然后Build Environment那个快捷方式目标后面加个“&& cd 当前目录”这样点开来打个build就可以了

我驱动时写的一个小程序,照kmdkit那教程写的,DDK编译时要把Win XP Checked Build Environment.lnk里目录改成你的目录
上传的附件:
2007-4-18 12:50
0
雪    币: 191
活跃值: (41)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
20
我觉得 DDK+VC+VAX+Ddkbuild 最方便。
2007-4-18 20:41
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
21
如果想多敲代码:  MASMPlus + KmdKit
2007-4-19 00:15
0
雪    币: 242
活跃值: (14)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
22
唉,实在看不下去了。怎么就没人提下VS呢

VS2005+DDK 写驱动爽得要死。界面比VC舒服,用着也方便。

偶真得发现爱上VS2005的IDE了,这两天写LINUX的程序作业,把GCC都加到VS里了
好方便~
2007-4-21 00:56
0
雪    币: 207
活跃值: (11)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
23
如果有个驱动版块就好了
2007-4-26 20:29
0
雪    币: 750
活跃值: (228)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
24
关注中......
2007-4-27 07:21
0
雪    币: 750
活跃值: (228)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
25
指定的服务已存在!

原因:非正常关机造成服务未删除,请执行下面的代码来删除服务:

===================================================================

invoke OpenSCManager, NULL, NULL, SC_MANAGER_CREATE_SERVICE  

        .if eax != NULL
                mov hSCManager, eax
  
                push eax
               
        invoke        OpenService,hSCManager,$CTA0("beeper"),SERVICE_START + DELETE
       
        invoke DeleteService, eax          ;删除服务

===================================================================
2007-4-27 09:19
0
游客
登录 | 注册 方可回帖
返回
//