拜问:如何修改显示内存的大小?

beiguo1010 2007-01-23 01:02:19
各位大师,我现在正在编写一个嵌入式linux下的图形界面,基本原理是通过framebuffer直接来显示图像。我所用的显示屏分辨率是640×480,显示屏上的linux内有装Xwindows。每一次我打开framebuffer并且映射显存时,必须将这个显存看成1024×768大小进行操作,才能够正常显示我所需要的图像。请问,有没有什么办法能够将显存大小改为640×480?谢谢!
...全文
2610 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyrzhlgq 2007-01-31
  • 打赏
  • 举报
回复
看样子,不是linux的问题,好像是你的那个显示芯片有点问题。至于想直接修改显示芯片的寄存器好像得得到显示芯片厂商得技术支持才行。
我记得,原来我修改原来VIA得显卡时,他们死活不给相关得技术资料,结果我们没办法,只能自己用程序换算了。
bluedreammer 2007-01-29
  • 打赏
  • 举报
回复
PC上肯定是可以的,只要重新配置下内核就好了,只是你的那块板子显卡是不是驱动只支持1024x768,那就没办法了
x86 2007-01-24
  • 打赏
  • 举报
回复
我以前在PC机上640x480没问题的,SDL也试过,都可以。

你不妨在PC机上先试一下,要是可以的话,那就是你们德国工程师说的了。
beiguo1010 2007-01-23
  • 打赏
  • 举报
回复
非常感谢楼上兄弟的指教!我曾经在我的grub中加入了这一句,但是没有效果!我问了我们公司的德国工程师,但是他们告诉我必须修改framebuffer驱动程序,并重新编译内核。我觉得这么做实在是非常的麻烦。我的思路是,在显示芯片中一定有一个寄存器用于设置显存的大小,如果我能够在我的软件中修改这个寄存器应该可以达到这个目的。不知道各位有什么意见,谢谢!
x86 2007-01-23
  • 打赏
  • 举报
回复
你设置好framebuffer的显示模式为640x480的即可。具体模式代码如下:

| 640x480 800x600 1024x768 1280x1024
----+-------------------------------------
256 | 0x301 0x303 0x305 0x307
32k | 0x310 0x313 0x316 0x319
64k | 0x311 0x314 0x317 0x31A
16M | 0x312 0x315 0x318 0x31B

在grub配置文件里设置显示模式
比如
vga=0x0x311
设置为640x480x64k色

23,114

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧