專利名稱:面向嵌入式系統的顯示卡測試方法
技術領域:
本發明涉及一種顯示卡的測試方法,特別是涉及一種Qt/Embeded系統下顯示卡的測試方法。
背景技術:
Qt/Embedded是著名的Qt庫開發商Trolltech公司開發的面向嵌入式系統的Qt版本,采用Server/Client結構。Qt/Embedded延續了Qt在X Window(X Window簡稱X,為“Client-Server”結構的圖形用戶接口,Client指的是在X Window下執行的應用程序,需要X Server為其服務;Server指的是整個管理你的桌面的X Window系統,稱為X Server。X Server除了負責GUI接口管理和提供Client端的服務之外,還管理系統資源和事件的發生和傳遞。Client和Server之間通過X Protocol進行交互。X Protocol定義了Client和Server間資料發送、接收的結構和規范,實現了本地和網絡相同的處理方法。)系統上的強大功能,在底層摒棄了Xlib,(The X Library(Xlib),是X Window最低階的程序設計接口,實際是對底層X Protocol的封裝,可通過該函數庫進行一般的圖形輸出。)僅采用圖形緩沖區(FrameBuffer)作為底層圖形接口。
圖形緩沖區(FrameBuffer)是一種Linux內核的控制臺圖形功能,在i386體系上主要的設備驅動通過VESA BIOS(視頻電子標準協會基本輸入輸出系統)完成,為圖形硬件提供了一個抽象概念。它代表一些視頻硬件的幀緩沖,允許應用程序通過一個定義好的接口訪問圖形硬件。因此,軟件不需要知道任何關于低級設備(硬件寄存器)的信息。通過一個特殊的設備節點訪問幀緩沖設備,通常位于/dev目錄下,例如/dev/fb*。基于圖形緩沖區(FrameBuffer)的控制臺稱之為fbcon,這是一種獨立于硬件的抽象圖形設備。因為Linux是工作在保護模式下,所以用戶態進程是無法像DOS那樣使用顯卡BIOS里提供的中斷調用來實現直接寫屏,故Linux抽象出圖形緩沖區(FrameBuffer)這個設備來供用戶態進程實現直接寫屏。
Linux下的顯示卡測試,是對計算器系統進行檢測的重要組成部分之一。目前業界對于顯示卡的測試,一般采用通過在監視器顯示各種算法繪制的圖案(Pattern),由用戶判斷顯示是否正常。因此,對于顯示內容的繪制實現方法,是目前各種顯示卡測試的重要核心問題之一。
當前業界基于Linux系統的顯示卡測試顯示內容的繪制實現方法,一般是在X windows上利用Xlib提供的圖形庫實現繪制。但是這樣就需要在創建顯示卡測試環境時,啟動Linux系統時加載Xlib圖形庫。因為加載Xlib圖形庫需要80M至100M的空間,并且因此需要一個較長的時間加載。這樣特別對于實際應用中的計算器生產線測試而言,存在創建測試環境時間過于冗長,以及空間要求過高的問題。
發明內容
本發明所要解決的技術問題在于,提供一種面向嵌入式系統的顯示卡測試方法,其創建測試環境的時間及對空間的要求均較低,且不需加載Xlib即可完成Linux下顯示卡的測試。
因此,本發明的目的在于提供一種面向嵌入式系統的顯示卡測試方法,其步驟包括有測試初始化,其中測試初始化包括獲取當前測試控制臺文件描述符,判斷是否需要切換該測試控制臺,設置端口I/O權限及改變I/O權限級別,LRMI初始化及設置當前模式為圖形模式;保存當前VESA圖形緩沖區(FrameBuffer)狀態;設置測試顯示模式;繪制測試卡測試圖案;及恢復當前VESA圖形緩沖區(FrameBuffer)狀態,以減少顯示卡測試所需定制Linux系統的大小,提高生產線計算機生產顯示卡測試的空間(大約節省80M至100M空間)和時間效率,從而提升生產效率。而且本方法不需加載Xlib即可完成Linux下顯示卡的測試,為同樣開發基于未加載Xlib實現圖形開發的應用程序提供了可能。
本發明還提供一種面向嵌入式系統的顯示卡測試方法,其步驟包括有測試初始化,其中測試初始化包括獲取當前測試控制臺文件描述符,判斷是否需要切換該測試控制臺,設置端口I/O權限及改變I/O權限級別,LRMI初始化及設置當前模式為圖形模式;設置測試顯示模式;繪制測試卡測試圖案;及重新設置顯示模式,在不支持VESA 4F404功能調用的機型上,在顯示卡測試結束后,按照圖形緩沖區(FrameBuffer)啟動傳遞給Linux內核的顯示啟動模式進行顯示模式重設置。可以減少顯示卡測試所需定制Linux系統的大小,提高生產線計算機生產顯示卡測試的空間(大約節省80M至100M空間)和時間效率,從而提升生產效率。而且本方法不需加載Xlib即可完成Linux下顯示卡的測試,為同樣開發基于未加載Xlib實現圖形開發的應用程序提供了可能。
有關本發明的特征與實施例,現配合附圖詳細說明如下。
圖1為根據本發明方法VideoCard測試的模式(Mode)測試的流程圖;圖2為根據本發明方法在不支持VESA 4F04功能調用的機型上VideoCard測試的模式(Mode)測試的流程圖。
其中,附圖標記步驟10,20 測試初始化步驟101,201獲取當前測試控制臺文件描述符步驟102,202判斷是否需要切換該測試控制臺步驟103,203設置端口I/O權限及改變I/O權限級別步驟104,204LRMI初始化步驟105,205設置當前模式為圖形模式步驟11 保存當前VESA圖形緩沖區(FrameBuffer)狀態步驟12,21 設置測試顯示模式步驟13,22 繪制測試卡測試圖案步驟14 恢復當前VESA圖形緩沖區(FrameBuffer)狀態步驟23 重新設置顯示模式具體實施方式
圖1為根據本發明方法VideoCard測試的Mode測試的流程圖。本測試方法其步驟包括有測試初始化(步驟10),其中測試初始化(步驟10)包括獲取當前測試控制臺文件描述符Getfd(步驟101),判斷是否需要切換該測試控制臺(步驟102),如果需要,則進行切換ChangeVT,利用ioperm設置端口I/O權限及利用iopl改變I/O權限級別(步驟103),LRMI(Linux Real ModeInterface,一種保護模式下的實模式接口)初始化(步驟104),以便支持VESAINT 10調用。及利用I/O總控制函數ioctl(0,KDSETMODE,KD_GRAPHICS)設置當前模式為圖形模式(步驟105);保存當前VESA圖形緩沖區(FrameBuffer)狀態(步驟11),利用VESA 4F04功能調用獲取當前圖形緩沖區(FrameBuffer)狀態,該步驟包括利用VESA 4F04功能調用一,獲取保存圖形緩沖區(FrameBuffer)所需內存大小以及利用VESA 4F04功能調用二,保存圖形緩沖區(FrameBuffer)狀態兩個部分;利用VESA功能設置測試顯示模式(步驟12),設置VESA 4F02功能號,設置VESA 4F02功能調用設置所需測試顯示模式,INT 10虛擬中斷調用;繪制測試卡測試圖案(步驟13),繪制Mode測試紅綠藍漸變條紋;及利用VESA 4F04功能調用三,恢復測試前VESA圖形緩沖區(FrameBuffer)狀態(步驟14)。
圖2為根據本發明方法在不支持VESA 4F04功能調用的機型上視頻卡(VideoCard)測試的模式(Mode)測試的流程圖。本測試方法其步驟包括有測試初始化(步驟20),其中測試初始化(步驟20)包括獲取當前測試控制臺文件描述符Getfd(步驟201),判斷是否需要切換該測試控制臺(步驟202),如果需要,則進行切換ChangeVT,利用ioperm設置端口I/O權限及利用iopl改變I/O權限級別(步驟203),LRMI初始化(步驟204),以便支持VESA INT10調用,及利用I/O總控制函數ioctl(0,KDSETMODE,KD_GRAPHICS)設置當前模式為圖形模式(步驟205);利用VESA功能設置測試顯示模式(步驟21),設置VESA 4F02功能號,設置VESA 4F02功能調用設置所需測試顯示模式,INT 10虛擬中斷調用;繪制測試卡測試圖案(步驟22),繪制模式(Mode)測試紅綠藍漸變條紋;重新設置顯示模式(步驟23),在顯示卡測試結束后,按照圖形緩沖區(FrameBuffer)啟動傳遞給Linux內核的顯示啟動模式進行顯示模式重設置,利用SetMode函數通過設置VESA 4F02功能號,設置VESA4F02功能調用設置所需測試顯示模式,INT10虛擬中斷調用。將測試后顯示模式設定為0×114,即VESA標準模式對應的800×600×16bpp顯示模式。
雖然本發明以前述較佳實施例公開如上,但并非用以限定本發明。任何本領域的普通技術人員,在不脫離本發明的精神和范圍內,當可作些許更動與修改,因此本發明的專利保護范圍須視本說明書所附權利要求書所界定者為準。
權利要求
1.一種面向嵌入式系統的顯示卡測試方法,其特征在于,其步驟包括有測試初始化,其步驟進一步包括獲取當前測試控制臺文件描述符;判斷是否需要切換該測試控制臺;設置端口I/O權限及改變I/O權限級別;LRMI初始化;設置當前模式為圖形模式。保存當前VESA圖形緩沖區狀態;設置測試顯示模式;繪制測試卡測試圖案;恢復當前VESA圖形緩沖區狀態。
2.如權利要求1所述的測試方法,其特征在于,如果需要切換該測試控制臺,則進行切換。
3.如權利要求1所述的測試方法,其特征在于,設置測試顯示模式包括設置該VESA 4F04功能號、設置VESA 4F04功能調用設置所需測試顯示模式及INT 10虛擬中斷調用。
4.一種面向嵌入式系統的顯示卡測試方法,其特征在于,其步驟包括有測試初始化,其步驟進一步包括獲取當前測試控制臺文件描述符;判斷是否需要切換該測試控制臺;設置端口I/O權限及改變I/O權限級別;LRMI初始化;設置當前模式為圖形模式。設置測試顯示模式;繪制測試卡測試圖案;重新設置顯示模式。
5.如權利要求4所述的測試方法,其特征在于,可依照圖形緩沖區啟動傳遞給Linux內核的顯示啟動模式進行顯示模式重設置,其步驟為設置VESA 4F04功能號;設置VESA 4F04功能調用設置所需測試顯示模式;INT 10虛擬中斷調用。
全文摘要
本發明涉及一種面向嵌入式系統的顯示卡的測試方法,其步驟包括有測試初始化,其中測試初始化包括獲取當前測試控制臺文件描述符,判斷是否需要切換該測試控制臺,設置端口I/O權限及改變I/O權限級別,LRMI初始化及設置當前模式為圖形模式。保存當前VESA圖形緩沖區(FrameBuffer)狀態;設置測試顯示模式;繪制測試卡測試圖案;及恢復當前VESA圖形緩沖區(FrameBuffer)狀態。其創建測試環境的時間及對空間的要求均較低,且不需加載Xlib即可完成Linux下顯示卡的測試。
文檔編號G06F11/267GK1920790SQ20051009337
公開日2007年2月28日 申請日期2005年8月26日 優先權日2005年8月26日
發明者王鵬, 陳玄同, 劉文涵 申請人:英業達股份有限公司