vmware下vxworks.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
vmware下vxworks

原创]vmware下vxworks也能很好地学习串口编程 【主题】在vxware下的vxworks学习串口编程 对于没有真实环境的朋友 在虚拟机下安装vxworks学习她是不二之选了 那在学习驱动方面,又从什么入门好呢? 面对最为普遍的串口,从串口驱动入门,了解vxworks的IO系统、设备驱动开发等等,也是满好的方式吧 没有目标机的朋友,怎么学习串口呢,其实很简单, 本文就是做个引子,说说虚拟机下的vxworks串口编程的环境建立 学习条件: 1 开发主机,就是你的PC拉,要有com1,com2串口哦 2 在vmware下配置好基于x86 pcPentium的vxworks 3 一根串口直连线,这个应该好买的 实现步骤: 1 首先用串口直连线把你的com1和com2连接起来 2 其次,配置vmware的虚拟设备,添加Serial-com1;Serial2-com2 如下图所示: 3 然后,在tornado下配置你的vxworks 默认的vxworks配置组件是包含INCLUDE_TTY_DEV的,所以这步当然不用管了 4 在1的基础上,运行你的vxworks 启动后,在shell下devs可以看到/tyCo/0, tyCo/1两个串口设备 这实际上是逻辑意义上的串口设备 恩,就这么简单,环境搭建好了 写个小程序测试一下吧 ^-^ BZ啊,怎么编辑代码啊,搞了半天还是没法排版好 #include ioLib.h #include stdio.h #include taskLib.h #include sioLib.h #include string.h int tyRecv(int fd) { int readCnt1; char rd; char buff[512]; int i; FOREVER { i=0; taskDelay(50); ioctl(fd,FIONREAD,(int) readCnt1); /* 判断com2接收数据缓冲区是否有数据到来 */ if(readCnt10) { while(readCnt10) { read(fd,rd,1); readCnt1--; buff[i++]=rd; } buff=\0; printf(read %s from com2 whose data were sent by com1\n,buff); } } } int tySend(int fd) { int wrtCount; char buff[]=I am god of war!; /* 发送内容 */ wrtCount = write(fd,buff,strlen(buff)); printf(write %d bytes to com1\n,wrtCount); /* 写com1口,然后数据就会通过串口直连线发送到com2方了 */ } int testMain() { int com1_Fd,com2_Fd; com1_Fd = open(/tyCo/0,2,0) ; /* 打开串口0,即serial-com1 */ com2_Fd = open(/tyCo/1,2,0); /* 打开串口1,即serial2-com2 */ /* 设置串口0,亦即com1的波特率9600,8数据为,1停止位,无校验位 */ if ( ERROR==ioctl(com1_Fd,FIOBAUDRATE,9600) ) { printf(can not set BAUDRATE!\n) ; return ERROR ; } if ( ERROR==ioctl(com1_Fd,SIO_HW_OPTS_SET,(CLOCAL|CREAD|CS8)~(HUPCL|STOPB|PARENB))) { printf(can not set OPT!\n) ; return ERROR ; } ioctl(com1_Fd,FIOFLUSH,0); /* 设置串口1,亦即com2的波特率9600,8数据为,1停止位,无校验位 */ if ( ERROR==ioctl(com2_Fd,FIOBAUDRATE,9600) ) { printf(can not set BAUDRATE!\n) ; return ERROR ; } if ( ERROR==ioctl(com2_Fd,SIO_HW_OPTS_SET,(CLOCAL|CREAD|CS8)~(HUPCL|STOPB|PARENB))) { printf(can not set OPT!\n) ; return ERROR ; } ioctl(com2_Fd,FIOFLUSH,0); /* 发起接受数据的任务 */ taskSpawn(recv,60,0,0x2000,(FUNCPTR)

文档评论(0)

asd522513656 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档