YC2440开发板wince5.0默认的COM1是做为普通串口使用,让它作为调试串口使用的方法!
最近在写简单的WINCE驱动程序,但是用YC2440的开发板COM1(开发板的物理串口是com0)无法输出我的调试信息,今天终于解决了,把过程贴出来大家分享,如果你也用的是这个开发板,也遇到了同样的问题你可以这样简单的来解决一下。
首先你将cfw.c里面的 DebugConsoleEnabled = 0; 变成 DebugConsoleEnabled = 1;
这样做了以后你会发现wince的部分启动信息可以从串口看到了,但是有些信息还是看不到,如果这个时候你在调试自己的驱动程序,你会发现你在应用程序里面动态加载驱动,虽然驱动可以加载成功,但是却不能输出你自己的调试信息。
原因就是在wince启动的过程中,加载了一个驱动程序,将COM1变成了普通的串口。
所以我们解决这个问题的最简单的办法就是,不加载这个驱动程序,我们只需要在platform.reg里面将关于COM1的注册表选项注释掉就可以了
IF BSP_NOSERIAL !
;[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SER2440]
; "DeviceArrayIndex"=dword:0
; "Irq"=dword:03
; "IoBase"=dword:50000000
; "IoLen"=dword:2C
; "refix"="COM"
; "Dll"="SER2440.Dll"
; "Order"=dword:1
; "riority"=dword:0
; "ort"="COM1:"
; "DeviceType"=dword:0 ; null modem
; "FriendlyName"="S2440 COM1"
; "Index"=dword:1
; "IClass"="{A32942B7-920C-486b-B0E6-92A702A99B35}"
; "Tsp"="Unimodem.dll"
; "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00
这些注释掉了以后,然后从新编译一下内核,放到板上就可以看到全部的调试信息了,COM1就可以永久的当调试口来用了。如果我们的驱动调试都没有问题了,我们还可以把这个注释打开,这样这个COM1还可以当普通串口来用
阅读(2233) | 评论(0) | 转发(0) |