caep
驱动牛犊
驱动牛犊
  • 注册日期2005-12-22
  • 最后登录2008-03-09
  • 粉丝0
  • 关注0
  • 积分160分
  • 威望17点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
阅读:1893回复:6

WINCE下解决COM1调试信息输出的问题

楼主#
更多 发布于:2007-09-13 20:06
我的硬件平台是X86的,因为是自己做的底板,当初没考虑那么多,物理硬件只引出了一个串口,COM1,但现在我才知道WINCE下COM1是用做输出调试信息的,没法用来直接通信。我查了一下论坛,有两个解决方法:
        1,在BIOS里面修改设置,把COM1和COM2的设置互换,COM1的IOBASE原本是0X3F8,IRQ是4;COM2的IOBASE原本是0X2F8,IRQ是3,换过后成了COM1的IOBASE是0X2F8,IRQ是3,COM2的IOBASE是0X3F8,IRQ是4,再到PLATFORM.REG里面把两个也换过来,这样就是把COM2口用做调试信息输出,COM1作我的应用了用的结果是COM1可以正常通信,再没有调试信息输出了,但用示波器量了一下硬件端口,通信速度始终上不去,原来的COM1调试信息输出速率能达到几百HZ,换过后的总线的数据传输只能达到几十HZ,通信波特率我都设的115200,我不知道倒底是不是因为COM1和COM2的互换影响了的,看样子这种方法不能采用。
         2。就是改OAL下的DEBUG.C文件,屏掉调试信息,但我改来改去,始终都有调试信息从COM1口输出来,我有一个理解是COM1还是做系统调试信息输出端口,但同时和我的应用程序共享,如果把调试信息屏蔽掉,就可以只输出我的应用数据了。不知道我这种理解对不对?另外有知道怎么改的的大狭们请指点指点小弟啊,小弟先谢谢了。
caep
驱动牛犊
驱动牛犊
  • 注册日期2005-12-22
  • 最后登录2008-03-09
  • 粉丝0
  • 关注0
  • 积分160分
  • 威望17点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-09-14 14:00
slen您好,我就是照这样改的debug.c和platform.reg文件的,再在应用程序里调用 com1口,还是不行,com1口始终有调试信息输出,唯一不同的是我改了debug.c后rebuild NK的,然后才改了platform.reg,做了make image ,生成NK.BIN,但不行,不知道原因是什么,你所说的改完后重新编译platform,是对整个项目重新编译呢,还是只对platform.reg重新编译就可以了
caep
驱动牛犊
驱动牛犊
  • 注册日期2005-12-22
  • 最后登录2008-03-09
  • 粉丝0
  • 关注0
  • 积分160分
  • 威望17点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-09-14 14:04
哦,补充一下,我改的platform.reg是我工程项目下面的platform.reg,所以改完后就直接make image的,这样不知道行不行,是不是必须要改平台下面的platform.reg?
caep
驱动牛犊
驱动牛犊
  • 注册日期2005-12-22
  • 最后登录2008-03-09
  • 粉丝0
  • 关注0
  • 积分160分
  • 威望17点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-09-14 14:12
不好意思,再补充一下,我的X86平台下面的platform.reg对com2,com3的设置原文如下:
    "SysIntr"=dword:13 ;
     "IoBase"=dword:02F8 ;

    "SysIntr"=dword:1A ;  
    "IoBase"=dword:03E8 ;
  3的端口映射与你介绍的那个资料不太一样啊,SysIntr原来是1A,而不是14.
游客

返回顶部