日期:2014-05-16  浏览次数:20679 次

拜问:如何修改显示内存的大小?
各位大师,我现在正在编写一个嵌入式linux下的图形界面,基本原理是通过framebuffer直接来显示图像。我所用的显示屏分辨率是640×480,显示屏上的linux内有装Xwindows。每一次我打开framebuffer并且映射显存时,必须将这个显存看成1024×768大小进行操作,才能够正常显示我所需要的图像。请问,有没有什么办法能够将显存大小改为640×480?谢谢!

------解决方案--------------------
你设置好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色

------解决方案--------------------
我以前在PC机上640x480没问题的,SDL也试过,都可以。

你不妨在PC机上先试一下,要是可以的话,那就是你们德国工程师说的了。

------解决方案--------------------
PC上肯定是可以的,只要重新配置下内核就好了,只是你的那块板子显卡是不是驱动只支持1024x768,那就没办法了
------解决方案--------------------
看样子,不是linux的问题,好像是你的那个显示芯片有点问题。至于想直接修改显示芯片的寄存器好像得得到显示芯片厂商得技术支持才行。
我记得,原来我修改原来VIA得显卡时,他们死活不给相关得技术资料,结果我们没办法,只能自己用程序换算了。