直播推薦
企業(yè)動態(tài)
- 上海兆越攜重磅方案亮相軌交運維大會
- 當「AI浪潮」撞上掌舵者野心:誰在重新制定行業(yè)規(guī)則?
- 喜報 | 鑫精誠傳感器榮獲深圳名品牌及灣區(qū)名品牌
- CIBF2025現(xiàn)場直擊 | 皓天試驗設備次日熱度攀升!技術展示區(qū)成全場焦點
- 東莞市皓天試驗設備即將亮相CIBF2025,邀您共探電池測試新未來
- 京東集團發(fā)布2025年一季度業(yè)績 降本增效、技術創(chuàng)新引領京東工業(yè)高質(zhì)量發(fā)展
- 皓天試驗設備將攜多款環(huán)境試驗設備亮相CIBF2025深圳國際電池展
- 全場景節(jié)能30%以上!海爾中央空調(diào)亮相中國零售展
推薦展會
framebuffer驅(qū)動全篇 | |
作者:good02xaut 轉(zhuǎn)貼自: 點擊數(shù):586 更新時間:2006-5-8 文章錄入:admin | |
在后續(xù)的幾篇里面會詳細介紹如何編寫一個顯卡的驅(qū)動程序。 要開發(fā)frame buffer device驅(qū)動,你應該閱讀Source\Source\Documentation\fb下面的說明文件,三個重要文件00-INDEX,framebuffer.txt,internals.txt,其他文件都是針對具體顯卡芯片的說明了。
文檔/documentation/fb的索引文件。如果你對frame buffer設備有什么想法,mail:Geert Uytterhoeven <geert@> 00-index 這個文件 幀緩沖設備(framebuffer.txt譯文) 維護: Geert Uytterhoeven zui后校正: 翻譯:good02xaut@ 0.介紹 幀緩沖設備提供了顯卡的抽象描述。他同時代表了顯卡上的顯存,應用程序通過定義好的接口可以訪問顯卡,而不需要知道底層的任何操作。 該設備使用特殊的設備節(jié)點,通常位于/dev目錄,如/dev/fb*. 1.用戶角度的/dev/fb* 從用戶的角度看,幀緩沖設備和其他位于/dev下面的設備類似。他是一個字符設備,通常 主設備號是29,次設備號定義幀緩沖的個數(shù)。 通常,使用如下方式(前面的數(shù)字代碼次設備號) 0 = /dev/fb0 First frame buffer 考慮到向下兼容,你可以創(chuàng)建符號鏈接: /dev/fb0current -> fb0 幀緩沖設備也是一種普通的內(nèi)存設備,你可以讀寫其內(nèi)容。例如,對屏幕抓屏: cp /dev/fb0 myfile 顯卡。對應的幀緩沖設備(/dev/fb0 and /dev/fb1 etc.)可以獨立工作。 應用程序如 X server一般使用/dev/fb0作為默認的顯示幀緩沖區(qū)。你可以自定 把某個設備作為默認的幀緩沖設備,設置$FRAMEBUFFER環(huán)境變量即可。在sh/bash: export FRAMEBUFFER=/dev/fb1 設定后,X server將使用第二個幀緩沖區(qū)設備。 2.程序員角度看/dev/fb* 正如你所知,一個幀緩沖設備和內(nèi)存設備類似/dev/mem,并且有許多共性。你可以 read,write,seek以及mmap()。不同僅僅是幀緩沖的內(nèi)存不是所有的內(nèi)存區(qū),而是顯卡 的那部分內(nèi)存。 /dev/fb*也允許盡心ioctl操作,通過ioctl可以讀取或設定設備參數(shù)。顏色映射表 也是通過Ioctl設定。查看 這里給出摘要: - 你可以獲取設備一些不變的信息,如設備名,屏幕的組織(平面,象素,...)對應內(nèi)存區(qū) 的長度和起始地址。 驅(qū)動程序?qū)χ颠M行優(yōu)化,以滿足設備特性(返回EINVAL,如果你的設定,設備不支持) 所有這些特性讓應用程序十分容易的使用設備。X server可以使用/dev/fb*而不需知道硬件 的寄存器是如何組織的。 XF68_FBDev是一個用于位映射(單色)X server,*要做的就是 在應用程序在相應的位置設定是否顯示。 在新內(nèi)核中,幀緩沖設備可以工作于模塊中,允許動態(tài)加載。這類驅(qū)動必須調(diào)用 register_framebuffer()在系統(tǒng)中注冊。使用模塊更方便! 3.幀緩沖分辨率設定 幀緩沖的分辨率可以用工具fbset設定。他可以改變視頻設備的顯示模式。主要就是 改變當前視頻模式,如在啟動過程中,在/etc/rc.* 或 /etc/init.d/* 文件中調(diào)用, 可以把視頻模式從單色顯示變成真彩. fbset使用存儲在配置文件中的視頻模式數(shù)據(jù)表,你可以在文件中增加自己需要的顯示模式。 4.X Server X server (XF68_FBDev)是對幀緩沖設備的zui主要應用。從XFree86 3.2后,X server就是 XFree86 的一部分了,有2個工作模式: - 在/etc/XF86Config文件中,如果`Display"段關于 `fbdev"的配置: 默認設置。 不足就是你必須設定刷新頻率??梢杂胒bset -x 5.視頻模式頻率 CRT顯示器是用3個電子槍轟擊磷粉完成顏色的顯示的。 電子槍從左到右的水平掃描,并從上至下的垂直掃描。通過改變槍的電壓,所顯示的顏色 可以不同。 當電子槍完成一行掃描重新回到下一行的開始,被稱作“水平折回”。當一屏幕全部 掃描完畢,電子槍將回到zui左上腳,被成為“垂直折回”。在折回的途中電子槍是關閉的。 電子槍打點的移動速度取決于點時鐘。如果點時鐘是28.37516 MHz,打一個點需要 35242 ps。 1/(28.37516E6 Hz) = 35.242E-9 s 如果屏幕分辨率是640x480,那么一行的時間是: 640*35.242E-9 s = 22.555E-6 s 然而水平折回也是需要時間的,通常272個打點時間,因此一行總共需要: (640+272)*35.242E-9 s = 32.141E-6 s 我們就認為水平掃描的頻率是31KHz: 1/(32.141E-6 s) = 31.113E3 Hz 一屏幕含有480行,加上垂直折回時間49,一屏所需的時間: (480+49)*32.141E-6 s = 17.002E-3 s 我們就認為垂直掃描的頻率是59Hz: 1/(17.002E-3 s) = 58.815 Hz 這也意味著屏幕數(shù)據(jù)每秒鐘刷新59次。為了得到穩(wěn)定的圖像顯示效果,VESA垂直掃描 頻率不低于72Hz。但是也因人而異,有些人50Hz感覺不到任何問題,有些至少在 80Hz以上才可以。 由于顯示器不知道什么時候新行開始掃描,顯卡為每一行掃描提供水平同步信號。 類似的,他也為每一幀顯示提供垂直同步信號。圖像在屏幕上點的位置取決于這些 同步信號的發(fā)生時刻。 下圖給出了所有時序的概要。水平折回的時間就是左邊空白+右邊空白+水平同步長度。 垂直折回的時間就是上空白+下空白+垂直同步長。 6.把XFree86時序變成frame buffer device時序 典型的顯示模式: "800x600" 50 800 856 976 1040 600 637 643 666 而幀緩沖設備使用下面的參數(shù): - pixclock: 點時鐘 in ps (pico seconds) 1) Pixelclock: 更好的VESA的例子可以在XFree86的源碼中找到,
|
免責聲明
- 凡本網(wǎng)注明"來源:智能制造網(wǎng)"的所有作品,版權均屬于智能制造網(wǎng),轉(zhuǎn)載請必須注明智能制造網(wǎng),http://www.towegas.com。違反者本網(wǎng)將追究相關法律責任。
- 企業(yè)發(fā)布的公司新聞、技術文章、資料下載等內(nèi)容,如涉及侵權、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔責任,本網(wǎng)有權刪除內(nèi)容并追溯責任。
- 本網(wǎng)轉(zhuǎn)載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品來源,并自負版權等法律責任。
- 如涉及作品內(nèi)容、版權等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關權利。
SAMPE中國第二十屆國際先進復合材料展覽會
展會城市:北京市展會時間:2025-06-18