教程参考自:https://www.bilibili.com/video/av26193169/?p=4
1. 概述
跟调试应用层程序不同,驱动不稳定,可能会导致蓝屏,所以我们不能在本机调试。一般的操作是在一个虚拟机中加载驱动,然后通过串口对该虚拟机的驱动进行调试。
2. 虚拟机配置
2.1 开启调试选项
以管理员身份运行cmd。
键入bcdedit命令,查看当前启动项,输出如下:
纯净的系统,一般只有一个标识为{current}的启动加载器是当前的启动配置。
建立一个新的启动项:
bcdedit /copy {current} /d “Windwos7”
设置新的启动项:
bcdedit /debug ON
bcdedit /bootdebug ON
查看当前的调试配置:
bcdedit /dbgsettings
一般来说,会显示出使用的第一个串口,波特率为115200bps,和期望的一致,不需要修改。
选择菜单的超时,我设置为10秒:
bcdedit /timeout 10
重新启动,当需要调试时就用调试模式进入。
2.2 设置串口
首先移除掉打印机,因为它占用了第一个串口,然后添加一个串行端口,命名为\.\pipe\com_1,同时设置另一端是应用程序。
3. VS2017配置
配置串口连接。
Display name随便填,Network host name则填虚拟机的计算机名。
然后连接类型选择串口,勾上Pipe和Reconnect,Pipe name填入串口名“\.\pipe\com_1”。
4. 拍摄快照
配置好的虚拟机最好打上一个快照,方便以后调试。
5. 连接
做好以上配置后,在VS2017上点击Debugging Tools for Windows - Kernel Debugger进行调试。
一路点继续。
当右下角出现提示消息后就意味着连接成功啦。
6. 调试
在代码上下好断点后,将对应的驱动文件复制到虚拟机中并加载,VS2017会自动断在断点处,如右所示,这时就可以开始调试啦。