专利名称:一键调用应用程序的方法
一键调用应用程序的方法
技术领域:
本发明涉及计算机领域,尤其涉及一种一键调用应用程序的方法。背景技术:
在某些计算机的应用领域,用户往往不想通过操作键盘和鼠标来运行应用程序, 而是只想通过按下某个或某几个按键来简单又方便的调用各种应用程序。传统的一键调用应用程序的方法是通过调用固化在BIOS (Basic Input OutputSystem,基本输入输出系统) 中的SMI (System Management hterrupt,系统管理中断)中断服务程序来实现。例如,传统的一键恢复计算机系统的方法往往是利用SMI以及配合外接一个串口寄存器电路或USB 引擎电路实现,在系统恢复按键被按下时,重新启动计算机,在BIOS下调用SMI中断服务程序来直接进行系统恢复,待系统恢复完成后,再次启动计算机系统。然而,传统的这种方法由于是将应用程序的功能固化在BIOS的SMI中断服务程序中,由于BIOS芯片空间有限,SMI中断服务程序都要在BIOS固件代码中完成,因此难以实现复杂的功能,功能单一。此外,要修改按键对应的应用程序,则需要重新更新BIOS固件代码,操作复杂,特别对于不具备BIOS专业知识的普通程序开发人员来说难以操作。
发明内容基于此,有必要提供一种能实现多种功能的一键调用应用程序的方法。一种一键调用应用程序的方法,包括以下步骤按键按下,产生系统控制中断;响应系统控制中断,输出与所述按键对应的标识符;根据所述标识符调用对应的应用程序。优选的,在所述按键按下的步骤之前还包括将按键与通用输入输出管脚连接;配置寄存器。优选的,所述配置寄存器的步骤包括配置高级配置与电源管理接口控制寄存器,使能高级配置与电源管理接口模式和系统控制中断的中断路由映射;配置电源管理控制寄存器,使能系统控制中断;配置通用输入输出控制寄存器,使能通用输入输出功能;配置通用输入输出路由控制寄存器,使能通用输入输出管脚路由产生系统控制中断;配置通用输入输出管脚使用选择寄存器,选择将通用输入输出管脚的工作模式设置成通用输入输出模式;配置通用目的使能寄存器,使能通用输入输出管脚的状态信息位;配置通用输入输出选择寄存器,将通用输入输出管脚配置成输入模式。
优选的,所述按键按下,产生系统控制中断的步骤为按键按下,与所述按键连接的通用输入输出管脚输入的电平发生变化,产生系统控制中断。优选的,所述响应系统控制中断,输出与所述按键对应的标识符的步骤为操作系统在系统控制中断产生后调用操作系统直接能源管理下的高级配置与电源管理接口驱动去执行响应事件的处理方法,所述处理方法为输出所述按键对应的标识符。优选的,所述输出所述按键对应的标识符的步骤为向指定的端口输出所述按键对应的标识符;或将所述按键对应的标识符输出到存储器中。优选的,所述指定的端口为0x80端口。优选的,所述根据标识符调用对应的应用程序的步骤为通过应用服务程序读取指定的端口或存储器中的标识符,根据所述标识符调用对应的应用程序。优选的,还包括通过所述应用服务程序更改、增加或删除按键与应用程序的对应关系。优选的,所述应用程序包括病毒扫描杀毒程序、系统还原程序、系统备份程序、系统升级程序、应用软件升级程序和数据同步程序。上述一键调用应用程序的方法,通过按键按下产生系统控制中断,输出与按键对应的标识符,根据标识符调用对应的应用程序。由于根据标识符就可以知道被按下的按键并触发了系统控制中断,相对于传统的需要将应用程序固化在BIOS中的方法,由于没有 BIOS芯片空间的限制,因此能够实现多种功能,并能实现一些复杂的功能。
图1为一个实施例中的一键调用应用程序的方法的流程图。
具体实施方式图1示出了一个实施例中的一键调用应用程序的方法流程,该方法流程包括以下步骤步骤SlOO中,按键按下,产生系统控制中断。系统控制中断(System Control hterrupt,简称“SCI”)是一种源自于高级配置与电源管理接口 (Advanced Configuration and Power Interface,简称 “ACPI ”)兼容芯片的系统中断,系统映射不同的ACPI事件中断向量以便共享此中断,当底层硬件产生系统控制中断时,根据通知OSPM(OS-directed PowerManagement,操作系统直接能源管理)层处理对应的ACPI事件,OSPM层会调用预先安装的中断句柄。步骤S200中,响应系统控制中断,输出与所述按键对应的标识符。可设置不同的按键对应输出不同的标识符。步骤S300中,根据所述标识符调用对应的应用程序。可调用的应用程序包括但不限于病毒扫描杀毒程序、系统还原程序、系统备份程序、系统升级程序、应用软件升级程序和数据同步程序等。有些芯片组中规定了部分通用输入输出(General Purpose Input Output,GPIO) 管脚依据不同的配置可以实现多种功能,这些GPIO管脚属于功能可复用接口。例如 Intel5系列芯片组和htel3400系列芯片组。本发明实施例中,采用通用输入输出管脚中的GPIOO GPI015,这些管脚都可被配置成响应系统控制中断的GPIO管脚。上述实施例中,在执行步骤SlOO之前,需要进行硬件连接和寄存器配置。其中,硬件连接是将按键与通用输入输出管脚GPIOO GPI015连接,最多可以连接16个按键。为了使与按键连接的通用输入输出管脚GPIOO GPI015能在操作系统下产生并正确响应系统控制中断,需要配置相应的寄存器,其中所需配置的寄存器如下配置高级配置与电源管理接口控制寄存器ACPI_CNTL (ACPI ControlRegister), 使能ACPI模式。由于系统控制中断需要操作系统的支持,只有在ACPI模式下才可以使用, 因此需要使能ACPI模式。ACPI_CNTL的bit [7]位可以使能/禁用ACPI模式,将ACPI_CNTL 的bit [7]位设置为“ 1 ”,则使能ACPI模式。配置寄存器ACPI_CNTL,使能系统控制中断的中断路由映射。寄存器ACPI_CNTL的 bit[2:0]位可用来设置系统控制中断的中断路由映射,系统控制中断依据bit[2:0]位的配置可以被映射为11^!9、11^10、11^11、11^12、11^22或11^23,11^即中断请求。若13^[2:0] 被设置成000b,则系统控制中断映射为IRQ9,若bit[2:0]被设置成010b,则系统控制中断映射为IRQ11,依次类推。本发明实施例中,将系统控制中断默认映射为IRQ9。配置电源管理控制寄存器,使能系统控制中断。通用输入输出管脚GPI00 GPI015能正确在操作系统下响应系统控制中断,还需要使能系统控制中断。将配置电源管理控制寄存器PM1_CNT (Power Management 1 Control)的bit
设置为“1”,则使能系统控制中断。配置通用输入输出控制寄存器,使能通用输入输出功能。能够响应系统控制中断的通用输入输出管脚GPI00 GPI015必须配置成GPIO功能,通用输入输出控制寄存器 GC (GP10 Control Register)的 bit [4]位用来使能 / 禁用 GPIO 功能,将 GC 的 bit [4]位配置成“1”来使能GPIO功能。配置通用输入输出路由控制寄存器,使能通用输入输出管脚路由产生系统控制中断。为了能在操作系统下正确响应系统控制中断,通用输入输出管脚GPI00 GPI015需要被配置成能够路由产生系统控制中断。对通用输入输出路由控制寄存器GPI0_R0UT(GPI0 Routing Control Register)的bit [31 0]的配置即可实现通用输入输出管脚GPI00 GPI015对系统控制中断的路由控制。其中,bit[l:0]配置成IOb即实现对通用输入输出管脚GPI00系统控制中断的路由设置,bit[3:2]配置成IOb即实现对通用输入输出管脚 GPI01系统控制中断的路由设置,bit[5:4]配置成IOb即实现对通用输入输出管脚GPI02 系统控制中断的路由设置,依次类推。配置通用输入输出管脚使用选择寄存器,选择将通用输入输出管脚的工作模式设置成通用输入输出模式。通过输入输出管脚GPI00 GPI015用来传输系统控制中断的信号,因此需要把通用输入输出管脚GPI00 GPI015的工作模式设置成GPIO模式。将通用输入输出管脚使用选择寄存器GPI0_USE_SEL (GPIOUse Select Register)的bit[15:0]进行相应的使能设置,其中,bit
位设置为“ 1 ”,表示把输入输出管脚GPI00设置为GPIO模式,把bit[l]位设置为“1”,表示把输入输出管脚GPIOl设置成GPIO模式,依次类推。配置通用目的使能寄存器,使能通用输入输出管脚的状态信息位。通用输入输出管脚GPIOO GPI015只有配置成输入模式时,才能接收外部电平信号的变化,响应系统控制中断。通用目的使能寄存器 GPE0_EN(General Purpose EventO Enables Register)的 bit [31:16]用来使能GPIOO GPI015的状态信息位,以便相应的通用输入输出管脚能够产生系统控制中断事件。其中,bit[16]使能通用输入输出管脚GPIOO的状态信息位GPI0_ STS,bit[17]使能通用输入输出管脚GPIOl的状态信息位GPI1_STS,依次类推。配置通用输入输出选择寄存器,将通用输入输出管脚配置成输入模式。通用输入输出管脚GPIOO GPI015只有配置成输入管脚时才能正确接收系统控制中断,因此需要将通用输入输出选择寄存器 GP_I0_SEL(GPI0 Input/OutputSelect Register)的 bit [15:0] 进行输入管脚功能的配置,用于接收外部电平信号。其中,将bit
位设置为“1”,表示把通用输入输出管脚GPIOO设置成输入管脚,用于接收系统控制中断信号;将bit [1]位设置成“1”,表示把通用输入输出管脚GPIOl设置成输入管脚,用于接收系统控制中断信号,依次类推。配置好上述各寄存器后,与按键连接的通用输入输出管脚能够在操作系统下接收系统控制中断信号,并能正确响应系统控制中断。在系统控制中断产生后,操作系统会调用 OSPM下的ACPI驱动去执行所响应事件的一个方法,该事件的处理方法需要在基本输入输出系统¢10 代码中定义,BIOS代码根据产生系统控制中断的多个事件来分别定义多个响应事件的处理方法。本发明中,系统控制中断事件的处理方法是输出与按键对应的标识符。在步骤SlOO中,当多个按键中的某个或某几个按键被按下时,由于按键在硬件电路上与通用输入输出管脚GPIOO GPI015相连,被按下的按键将导致与该按键连接的GPIO 管脚(即GPIOO GPI015中的一个)电平发生变化,从而产生系统控制中断。在步骤S200中,产生系统控制中断后,操作系统会调用OSPM下的ACPI驱动去执行响应事件的方法,该方法为输出按键对应的标识符。例如第一个按键被按下后输出标识符0x55,第二按键被按下后输出标识符OxAA,第三个按键被按下后输出标识符OxCC,依次类推。在一个实施例中,输出按键对应的标识符是向指定的端口输出按键对应的标识符。优选的,所述指定的端口为0x80端口。当然也可以是其他的10(输入输出)端口,只要是用户可以使用的端口即可。当多个按键被按下时,各个按键对应的标识符都会输出到 0x80端口,获取这些标识符的端口可以是同一个0x80端口,也可以是多个按键所对应的不同标识符分别输出到不同的IO端口。在另一个实施例中,输出按键对应的标识符是将按键对应的标识符输出到存储器中。存储器可以是电可擦除可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory, EEPR0M)或闪存(Flash)。在步骤S300中,通用应用服务程序读取指定的端口或存储器中的标识符,根据标识符调用对应的应用程序。标识符输出到指定的端口(如0x80端口)时,通过应用服务程序读取该指定端口的标识符,由于不同按键被按下所产生的系统控制中断都可以通过获取0x80端口的标识
7符来区别,因此可以在应用服务程序通过判断0x80端口的标识符来定义不同按键后调用不同的应用程序。例如,若0x80端口的标识符为0x55,则应用服务程序调用杀毒软件,若 0x80端口的标识符为Oxaa,则在应用服务程序里调用软件升级程序,若0x80端口的标识符为OxCC,则在应用服务程序中调用数据同步程序等等。在一个实施例中,在步骤S200中输出按键对应的标识符的过程还可以是在BIOS 中通过I2C总线anter-htegrated Circuit,是一种两线式串行总线,用于连接微控制器及其外围设备)将不同的标识符输出到EEPROM中,则在步骤S300中,在操作系统下通过访问I2C总线上的EEPROM读取到标识符,判断是哪个按键触发了系统控制中断。在另一个实施例中,在步骤S200中输出按键对应的标识符的过程还可以是在 BIOS中通过SPI总线(Serial Peripheral Interface,串行外围设备接口总线,一种同步串行接口,用于中央处理器与各种外围设备进行全双工、同步串行通讯)将不同的标识符输出到Flash中,则在步骤S300中,在操作系统下通过访问SPI总线上的Flash读取到标识符,判断是哪个按键触发了系统控制中断。由于本发明实施例为用户提供了统一的系统控制中断辨识方法,来获知哪个按键被按下并触发了系统控制中断,方便用户在应用服务程序调用不同的应用程序,并可通过应用服务程序更改、增加或删除按键与应用程序的对应关系。另外,由于本发明实施例只关注应用服务程序,不用关注BIOS固件代码,不需要把应用程序的功能固化在BIOS中,没有了 BIOS芯片空间的限制,能够实现多种功能,特别是一些复杂的功能。此外,通过应用服务程序能够更改、增加或删除各个按键所对应的应用程序,不用因为按键所对应调用的应用程序发生变化而屡次更改BIOS固件代码,操作简单方便。在一个实施例中,在按键被按下时,应用服务程序提示用户选择相应的应用程序, 由用户确定按键的功能,适用于可用GPIO管脚不多又要实现多个应用程序快捷调用的情形。此外,还可以不提供统一的判断接口给用户,而是直接在ACPI驱动中响应系统控制中断,通知用户调用应用程序。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
权利要求
1.一种一键调用应用程序的方法,包括以下步骤 按键按下,产生系统控制中断;响应系统控制中断,输出与所述按键对应的标识符; 根据所述标识符调用对应的应用程序。
2.根据权利要求1所述的一键调用应用程序的方法,其特征在于,在所述按键按下的步骤之前还包括将按键与通用输入输出管脚连接; 配置寄存器。
3.根据权利要求2所述的一键调用应用程序的方法,其特征在于,所述配置寄存器的步骤包括配置高级配置与电源管理接口控制寄存器,使能高级配置与电源管理接口模式和系统控制中断的中断路由映射;配置电源管理控制寄存器,使能系统控制中断; 配置通用输入输出控制寄存器,使能通用输入输出功能;配置通用输入输出路由控制寄存器,使能通用输入输出管脚路由产生系统控制中断; 配置通用输入输出管脚使用选择寄存器,选择将通用输入输出管脚的工作模式设置成通用输入输出模式;配置通用目的使能寄存器,使能通用输入输出管脚的状态信息位; 配置通用输入输出选择寄存器,将通用输入输出管脚配置成输入模式。
4.根据权利要求3所述的一键调用应用程序的方法,其特征在于,所述按键按下,产生系统控制中断的步骤为按键按下,与所述按键连接的通用输入输出管脚输入的电平发生变化,产生系统控制中断。
5.根据权利要求1至4中任意一项所述的一键调用应用程序的方法,其特征在于,所述响应系统控制中断,输出与所述按键对应的标识符的步骤为操作系统在系统控制中断产生后调用操作系统直接能源管理下的高级配置与电源管理接口驱动去执行响应事件的处理方法,所述处理方法为输出所述按键对应的标识符。
6.根据权利要求5所述的一键调用应用程序的方法,其特征在于,所述输出所述按键对应的标识符的步骤为向指定的端口输出所述按键对应的标识符;或将所述按键对应的标识符输出到存储器中。
7.根据权利要求6所述的一键调用应用程序的方法,其特征在于,所述指定的端口为 0x80 端 Π。
8.根据权利要求6所述的一键调用应用程序的方法,其特征在于,所述根据标识符调用对应的应用程序的步骤为通过应用服务程序读取指定的端口或存储器中的标识符,根据所述标识符调用对应的应用程序。
9.根据权利要求8所述的一键调用应用程序的方法,其特征在于,还包括 通过所述应用服务程序更改、增加或删除按键与应用程序的对应关系。
10.根据权利要求1所述的一键调用应用程序的方法,其特征在于,所述应用程序包括病毒扫描杀毒程序、系统还原程序、系统备份程序、系统升级程序、应用软件升级程序和数据同步程序。
全文摘要
本发明提供了一种一键调用应用程序的方法,包括以下步骤按键按下,产生系统控制中断;响应系统控制中断,输出与所述按键对应的标识符;根据所述标识符调用对应的应用程序。本发明通过按键按下产生系统控制中断,调用与按键对应的应用程序,无需将应用程序功能固化在BIOS代码中,不会受BIOS芯片空间的限制,因此能够实现多种功能,特别是实现一些复杂的应用程序功能。
文档编号G06F9/46GK102467409SQ20101053531
公开日2012年5月23日 申请日期2010年11月8日 优先权日2010年11月8日
发明者刘学平, 陈志列, 陈超, 马先明 申请人:研祥智能科技股份有限公司