由于从公司辞职了,所以以前在公司里搭建的驱动开发环境也就 Game Over 了,
同样由于那环境是很久以前搭建的,自己也有很多记不清楚的地方了,
而且其中还是有很多需要注意的地方的,所以在这里顺便做一个环境搭建的总结,
以后再要用的时候也会很方便的。
WDK 调试环境搭建:
安装 WDK:
自然首先是安装 WDK 了,这个好办,直接到官网上下载,然后安装就 OK 了,
注意的是,在安装中最好是选择安装全部,并且最好是安装在 C 盘下。
设置调试环境:
这个其实也好办,就是使用 WinDbg 来调试虚拟机或者通过串口线可以使用 WinDbg 来调试另外一台 PC 。
其中呢,如果你机器还算好,可以同时跑的起几个 Visual Studio + 虚拟机的话,那就没必要使用 2 台 PC 。
但是如果你机器不咋的的话,像我自己家里的这种几年前的古董,跑个虚拟机就卡的跟什么似的的话,
那最好是准备 2 台 PC ,不然调试的时候会让人抓狂的。还有值得一提的是,在虚拟机中调试的话,
实质上,是虚拟机通过命名管道来虚拟出一个串口,所以其速度和真实的使用两台 PC 通过串口调试是有区别的。
WinDbg 调试虚拟机:
设置虚拟机:
首先在虚拟机中安装 XP ,然后修改该 XP 系统的根目录下的 BOOT.INI 文件
(该文件默认是隐藏的,并且其属性为只读,所以需要先去掉只读属性)。
比如本来的 INI 文件为:
那么需要将该 INI 文件修改为如下:
上面的最后加的这一句表示我们加载的 Windows 内核的调试端口指定为 Com4 ,并且设置波特率为 115200 。
在这里设置好 BOOT.INI 文件后,我们便需要设置虚拟机中的 XP 了,
实际上是虚拟机通过命名管道来像我们的 PC 虚拟出一个串口。
具体设置详见插图:
(注意下面的 com_4 ,这个 com_4 和我们在 BOOT.INI 文件中的设置是相对应的)
设置 WinDbg:
再提一点,可以通过设置 WinDbg 的启动参数来确保 WinDbg 能够调试虚拟机。
通过设置如下的启动参数可以使得 WinDbg 调试串口 \\.\pipe\com_4 。
C:\WinDDK\Debuggers\windbg.exe -b -k com:port=\\.\pipe\com_4,baud=115200,pipe
WinDbg 调试另外一台 PC:
要使用 WinDbg 来调试另外一台 PC 的话,至少得准备 2 台 PC 吧,呵呵。
在这里将装有 WDK 和 WinDbg 成为主机,而将另外一台 PC 称之为客户机吧。
设置客户机:
同样是修改 BOOT.INI 文件,这一步和上面的是一模一样的。
比如将 BOOT.INI 文件中的调试端口设置为使用 com_4 进行调试。
设置 WinDbg:
C:\WinDDK\Debuggers\windbg.exe -b -k com:port=\\.\com1,baud=115200
SVN 环境搭建:
下载:
分别从 www.visualsvn.com 和 http://tortoisesvn.net 下载 SVN 服务端程序和客户端程序。
安装 SVN 服务端程序 VisualSVN Server:
安装 SVN Server 截图一:
安装 SVN Server 截图二:
安装 SVN Server 截图三:
安装完毕 VisualSVN Server 后就需要创建仓库了。
创建名为 KeyBoard 的仓库,注意勾选下面的复选框以及注意 URL 为 https://XiaoZhen-PC/svn/KeyBoard
然后再创建一个用户
安装 SVN 客户端程序 TortoiseSVN:
安装时所有选项选择默认即可,安装后需要重启机器
工程使用 SVN 示例:
安装完 TortoiseSVN 后,我们就可以创建一个工程了,这里使用的工程为 KeyBoard 工程。
在我的桌面上有一个叫做 KeyBoard 的工程,对此,需要将该工程导入到 SVN 服务器上。
上传工程到服务器上完成
由于工程已经上传到了 SVN 服务器上,所以本地桌面上的 KeyBoard 工程是可以删除了的,在此将其删除。
然后我们到另外一台 PC 上实现将服务器上的 KeyBoard 工程签出或者签入。
首先需要在另外一台电脑 B 上面安装好 SVN 客户端程序 TortoiseSVN。
然后在电脑 B 的桌面或者其他位置创建一个文件夹,这里取名叫做 KeyBoard 。
总结:
上面呢是介绍了对于使用 WDK 来调试虚拟机或者调试另外一台 PC 的一些设置,
同时也介绍了在驱动开发中使用 SVN 来进行开发时,SVN 的环境搭配和基本使用,
下一篇文章估计还是介绍环境搭配类的,因为要想在 Visual Studio 中开发驱动程序还是得设置蛮多东西的。