VS2012 ddk驱动编译与虚拟机联机调试设置

原文地址:http://bbs.pediy.com/showthread.php?t=165985&highlight=vs2012

一.安装Windows Driver Kit 8

1首先在计算机上安装VS2012 (12很容易安装,安装步骤略),然后到官网上下载Windows Driver Kit 8 下载地址:
http://msdn.microsoft.com/zh-cn/windows/hardware/hh852362/


下载完毕点击  名称:  001.jpg查看次数: 1文件大小:  3.4 KB进行安装。安装模式有两种,一种是在线直接安装,一种是下载安装包到本地,之后再进行安装 ( 如果网速够快建议直接在线安装。下载安装包安装,会多一步操作,由于刚开始不知道那一步操作,运行2012报一个错误,也无法进行调试设置,所以搞得我头大了好几天!!!)
1.  在线安装,直接默认路径即可,安装完应该没有问题的,本人没试过。
2.  说下下载安装包安装吧:下载完全部文件307M,打开文件夹点击其中的 名称:  002.jpg查看次数: 0文件大小:  5.4 KB 文件安装,一路OK,最后点击finish完成安装。 安装完别急着打开2012,再次点名称:  003.jpg查看次数: 0文件大小:  3.4 KB 这次选择在线安装,过程中会有两个选项,一个yes...,一个no,我选了yes,具体什么意思,不清楚,嘿嘿。然后next,进度条很快读完。到此Windows Driver Kit 8就已经安装成功了,这时打开2012,会发现新建项目中多了一些Driver项目,菜单栏上也多出了一个菜单选项DRIVER。
二 驱动项目与虚拟机com串口联机调设置
  怎样在2012下直接生成DDK驱动项目我目前还没搞出来,不过可以通过2012把我们写的驱动加载转换成2012可以运行的项目
  就让我们用最简单的Hello级DDK驱动演示下吧,写好Hello.c  makefile和sources文件。
然后运行2012
  名称:  004.jpg查看次数: 0文件大小:  23.0 KB
选择  文件打开Convert Sources/Dirs...
找到驱动所在的文件夹,选中 sources文件 
名称:  005.jpg查看次数: 1文件大小:  13.8 KB
这时2012就会对我们的驱动项目进行自动转换了,转换完成后还会弹出对话框询问你是否查看有关转换细节的记录,这里随意。

然后在上边工具栏中
名称:  006.jpg查看次数: 0文件大小:  28.5 KB
 
选中驱动程序所要运行的系统环境,可惜,不支持XP系统平台!!!
按F7快捷键编译连接即可生成我们想要的.sys文件了。 另编译Vista以上版本系统平台驱动文件时makefile文件是可有可无的,没有此文件编译器会自动为我们加上相关定义!(Starting with the Windows Driver Kit (WDK) for Windows Vista, it is no longer required for the Makefile file to be in every project. By default, the Build utility includes the Makefile.def if the Makefile file is not found in the project. Any custom tasks that are required in a project should be moved to Makefile.inc as appropriate.)
 
名称:  007.jpg查看次数: 1文件大小:  32.8 KB
驱动文件生成完成,现在开始进行虚拟机连接设置:
名称:  008.jpg查看次数: 0文件大小:  8.5 KB
点击菜单选项  DRIVERTestConfigure Computers
  名称:  009.jpg查看次数: 0文件大小:  14.4 KB
点击 “Add New Computer”
名称:  010.jpg查看次数: 1文件大小:  59.6 KB
Computer name:中输入你真实的计算机的名字(不是虚拟机中计算机的名字)
下边三个选项选择最后一项 ”Manually configure debuggers and...”,手动配置调试
名称:  011.jpg查看次数: 0文件大小:  41.5 KB
按上图配置即可, Connection Type选为Serial (串口)
(波特率)Baud Rate 115200 
(管道)Pipe勾选
(重连接)Reconnect勾选
(管道名)Pipe name  \\.\pipe\com_1

这几个选项根据你虚拟机设置来设置
最后点击完成。

打开虚拟机进入系统后(调试模式)(按我以前的步骤是先在虚拟机中运行驱动,然后附加下断点,会导致2012卡死掉,后来摸索发现在没有加载驱动之前就让2012把系统断一下,这样就连接成功了!驱动运行之前设置断点也会成功!)

再在 vs2012中选择菜单栏中的   工具附加到进程
  名称:  014.jpg查看次数: 0文件大小:  13.3 KB
点击图片以查看大图图片名称:	015.jpg查看次数:	21文件大小:	64.8 KB文件 ID :	77352
传输:Windows Kernel Mode Debugger
限定符:就是我们添加的计算机名


点击 附加 2012会自动进入调试状态,
此时显示Waiting to reconnect...;
名称:  016.jpg查看次数: 1文件大小:  40.7 KB
名称:  026.jpg查看次数: 0文件大小:  914 字节 把虚拟机断下,这时在源代码中就可以下断点了!完成断点设置输入g命令或F5,让虚拟机走起。当你运行虚拟机中驱动程序到相应代码位置就是会被2012断下。(经过这几天摸索,2012不用关闭重新打开也是可以地!)
  名称:  017.jpg查看次数: 1文件大小:  23.6 KB

把我们生成的hello.sys
名称:  012.jpg查看次数: 0文件大小:  9.9 KB
文件放到虚拟机中,用INSTDRV工具安装启动
  名称:  013.jpg查看次数: 0文件大小:  28.7 KB



  点击图片以查看大图图片名称:	018.jpg查看次数:	6文件大小:	23.3 KB文件 ID :	77355
  名称:  019.jpg查看次数: 0文件大小:  17.1 KB
  名称:  020.jpg查看次数: 0文件大小:  70.6 KB
  点击图片以查看大图图片名称:	021.jpg查看次数:	6文件大小:	42.4 KB文件 ID :	77358
在2012中驱动项目的符号文件是不用特殊指定的,编译器会自动找到符号文件所在位置。

系统符号我知道的其中一个方法是用命令的形式来加载或下载符号文件
如果系统中没有单独安装符号文件,在Debugger Immediate Windows窗口中输入命令
.sympath srv*c:\MyServerSymbols*[url]http://msdl.microsoft.com/download/symbols

名称:  022.jpg查看次数: 0文件大小:  15.6 KB
*c:\MyServerSymbols*之间的路径就是你要保存的符号文件的路径

如果你已经下载并单独安装了符号文件可以用如下形式的命令来指定:
.sympath c:\MyRegularSymbols 回车后显示
名称:  023.jpg查看次数: 0文件大小:  14.1 KB 
我们再   .reaload一下(重新加载符号文件)
名称:  024.jpg查看次数: 0文件大小:  10.9 KB
哈哈,这里输入命令还有智能提示哦!
名称:  025.jpg查看次数: 0文件大小:  73.3 KB
部分符号文件没有找到也属于正常情况,指定目录下没有这些驱动的符号文件!可以指定到官方网站去下载符号文件
.sympath srv*c:\MyServerSymbols* http://msdl.microsoft.com/download/symbols

以上设置均参考自: Debugging Help.    (WDK8安装后会有相关文档)

      目前我电脑的配置是I5-3210M,内存2G自己又加了一根4G,显卡GT630M1G显存!宏基的一款E1-471G。淘宝上买3270,自己又换了个二手64G固态硬盘用来做系统盘。总共加起也就3600左右吧!试验了下,用固态比直接用机械硬盘速度真是要快很多!!!  笔记本64位Win7;虚拟机32位Win7分配了一处理器,1G内存; 用2012调表示没压力 CPU利用率36%,内存2.7G使用中,1.1G可用[/SIZE]*转载请注明来自看雪论坛@PEdiy.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值