[VxWorks] 使用VxWorks进行串口通信时遇到的诡异问题(基于Vmware)

szhgx26   2009-8-31 17:37 楼主
  先说一下环境,使用Vxworks5.5+Tornado2.2,BSP是Pentium4的,因为没有奔四的机器,所以在机器上用Vmware虚拟了一个机器,编译好的自启动vxworks镜像就在虚拟机上运行。一共有3台PC作了这样的设置,现在只拿两台作测试,用串口直连线连接两台PC。因为是自启动的vxworks,所以把网络模块裁剪掉了。
  程序是拿以前用过的,确定是可用的。
  现在的情况是这样,从编译到加载的整个过程都没有问题。但是在运行自己的程序时会出现一些诡异的问题,大概是这样:
  1、使用ioctl(fdtty0,SIO_HW_OPTS_SET,XXXXXX)设置串口控制参数时,只能设成一位停止、无校验,如果加入校验则无法发送接收(一台用程序,一台用串口调试助手测试);可用的参数是“CLOCAL|CS8)”,单用“CS8”也不能收发。
  2、即使是用了那个能收发的参数,在程序运行时也会出现发送的问题(用write())。表现为,开始阶段向串口发送正常,但是如果加入别的程序段,再用write(),串口就不发东西了,但是write()函数还是返回了正确的数值。我用最简单的收发程序测试了,开始的串口调试助手可以收到,然后程序也可以收到串口调试助手发的消息,之后程序就write不出东西了,但是write函数返回的数值是正确的。

  我觉得可以排除程序的问题,因为我都用上了最普通的读写程序作了测试。那么请教这样的情况可能是因为什么呢?网上看到的vmware+vxworks的帖子都是跟网络有点关系,我这个应该不存在这个问题啊。

回复评论 (6)

我对这个不是很懂  
点赞  2009-8-31 18:03
引用: 引用 1 楼 snowflakess 的回复:
我对这个不是很懂?

呃,那就等懂的人来解答吧
点赞  2009-8-31 18:47
没有人遇到过相同的问题吗?
点赞  2009-9-1 09:13
以前用Tornado2的时候,用系提供统的串口驱动,一段时间后串口就没动作了,也不报错。后来同事自己写了驱动
点赞  2009-9-1 11:35
没有遇到过这样的问题,等高手来解答吧
点赞  2009-9-1 21:52
引用: 引用 4 楼 seemknow 的回复:
以前用Tornado2的时候,用系提供统的串口驱动,一段时间后串口就没动作了,也不报错。后来同事自己写了驱动

呃,最关键的是我是最近才开始接触Vxworks甚至嵌入式的,在短期内学会写驱动似乎不现实。。。
点赞  2009-9-1 22:14
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复