CN1924818A - 帧缓冲区状态保护方法 - Google Patents
帧缓冲区状态保护方法 Download PDFInfo
- Publication number
- CN1924818A CN1924818A CN 200510093416 CN200510093416A CN1924818A CN 1924818 A CN1924818 A CN 1924818A CN 200510093416 CN200510093416 CN 200510093416 CN 200510093416 A CN200510093416 A CN 200510093416A CN 1924818 A CN1924818 A CN 1924818A
- Authority
- CN
- China
- Prior art keywords
- frame buffer
- buffer zone
- test
- zone state
- basic input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种帧缓冲区(Frame Buffer)状态保护方法,包括下列步骤:进行系统实模式初始化,以支持当前计算机显示卡的基本输入/输出系统(BIOS)的中断调用,当基本输入/输出系统(BIOS)支持视频电子标准协会(VESA)4F04中断调用时,返回保存/恢复当前系统的帧缓冲区状态所需内存大小,保存该帧缓冲区状态,对帧缓冲区状态进行读写操作,以及在测试结束后恢复测试前该帧缓冲区状态;否则,在显示卡测试结束后,按照当前系统的帧缓冲区传送给Linux内核的一显示激活模式进行显示模式重设。该方法应用于Linux Qt/Embedded系统的显示卡测试中,以避免帧缓冲区的使用冲突,确保安全。
Description
技术领域
本发明涉及一种与嵌入式系统兼容的安全保护方法,特别是涉及一种Qt/Embedded系统下帧缓冲区(Frame Buffer)状态的保护方法。
背景技术
Qt/Embedded是著名的Qt库开发商Trolltech公司开发的面向嵌入式Linux的图形用户接口系统,采用服务器/客户端结构。许多基于Qt的X微窗口系统(X Window)程序可以非常方便地移植到Qt/Embedded上,延续了在X上的强大功能,在底层彻底摒弃了X函数库,仅采用帧缓冲区作为其底层图形接口。丰富的控件资源和较好的可移植性是Qt/Embedded最为优秀的一方面,使用X下的开发工具可以直接开发基于Qt/Embedded的用户操作接口界面。越来越多的第三方软件公司也开始采用Qt/Embedded,开发嵌入式Linux下的应用软件。
帧缓冲是一种Linux内核的控制台图形功能,在i386体系上主要的设备驱动通过视频电子标准协会基本输入/输出系统(VESA BIOS)完成,为图形硬件提供了一个抽象概念,它代表一些视频硬件的帧缓冲,允许应用程序通过一个定义好的接口访问图形硬件。因此,软件不需要知道任何关于低级设备,例如硬件寄存器的信息,而通过特殊的设备节点访问帧缓冲设备。基于帧缓冲区的控制台是一种独立于硬件的抽象图形设备。由于Linux工作在保护模式下,所以用户态进程无法像磁盘操作系统那样使用显卡基本输入/输出系统(BIOS)提供的中断调用来实现直接写屏,故Linux抽象出帧缓冲设备以供用户态进程实现直接写屏。
目前基于Qt/Embedded系统的显示卡测试,由于Qt/Embedded系统基于帧缓冲的特性,在Qt/Embedded系统运行其它需要对帧缓冲区操作的程序时,可能导致冲突的出现。例如,Linux系统下对计算机系统显示卡的测试,是对计算机系统进行测试的重要组成部分。由于目前Linux下关于显示卡测试的方法建立在虚拟仿真中断调用的基础上,利用视频电子标准协会基本输入/输出系统(VESA BIOS)的扩充中断调用实现,因此需要对帧缓冲区进行操作。当该方法移植于Qt/Embedded系统上进行测试时,由于Qt/Embedded同样会使用帧缓冲区,从而在显示卡测试过程中不可避免的存在冲突,导致当前运行主控程序花屏,严重的甚至会导致当前Linux系统关机。如何在Linux Qt/Embedded系统下,保证基于视频电子标准协会(VESA)帧缓冲区显示卡测试的正常进行,以及在运行其它需要对帧缓冲区进行操作的程序的情况下,如何避免对帧缓冲区使用冲突的问题,保证Qt/Embedded系统下多个程序对帧缓冲区操作的安全性,成为一业界亟待解决的问题。
发明内容
本发明所要解决的技术问题在于提供一种帧缓冲区(Frame Buffer)状态的保护方法,以保证应用于Linux Qt/Embedded系统的显示卡测试的正常进行,避免帧缓冲区的使用冲突,确保安全。
因此,为达上述目的,本发明所提供的帧缓冲区(Frame Buffer)状态的保护方法,包括下列步骤:进行系统实模式初始化,以支持当前计算机显示卡的基本输入/输出系统(BIOS)的中断调用,其中所述显示卡的基本输入/输出系统(BIOS)支持视频电子标准协会(VESA)4F04中断调用;返回保存/恢复当前系统的帧缓冲区状态所需内存大小;在显示卡测试之前对当前系统帧缓冲区状态进行保存;在测试结束后恢复测试前帧缓冲区状态。
本发明的另一目的在于提供一种帧缓冲区(Frame Buffer)状态的保护方法,包括下列步骤:进行系统实模式初始化,以支持当前计算机显示卡的基本输入/输出系统(BIOS)的中断调用,其中所述显示卡的基本输入/输出系统(BIOS)不支持视频电子标准协会(VESA)4F04中断调用;对当前系统帧缓冲区状态进行读写操作,并在指定地址进行修改操作;设置当前系统帧缓冲区的显示激活模式;及在显示卡测试结束后,依据该显示激活模式进行显示模式重设。
通过本发明帧缓冲区(Frame Buffer)状态的保护方法,可在运行其它需要对帧缓冲区进行操作的程序的情况下,为帧缓冲区的状态进行保护,从而避免了产生帧缓冲区使用冲突的问题,保证了Qt/Embedded系统下多个程序对帧缓冲区操作的安全性,更保证基于视频电子标准协会(VESA)帧缓冲区显示卡测试的正常进行。从而为在Qt/Embedded系统下开发同样基于帧缓冲区的程序提供了可能,使得基于嵌入式Linux的Qt/Embedded系统具有更为广泛的兼容性和适用性。
附图说明
图1为本发明帧缓冲区状态保护方法的一实施例;
图2为本发明帧缓冲区状态保护方法的另一实施例;
图3为Linux内核支持的帧缓冲区显示模式列表。
其中,附图标记:
102虚拟中断初始化
104判断初始化是否成功
106返回保存/恢复当前系统的帧缓冲区状态所需内存大小
108保存当前系统帧缓冲区状态
110对当前系统帧缓冲区进行读写操作
112恢复当前系统帧缓冲区
202虚拟中断初始化
204判断初始化是否成功
206对当前系统帧缓冲区进行读写操作
208设置视频电子标准协会(VESA)4F02功能调用
210设置当前系统帧缓冲区的显示激活模式
212显示卡测试结束后依据该显示激活模式进行显示模式重设
具体实施方式
有关本发明的特征与实施例,现配合附图详细说明如下。
图1为本发明帧缓冲区状态保护方法的一实施例。如图所示,首先虚拟中断初始化(步骤102),通过进行Linux系统实模式初始化,以支持当前计算机显示卡的基本输入/输出系统(BIOS)调用INT 10H,其中该基本输入/输出系统(BIOS)支持INT 10H中功能号为4F04的视频电子标准协会(VESA)子功能调用。然后判断上述Linux系统实模式初始化是否成功(步骤104),若失败,则结束;否则前进到步骤106,返回保存/恢复当前系统的帧缓冲区状态所需内存大小。在返回帧缓冲区状态所需内存大小过程中,需要设置中断调用入口参数,具体如下:eax=0x4F04,表示基本输入/输出系统(BIOS)INT 10H调用4F04号的视频电子标准协会(VESA)功能调用;edx=0x0,表示返回保存/恢复当前视频电子标准协会超视频图形阵列(VESA SVGA)状态所需的内存大小;ecx=0xF,表示要保存/恢复的帧缓冲区状态的位屏蔽码;此外设置保存/恢复硬件控制器状态的屏蔽位D0,保存/恢复基本输入/输出系统(BIOS)资料区的屏蔽位D1,保存/恢复数/模转换(DAC)寄存器状态的屏蔽位D3,这里D4~D7位保留。然后判断中断调用出口参数,具体如下:eax=VBE返回值,这里VBE表示视频电子标准协会(VESA)的基本输入/输出系统(BIOS)级扩展。对于显示卡的信息监测,要求其必须支持VESA的BIOS级扩展(VBE)。在支持的情况下。通过系统实模式的基本输入/输出系统(BIOS)调用INT 10H,可以取得显示卡的详细信息;以及缓冲区大小ebx,在这里ebx属于出口参数,标志通过该中断调用返回的缓冲区的大小,即保存/恢复当前视频电子标准协会超视频图形阵列(VESA SVGA)状态所需的内存大小,以64字节为单位。步骤108中,在显示卡测试之前对帧缓冲区状态进行保存,其中也需要设置中断调用入口参数和判断中断调用出口参数,除设置参数edx=0x1以及es:ebx:指向保存/恢复当前状态的缓冲区的指针外,其它具体步骤同返回帧缓冲区状态所需内存大小过程中参数设置及判断。在进行显示卡的显示内存测试时,对帧缓冲区状态进行读写操作,并在指定地址进行修改操作(步骤110)。例如,对应帧缓冲区相对映像位置进行数据写操作,然后读出验证是否一致,进而判断显示内存是否正常。在测试结束后恢复测试前该帧缓冲区状态(步骤112),其中需要设置中断入口参数以及对中断调用出口参数进行判断。这里需设置参数edx=0x2,其它入口参数设置以及出口参数判断步骤与对帧缓冲区状态进行保存过程中参数设置及判断相同。
图2为本发明帧缓冲区状态保护方法的另一实施例。如图所示,首先虚拟中断初始化(步骤202),通过进行Linux系统实模式初始化,以支持当前计算机显示卡的基本输入/输出系统(BIOS)调用INT 10H,其中该基本输入/输出系统(BIOS)不支持INT 10H中功能号为4F04的视频电子标准协会(VESA)子功能调用。然后判断上述Linux系统实模式初始化是否成功(步骤204),若失败,则结束;否则前进到步骤206,对帧缓冲区状态进行读写操作,并在指定地址进行修改操作,比如在设置显示模式时计算相应的帧缓冲区首地址,修改地址位置作为进行中断调用的入口。设置功能号为VESA 4F02的功能调用(步骤208),利用模式设置函数对当前系统的帧缓冲区的显示激活模式进行设置(步骤210)。因为在进入帧缓冲区时,可以在系统激活时向Linux内核传送视频图形数组的参数vga来激活帧缓冲区设备,例如vga=0x314将会激活800×600×16bpp模式。图3为Linux内核支持的帧缓冲显示模式列表。这里,将测试后显示激活模式设定为0x314,即视频电子标准协会(VESA)标准对应的800×600×16bpp显示模式。然后,在显示卡测试结束后,依据帧缓冲区激活传送给Linux内核的显示激活模式进行显示模式重设(步骤212)。
虽然本发明以前述的较佳实施例公开如上,但并非用以限定本发明,任何本领域的普通技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与修改,因此本发明的专利保护范围须视本说明书所附的权利要求书所界定者为准。
Claims (3)
1、一种帧缓冲区状态保护方法,应用于Linux Qt/Embedded系统的显示卡测试中,其特征在于,包括有下列步骤:
进行系统实模式初始化,以支持当前计算机显示卡的基本输入/输出系统的中断调用,其中该基本输入/输出系统支持视频电子标准协会4F04中断调用;
返回保存/恢复当前系统的帧缓冲区状态所需内存大小;
对该帧缓冲区状态进行保存;
对该帧缓冲区状态进行读写操作,并在指定地址进行修改操作;
在测试结束后恢复测试前该帧缓冲区状态。
2、如权利要求1所述帧缓冲区状态保护方法,其特征在于,该当前系统的帧缓冲区状态包括帧缓冲设备内容、显示系统基本输入/输出系统状态以及数/模转换寄存器内容。
3、一种帧缓冲区状态保护方法,应用于Linux Qt/Embedded系统的显示卡测试中,其特征在于,包括有下列步骤:
进行系统实模式初始化,以支持当前计算机显示卡的基本输入/输出系统的中断调用,其中该基本输入/输出系统不支持视频电子标准协会4F04中断调用;
对当前系统帧缓冲区状态进行读写操作,并在指定地址进行修改操作;
设置该帧缓冲区的显示激活模式;
在显示卡测试结束后,依据该显示激活模式进行显示模式重设。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100934163A CN100429627C (zh) | 2005-08-29 | 2005-08-29 | 帧缓冲区状态保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100934163A CN100429627C (zh) | 2005-08-29 | 2005-08-29 | 帧缓冲区状态保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1924818A true CN1924818A (zh) | 2007-03-07 |
CN100429627C CN100429627C (zh) | 2008-10-29 |
Family
ID=37817471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100934163A Expired - Fee Related CN100429627C (zh) | 2005-08-29 | 2005-08-29 | 帧缓冲区状态保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100429627C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101772070A (zh) * | 2009-01-05 | 2010-07-07 | 中兴通讯股份有限公司 | 重传缓冲区状态报告定时器的处理方法及终端 |
CN101739289B (zh) * | 2008-11-13 | 2013-06-19 | 北京闪联云视信息技术有限公司 | 一种在Linux虚拟机中设置显示模式的方法及装置 |
CN104040501A (zh) * | 2011-12-26 | 2014-09-10 | 英特尔公司 | 显示控制器中断寄存器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4780755A (en) * | 1987-10-26 | 1988-10-25 | Tektronix, Inc. | Frame buffer self-test |
CN1245688C (zh) * | 2001-02-14 | 2006-03-15 | 英业达股份有限公司 | 在dos方式下测试图形卡加速引擎的方法 |
-
2005
- 2005-08-29 CN CNB2005100934163A patent/CN100429627C/zh not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739289B (zh) * | 2008-11-13 | 2013-06-19 | 北京闪联云视信息技术有限公司 | 一种在Linux虚拟机中设置显示模式的方法及装置 |
CN101772070A (zh) * | 2009-01-05 | 2010-07-07 | 中兴通讯股份有限公司 | 重传缓冲区状态报告定时器的处理方法及终端 |
CN101772070B (zh) * | 2009-01-05 | 2015-02-25 | 上海中兴软件有限责任公司 | 重传缓冲区状态报告定时器的处理方法及终端 |
CN104040501A (zh) * | 2011-12-26 | 2014-09-10 | 英特尔公司 | 显示控制器中断寄存器 |
Also Published As
Publication number | Publication date |
---|---|
CN100429627C (zh) | 2008-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8416253B2 (en) | Apparatus, method, and recording medium for detecting update of image information | |
US9037873B2 (en) | Method and system for preventing tampering with software agent in a virtual machine | |
US5657445A (en) | Apparatus and method for limiting access to mass storage devices in a computer system | |
KR101019209B1 (ko) | 임베디드 소프트웨어의 인터페이스 자동 추출 장치 및 그방법 | |
US7917689B2 (en) | Methods and apparatuses for nonvolatile memory wear leveling | |
US7783867B2 (en) | Controlling instruction execution in a processing environment | |
US7992147B2 (en) | Processor control register virtualization to minimize virtual machine exits | |
US20080250165A1 (en) | USB port access management | |
US20100132015A1 (en) | Apparatus and method for providing security information in virtual environment | |
WO2008112623A1 (en) | Monitoring bootable busses | |
US20110029816A1 (en) | Personal computer diagnostic test before executing operating system | |
CN1838082A (zh) | 计算机硬盘数据保护方法 | |
CN100514298C (zh) | 异构硬件体系间软件移植的系统 | |
KR101615646B1 (ko) | 컴퓨터시스템, 그 제어방법과, 그 컴퓨터프로그램이 저장된 기록매체 | |
CN100429627C (zh) | 帧缓冲区状态保护方法 | |
US20120072638A1 (en) | Single step processing of memory mapped accesses in a hypervisor | |
US5463764A (en) | Method and system for system debugging through a keyboard device driver | |
US7882336B2 (en) | Employing a buffer to facilitate instruction execution | |
US20090083757A1 (en) | Computer system and program plug-in management method thereof | |
US20140366025A1 (en) | Methods, Devices and Computer Readable Storage Devices for Emulating Rotation Events in a Guest Operating System from a Host Operating System | |
US20100115333A1 (en) | Dynamic driver loading for recovery boot media | |
KR20190071994A (ko) | 메모리 오염 감시 장치 및 방법 | |
US6801206B2 (en) | Method and apparatus for virtualized operator panel | |
CN114210064A (zh) | 虚拟模型控制方法、装置、电子设备及存储介质 | |
CN114021043A (zh) | 一种数据显示方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20191226 Address after: No. 99, University Road, high tech Zone, Xuzhou City, Jiangsu Province Patentee after: XUZHOU LIFANG ELECTROMECHANICAL EQUIPMENT MANUFACTURING CO., LTD. Address before: Taipei City, Taiwan, China Patentee before: Yingda Co., Ltd. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081029 Termination date: 20190829 |
|
CF01 | Termination of patent right due to non-payment of annual fee |