Chinaunix首页 | 论坛 | 博客
  • 博客访问: 242445
  • 博文数量: 35
  • 博客积分: 1415
  • 博客等级: 上尉
  • 技术积分: 334
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-10 21:31
文章分类

全部博文(35)

文章存档

2010年(22)

2009年(13)

我的朋友

分类: 嵌入式

2009-11-23 17:24:00

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还可以当普通串口来用
阅读(2199) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~