wince 驱动 双屏lcd解决方案--我的工作经验记录

我是一个刚毕业的学生,走进了嵌入式行业。我的第一份工作是在一家做会议系统的公司做软件开发,我本来在学校是读电子的,其实我感觉我更能做好一个硬件工程师,因为我没有学过c++,java,操作系统原理,编译原理等等,但我学过模拟电子,数字电子,电机学,电磁论等等,但是选择了做一个嵌入式软件工程师我就不得不,不停的学习新东西。为此感觉很开心,刚开始到这个公司做了我踏入社会第一个产品,双面桌牌。这个桌牌是具有两个显示屏,采用两个s3c2440用于驱动这两个显示屏,这个错误的方案。不是我设计的,因为我来的时候这个项目已经开始了,就差软件了,就是说别的都差不多了,只有软件了,然后我才用linux操作系统,不得不说说这个系统,linux系统作为一个开源的东西,主要目的用于学术等方面,但他不是一个商业的东西,我做的时候发现linux操作系统虽然支持目前我们所能看到的所有驱动,但是我们这个项目是一个对实时性能要求非常高的,我们的会议系统,采用485通讯,我们的用户做的所有事情,比如按键等,都受到主机的控制,就是说我们所有的行动都基于485通讯,要不然我们连个话筒都打不开,会议系统具有4个模式,表决,签到,设置id,会议模式。其中只有会议模式对通讯要求不高,其他的。要求必须在3ms内反映过来要不然,就要出错,可是linux的对实时性能要求很低,真是把我弄死了,修改串口驱动,修改的面目全非,诶!坑死我了,还有对office的支持,这完全都是不可能实现的。

 

再说说第二个项目,第二版会议系统采用s3c6410作为主控芯片,用于驱动连个lcd屏,还具有485通讯功能,wifi无限通讯,还有tvp5150视屏驱动。还要支持阅读office软件和图片,能够阅读的格式有doc,docx,ppt,pptx,xls,xlsx,txt,png,jpg,bmp等格式的文件。

 

先从方案说起,本次设计采用wince系统,wince系统能够达到硬实时性要求,可以满足我们的485通讯,这也是我选择的原因,第二个原因是阅读office软件,还有一个原因我在上一个项目对于图形设计采用qt,qt是一个跨平台的东西,意味着我可以不用改动的把上一个项目的程序移植过来,从而达到要求。这就是我选择的原因。

 

首先从串口驱动说起,串口驱动更改为要求能够在3ms内反映过来,就要更改驱动,串口驱动是流驱动,微软实现了mdd,我们开发板实现了pdd,我们只是简单的更改,说说我更改的东西吧!我在发送和就是的地方加入了485的输入输出反转,并提高了驱动的优先级,wince的优先级在1-10内为硬实时性的,我提升为6,然后是阅读串口的线程提升为9,因为应用必须比驱动低。串口就这样解决了。

 

然后是视屏,采用tvp5150,这个东西,驱动没有源代码,搞的我好惨。最后采用友坚的驱动,但是人家也不给源代码,在网上下了个驱动,经过我的研究,最后终于实现。

然后是wifi,这个驱动不用改动,主要是应用。诶!使用qt编写wifi的应用,可真是没有人道。不过还是解决了。

还有双屏,这个东西在网上连个影子懂没有,那是我都快疯了,他的硬件设计很简单,就是将它的hs和vs型号,使用个芯片反转,这个lcd屏别的都是一样的。就是说我只要控制这两个屏的hs和vs就可以了。但是远没那个简单,再说说6410的显示驱动能力把!6410支持5层的显示,就是说理论上它支持5个屏,但实际上做起来真难

 

对于双屏在wince的public目录有一个ati.cpp文件,这个就是wince下的双屏驱动例子,当然这个方法是在微软网站上找到的,诶!命苦啊!对于一个英语连四级都没有过的人,天天阅读那些英文资料,确实挺难为我的,我想把我解决过的东西,写在网上,也许有一天可以方便后来人。因为很多东西我都是从网上得来的。不过在wince里还得添加支持双屏的组建,然后添加双屏的注册表,然后就可以了。这个问题就这样解决了,但是并没有很完整的解决,发现更改为双屏后,显示驱动不支持直接对硬件的操作,比如hal,从来没有被调用过,在做ddshow显示的时候,因为视屏使用到了ddshow,这也造成了,画面的抖动,如果把双屏去掉就不再抖动了,其实双屏还有很多细节没有写出来,我想我只写来了我的解决思路。当然双屏具有两个显示缓冲区。

 

到了最后就只剩下,网络文件传输还有office文件的阅读了,现在我正在解决office文件阅读的问题,当然这是应用层的,在wince中,有一个office viewer的组建,但是如何将office viewer 在自己编写的qt程序里打开,放大,关闭等操作,还没有做出来,现在正在研究。前一段试过直接调用外部程序,但是qt调用了外部程序,当外部程序启动的时候,也就不受控了,这个是行不通的,只能在自己的程序里打开。当然现在还没有解决。

 

网路文件传输,使用tcp安全协议传输,使用ftp群发。

 

微软管网的双屏解决例子:http://technet.microsoft.com/zh-cn/library/aa910359

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值