milkyway的窝

最初想法的诞生地

 

如何防止Windows CE .NET盗用COM1端口

在缺省状态下,Windows CE .NET将COM1端口用于调试目的。如果您在自己的设备上还拥有其它COM端口,那么,Windows CE .NET则会将它们划归应用程序使用(物理意义上的COM2端口将成为逻辑意义上的COM1端口,依此类推)。然而,某些特定项目可能需要将全部COM端口划归应用程序使用。

为此,请遵循下列处理步骤:

通过修改OEMInitDebugSerial()(可在OAL的debug.c文件中找到)函数的方式告知操作系统不要将COM端口用于调试目的
if ( ! pBootArgs->ucBaudDivisor ) {
pBootArgs->ucBaudDevisor = 6; // Default to 19.2 if nothing specified.
}

pBootArgs->ucComPort = 0; // ADD THIS LINE

switch ( pBootArgs->ucComPort ) {

通过对注册表文件platform.reg加以修改来调整COM端口映射关系。
举例来说,将现有注册表项:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial]
"SysIntr"=dword:13 ; NOTE: This is physical COM2 (subtract 10 for IRQ)
"IoBase"=dword:02F8 ; NOTE: This is physical COM2
...
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial2]
"SysIntr"=dword:14 ; NOTE: This is physical COM3 (subtract 10 for IRQ)
"IoBase"=dword:03E8 ; NOTE: This is physical COM3
...

修改为:

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial]
"SysIntr"=dword:14 ; NOTE: This is physical COM1 (subtract 10 for IRQ)
"IoBase"=dword:03F8 ; NOTE: This is physical COM1
...
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial2]
"SysIntr"=dword:13 ; NOTE: This is physical COM2 (subtract 10 for IRQ)
"IoBase"=dword:02F8 ; NOTE: This is physical COM2
...

说明:您所看到的结果可能有所不同。如果您的系统针对COM端口使用了不同的IoBase/IRQ设置,则请对注册表文件platform.reg进行适当配置。

另一种替代方法就是在您的BIOS中对COM端口的IoBase/IRQ设置进行修改。Windows CE .NET已就将3F8/4(典型的COM1)留作自用进行了硬性规定(针对CEPC)。举例来说,如果您将此类设置指派给COM4,那么,Windows CE .NET调试信息便会路由至物理端口。

posted on 2007-01-04 16:01 milkyway 阅读(1026) 评论(0)  编辑 收藏 引用 所属分类: wince(别人的文章技巧总结)


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

公告

随笔皆原创,文章乃转载. 欢迎留言!

常用链接

留言簿(37)

随笔分类(104)

随笔档案(101)

文章分类(51)

文章档案(53)

wince牛人

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜