2012年2月20日 星期一

LCD之framebuffer(1)

有人把framebuffer當成driver,可是我稍微看了一下幾個系統,似乎framebuffer的個數並不一致(有的只有fb0,可是有的有fb1~fb3),還有看到有人講解framebuffer本身其實是一種抽象介面,我是蠻同意這樣的看法,不過我並未完全用程式檢驗任何一個平台完畢

其中有人提到下面有趣的實驗,但是我實驗並不如我所想得

對 framebuffer 操作:

dd if=/dev/fb0 of=fbfile
可以將 fb0 中的內容保存下來存到 fbfile 裡

如果顯示模式是 1024*768 的 8 位色
dd if=/dev/zero of=/dev/fb0 bs=1024 count=768
可以清空 framebuffer (螢幕全黑)

dd if=fbfile of=/dev/fb0
將 fbfile 內的資料寫回 framebuffer


在NB上實驗第二條,想要把整個螢幕填入乘黑色,我的解析度為1366x768,結果不論我填入fb=1366 count=768*3或者fb=1366 count=768*4(數值是乘法過後的數值,我這裡用乘法好理解),都無法整個填滿,另外就是其實不用急著把之前存下的資料蓋回去,只要拿著視窗"當抹布抹一抹"亂掉的區域就可以復原(少數位置抹不到,我覺得也不是很要緊,反正在實驗)

改天寫個C語言來把framebuffer內容倒出來看看,我猜測有一部份可能是1366還會被處理一些對齊的方式,可能被擴展到1440,或者其他解析度,其餘的被切除了
 
參考連結:
http://moto.debian.tw/viewtopic.php?t=11901&start=0&postdays=0&postorder=asc&highlight=
http://top12345tw.blogspot.com/2008/04/lcd-driver.html

沒有留言:

張貼留言