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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mao0514/article/details/90603510

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


下载完毕点击 名称:  001.jpg查看次数: 0文件大小:  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查看次数: 6文件大小: 64.8 KB文件 ID : 77352
传输:Windows Kernel Mode Debugger
限定符:就是我们添加的计算机名

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

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



 点击图片以查看大图图片名称: 018.jpg查看次数: 2文件大小: 23.3 KB文件 ID : 77355
 名称:  019.jpg查看次数: 0文件大小:  17.1 KB
 名称:  020.jpg查看次数: 0文件大小:  70.6 KB
 点击图片以查看大图图片名称: 021.jpg查看次数: 4文件大小: 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安装后会有相关文档)

https://blog.csdn.net/charlessimonyi/article/details/50904956

猜你喜欢

转载自blog.csdn.net/mao0514/article/details/90603510
今日推荐