当前位置:  技术问答>linux和unix

显示驱动求助!新手提问

    来源: 互联网  发布时间:2015-08-10

    本文导语:  我要写一个板载linux(不是uclinux)下的驱动程序,因为板子上没有专门的显卡,所以要自己写显示驱动程序来处理应用程序发送过来的数据并交给LCD去显示。不知道如何动手才好。 我是这么想的,从内存中分配一块...

我要写一个板载linux(不是uclinux)下的驱动程序,因为板子上没有专门的显卡,所以要自己写显示驱动程序来处理应用程序发送过来的数据并交给LCD去显示。不知道如何动手才好。
我是这么想的,从内存中分配一块区域作为显存,然后把这一块显存当作一个设备。当应用程序发送数据过来的时候,我保存到这块内存上面,我不作任何处理,并通知某个硬件来处理这些数据。就相当操作这块显存,写一个关于显存的驱动程序。
我想问的是我这种想法是否可行,还有这块显存是属于块设备,还是字符设备?

我开始认为这块显存应当是一个块设备,但是后来发现有些资料说帧缓冲设备属于字符设备。我觉得我这块显存应当也是帧缓冲设备,所以它也应该是一个字符设备。

|
前几天我刚刚写过一个LCD的驱动程序,用的也是Framebuffer方式,freasy说的基本正确,你不可以用一般的char方式来完成这个驱动程序,按char设备驱动需要将对你的显存的所有操作都摹拟成对文件的操作,而且,这个操作最后由内核完成,这个也算是个系统调用.一般的用户空间的程序都只会提供有限的几个针对驱动的操作(drawpixel,drawh(v)line,fillrect)那么,完成描画的大量工作都要通过这样的系统调用将会大大降低速度,因此,需要采用framebuffer的方式,将显存映射到用户空间,用户通过mmap得到显存首地址.这样,访问起来不需要进程切换.
   此外,你的驱动程序应该放在drivers/vedio里面.你可以分析一下fbmem.c,这个是向上的接口,fbgen.c,这个是通用函数.此外,可以模仿其中已有的针对不同设备的驱动来完成你的驱动.目前比较好的驱动中涉及到很多vt的操作,这个你如果用的是嵌入式设备,一般不需要,在配置内核的时候将vt相关的东西关闭,或者找到相关代码,修改一下,以求编译通过.

|
据我的了解,块设备通常都是能够安装文件系统的。如果不需要安装文件系统,通常就不用做成块设备。
在嵌入式的设备当中,通常会有一些LCD的控制器,初始化控制器后,把数据往那个内存区域扔就可以了。不知道你用的是不是这样的Linux系统。对于这样的系统,驱动程序最好应该实现Linux的Framebuffer,使得应用程序可以像操作自己内存区域一样操作LCD。

|
可以参考这篇文章
Writting Linux Frame Buffer Driver fo LCD Device 
http://www.linuxforum.net/docnew/showflat.php?Board=new&Number=705

    
 
 

您可能感兴趣的文章:

  • 菜鸟提问,一个JFrame运行时总是最小化,怎么样让它显示成自己想要的大小,形状?
  • [提问] qt4里怎么显示打印信息??
  • 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 关于Android平台:手机马达驱动提供给android的接口有哪些?
  • 关于LINUX下1024*768显示问题,是不是因为没有驱动显卡才不能设置,如果是的话应该怎么驱动
  • 在Linux7.2中,我的显示卡已经被成功的驱动, 如何中改变显示器的刷新频率到85hz? ----阿菜
  • 文件过滤驱动如何实现目录显示转移
  • 请大家帮忙看看--->安装Red Hat 10时的显示卡驱动程序及显示器的设置问题<---来者有分
  • HTML标签参考手册 iis7站长之家
  • 加载驱动后,为什么有时在dev下不能自动显示设备文件?
  • linux下JDBC连接失败,显示找不到驱动
  • 安装Ati显卡驱动时出错LOG文件里显示在内
  • 笔记本里的主板、显卡、鼠标、显示器,没有for Linux的驱动程序,能否安装Linux?
  • Linux8.0上IBM的液晶显示屏的驱动怎么配不上啊
  • 请问framebuffer设备驱动是不是仅用于console下面的显示驱动?
  • 在red hat linux 9为显卡ATI RADEON 9600装好了驱动,但配置显示器时还是只能选择linux缺省的显卡驱动,选ATI的,那么重启后就会出错?该
  • 我的猫在Windows下显示的型号是Lucent Win Modem,哪里有linux的驱动下?
  • redhat6.2,GeForce2MX,rpm装了驱动程序,Xconfigurator显示sever doesn't exist ,can't continue,大虾救我,
  • 请教一个在linux2.4下驱动S3C44B0上的网络和液晶显示屏驱动问题
  • 2.6.33自带的sd8688的wifi驱动为神马不好使呢?(显示加载固件失败)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 新手上路:定制的对话框显示时总是最小化,为什么?
  • RedHat新手,显示分辨率不会调
  • 新手问题,请问如何在Frame上显示一个TextField???????????????????
  • 没法显示jsp页面,保错404,新手问题
  • 新手求助:vi中汉字显示成乱码
  • 我是新手,这个问题我搜半天了,可是显示页面错误,最简单的。
  • 新手送分题(又是无法显示)!!
  • 如何在windows下的DOS窗口中显示utf-8字符(CMD命令提示符终端显示utf-8字符)
  • 我安装了个linux系统, 发现linux系统的显示器的显示有点小,于是我就在显示器上把大小调了一下,本想着这样会影响xp系统的显示效果,实际上没有应响xp的显示效果,这是为什么?
  • windows下cmd命令行显示UTF8字符设置(CHCP命令)
  • 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 因无意删除一些文件,ubuntu系统无法启动,请求高手远程帮助
  • javascript eval换成document.write 显示原型
  • 不显示删除回复显示所有回复显示星级回复显示得分回复 集群服务器下相同文件夹下文件同时更新[问题点数:100分]
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • 不显示删除回复显示所有回复显示星级回复显示得分回复 ubuntu 安装mysql源码失败,好像是没有找到hostent_data的定义。急~~~~~~~~~~
  • linux下nm命令(显示可执行文件的符号信息)介绍以及常见nm命令用法举例
  • Mozilla 浏览器,中文字不能正常显示,显示的是一些方块,方块包含该字的编码:9D56,如何让它正常显示。
  • Linux下用ntpdate同步时间及date显示设置时间
  • 不显示删除回复显示所有回复显示星级回复显示得分回复 诚心请教Linux一道面试题(shell编程)
  • linux下free命令显示的内存使用情况分析
  • 关于在QT环境下加载gif图片的问题(可以显示,但是只有使用终端启动可执行文件才能显示,双击执行却不显示)这是为什么?
  • Linux/CentOS/fedora下vim显示的字符编码设置
  • 为什么JSP在JB6.0中显示正常(中文可以显示),但在IE6.0中无法正常显示(中文全为乱码)???
  • CSS控制长文本内容显示(截取的地方用省略号代替)
  • 不显示删除回复显示所有回复显示星级回复显示得分回复 ubuntu10.04 安装 mysql4.0 源码出错,提示gethostbyname_r的参数数量不对
  • Linux下显示器显示不正常
  • 不显示删除回复显示所有回复显示星级回复显示得分回复 gdb调试无法定位段错误 求救
  • 为什么执行的时候只是显示了2、3条记录。而1没有显示出来。如何才能把一也显示出来呢。


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3