7307|6

89

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

vxworks屏幕输出 [复制链接]

 小弟新手

一般来说用printf都是串口输出,或者shell输出,

现在想在屏幕输出请问需要调用什么函数?

这个是不是要调用屏幕的输出函数??


大家有自己屏幕输出函数吗?请给一个我参考下,谢谢

最新回复

学习了  详情 回复 发表于 2010-6-29 22:17
点赞 关注
 

回复
举报

52

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
我理解你的这个屏幕就是PC的显示器设备,在VxWorks中是INCLUDE_PC_CONSOLE。

在VxWorks中,串口和控制台等都属于IO设备,都是用printf输出的,要输出的到什么地方去,取决当前标准输输入、输出和错误定位到那个上,你调用printf就输出到那个设备上。

看如下,是设置标准输入、输出的重新设置:
    ioGlobalStdSet (STD_IN,  consoleFd);
    ioGlobalStdSet (STD_OUT, consoleFd);
    ioGlobalStdSet (STD_ERR, consoleFd);
如果consoleFd文件描述符是一个串口的,你printf就到串口,如果这个pcConDevCreate(显示器设备),printf就输出到显示器。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
引用 1 楼 yxd216 的回复:
我理解你的这个屏幕就是PC的显示器设备,在VxWorks中是INCLUDE_PC_CONSOLE。

在VxWorks中,串口和控制台等都属于IO设备,都是用printf输出的,要输出的到什么地方去,取决当前标准输输入、输出和错误定位到那个上,你调用printf就输出到那个设备上。

看如下,是设置标准输入、输出的重新设置:
  ioGlobalStdSet (STD_IN, conso……


是的,就是pc的显示器。

关于这个如何设置能不能说的详细点,

consoleFd文件描述福。如何配制成pcConDevCreate  小弟这块不懂,谢谢了
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

4
 
楼主关键的地方在于没有理解STDIN、STDOUT、STDERR、文件描述符fd等的概念。建议把这几个基本概念了解了就比较清楚了。
对于一个任务来说,它的标准输出定向到哪个设备,那打印的时候就打印到哪个设备上了。
vxworks下的任务可以单独用ioTaskStdSet()进行设置标准输入输出,上面说的ioGlobalStdSet()则可以把默认所有任务的标准输入输出定位到某个fd上
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

5
 
在编译bootrom要用到target/config/all/bootconfig.c文件,在这个文件中的usrRoot函数有如下一段代码:
#ifdef INCLUDE_PC_CONSOLE
    pcConDrv ();
    for (ix = 0; ix < N_VIRTUAL_CONSOLES; ix++)
        {
        sprintf (tyName, "%s%d", "/pcConsole/", ix);
        (void) pcConDevCreate (tyName,ix, 512, 512);
        if (ix == PC_CONSOLE)           /* init the console device */
            {
            strcpy (consoleName, tyName);
            consoleFd = open (consoleName, O_RDWR, 0);
            (void) ioctl (consoleFd, FIOBAUDRATE, CONSOLE_BAUD_RATE);
            (void) ioctl (consoleFd, FIOSETOPTIONS,
            OPT_ECHO | OPT_CRMOD | OPT_TANDEM | OPT_7_BIT);
            }
        }
#endif  /* INCLUDE_PC_CONSOLE */

就是这个INCLUDE_PC_CONSOLE定义了,就可以了,这个宏定义在你bsp包的config.h下就行了。
你需要把这个文件好好看看,最后就是定义几个宏定义,

在上面这段代码之后,就有:
    ioGlobalStdSet (STD_IN,  consoleFd);
    ioGlobalStdSet (STD_OUT, consoleFd);
    ioGlobalStdSet (STD_ERR, consoleFd);

这个之后串口输出就可以到屏幕上了。



 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

6
 
一楼是专家,顶一个!
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

7
 
学习了
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表