CN110308934B - Hpet驱动方法和装置、可读存储介质及电子设备 - Google Patents

Hpet驱动方法和装置、可读存储介质及电子设备 Download PDF

Info

Publication number
CN110308934B
CN110308934B CN201810242110.7A CN201810242110A CN110308934B CN 110308934 B CN110308934 B CN 110308934B CN 201810242110 A CN201810242110 A CN 201810242110A CN 110308934 B CN110308934 B CN 110308934B
Authority
CN
China
Prior art keywords
hpet
operating system
function
driving
program
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.)
Active
Application number
CN201810242110.7A
Other languages
English (en)
Other versions
CN110308934A (zh
Inventor
李晨阳
李轶
胡婷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Loongson Zhongke (Chengdu) Technology Co.,Ltd.
Original Assignee
Loongson Zhongke Chengdu Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Loongson Zhongke Chengdu Technology Co ltd filed Critical Loongson Zhongke Chengdu Technology Co ltd
Priority to CN201810242110.7A priority Critical patent/CN110308934B/zh
Publication of CN110308934A publication Critical patent/CN110308934A/zh
Application granted granted Critical
Publication of CN110308934B publication Critical patent/CN110308934B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Abstract

本发明提供了一种HPET驱动方法和装置、可读存储介质及电子设备,其中,所述方法包括:操作系统启动完成后,当检测到所述操作系统中任一应用程序发送的定时请求时,通过所述操作系统调用辅助时钟定时器程序;由所述辅助时钟定时器程序根据所述HPET的操作系统接口,调用高精度事件定时器驱动程序;其中,所述高精度事件定时器驱动程序在所述操作系统启动过程中,完成对所述HPET的注册和初始化;通过所述高精度事件定时器驱动程序,驱动所述HPET执行定时任务。通过本发明提供的HPET驱动方案,能够有效提高中央处理器的定时精度。

Description

HPET驱动方法和装置、可读存储介质及电子设备
技术领域
本发明涉及事件定时器驱动技术领域,特别是涉及一种HPET驱动方法和装置、可读存储介质及电子设备。
背景技术
VxWorks操作系统即风河实时嵌入式操作系统,其原有的时钟定时器叫做系统时钟,系统时钟利用CPU(Central Processing Unit,中央处理器)本身的时钟周期计时,并在计时结束后向CPU发出中断指令,进而执行中断事件发生后的处理函数。
为了使计时更精确,可以在CPU上添加一组定时器,称为HPET(High PrecisionEvent Timer,高精度事件定时器)。该HPET定义有一组定时器,这组定时器被操作系统使用,用来给线程调度,为内核以及多媒体定时器、服务器等产生中断。HPET包含多个定时器,操作系统可以将不同的定时器分配给不同的应用程序使用。通过配置,每个定时器都能独立产生中断。
而现有技术中并没有针对HPET的软件驱动程序,使得操作系统无法驱动HPET执行定时任务。目前需要本领域技术人员亟待解决的技术问题为:提供一种HPET驱动方案,以使HPET能够在中央处理器启动后工作。
发明内容
本发明提供了一种HPET驱动方法和装置、可读存储介质及电子设备,以解决现有技术中存在的无法驱动HPET的问题。
为了解决上述问题,本发明公开了一种高精度事件定时器HPET驱动方法,其中,包括:操作系统启动完成后,当检测到所述操作系统中任一应用程序发送的定时请求时,通过所述操作系统调用辅助时钟定时器程序;其中,所述辅助时钟定时器程序为所述HPET提供操作系统接口;由所述辅助时钟定时器程序根据所述HPET的操作系统接口,调用高精度事件定时器驱动程序;其中,所述高精度事件定时器驱动程序在所述操作系统启动过程中,完成对所述HPET的注册和初始化;通过所述高精度事件定时器驱动程序,驱动所述HPET执行定时任务。为了解决上述问题,本发明还公开了一种HPET驱动装置,其特征在于,所述装置包括:第一调用模块,用于操作系统启动完成后,当检测到所述操作系统中任一应用程序发送的定时请求时,通过所述操作系统调用辅助时钟定时器程序;其中,所述辅助时钟定时器程序为所述HPET提供操作系统接口;第二调用模块,用于由所述辅助时钟定时器程序根据所述HPET的操作系统接口,调用高精度事件定时器驱动程序;其中,所述高精度事件定时器驱动程序在所述操作系统启动过程中,完成对所述HPET的注册和初始化;驱动模块,用于通过所述高精度事件定时器驱动程序,驱动所述HPET执行定时任务。
为了解决上述问题,本发明还公开了一种电子设备,其中,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行本发明中所述的任意一种HPET驱动方法。
为了解决上述问题,本发明又公开了一种可读存储介质,其中,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行本发明中所述的任意一种HPET驱动方法。
与现有技术相比,本发明包括以下优点:
本发明实施例提供的HPET驱动方法装置、可读存储介质及电子设备,一方面,在CPU中加载高精度时钟驱动程序,在操作系统启动完成后,由操作系统直接调用操作系统中的辅助时钟定时器程序,由辅助时钟定时器程序调用高精度事件定时器驱动程序,由高精度事件定时器驱动程序驱动HPET执行定时任务,从而实现了对HPET的驱动工作,使得中央处理器能够使用HPET执行高精度定时任务,有效提高了中央处理器的定时精度;另一方面,该高精度事件定时器驱动程序为独立于系统代码之外的驱动代码,通过添加高精度事件定时器驱动程序驱动HPET执行定时服务,无需修改系统代码,有效降低了实现HPET驱动工作的难度;再一方面,该高精度事件定时器驱动程序严格按照操作系统中提供的虚拟设备总线架构实现,确保了对HPET驱动的可靠性。
附图说明
图1是根据本发明实施例一的一种HPET驱动方法的步骤流程图;
图2是根据本发明实施例二的一种HPET驱动方法的步骤流程图;
图3是根据本发明实施例三的一种HPET驱动装置的结构框图;
图4是根据本发明实施例四的一种HPET驱动装置的结构框图;
图5是根据本发明实施例五的一种电子设备的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一
参照图1,示出了本发明实施例一种HPET驱动方法的步骤流程图。
本发明实施例提供的HPET驱动方法,其执行主体可以是CPU,包括以下步骤:
步骤101:操作系统启动完成后,当检测到操作系统中任一应用程序发送的定时请求时,通过操作系统调用辅助时钟定时器程序。
本发明实施例提供的HPET驱动方法可以应用于RISC(Reduced Instruction SetComputer,精简指令集计算机),例如:MIPS(Microprocessor without interlocked pipedstages,无内部互锁流水级的微处理)架构的中央处理器上,且操作系统为嵌入式操作系统(如VxWorks操作系统);其中,MIPS是一种采取精简指令集的处理器架构。此外,本发明实施例的驱动方法还可以应用在其他架构下能够通过HPET进行定时的中央处理器上,在此不做具体限定。
嵌入式操作系统与目前Linux操作系统具有如下差异,基于上述差异,本发明实施例中提供的HPET驱动方法不适用于目前Linux操作系统:
差异一、Linux操作系统设备驱动软件架构与VxWorks操作系统完全不同。Linux操作系统中的驱动架构为platform,VxWorks操作系统的驱动架构为vxBus,二者的驱动程序是完全不兼容的。差异二、linux操作系统不包含辅助时钟程序,辅助时钟为vxWorks操作系统独有。差异三、linux操作系统也有嵌入式和非嵌入式的区分,而无论何种类别的linux操作系统始终是非实时操作系统,对程序响应速度慢;vxWorks操作系统为实时操作系统,能够以最快的速度响应程序的操作。
本发明实施例中的CPU除可运行操作系统外,还可运行辅助时钟定时器程序以及高精度事件定时器驱动程序。HPET可以集成在CPU上,也可以独立于CPU存在,但与CPU之间具有连接关系,HPET用于在CPU运行过程中执行定时器功能。辅助时钟定时器程序为HPET提供操作系统接口。
本发明实施例中,操作系统接收到启动指令时,该操作系统即执行启动任务;在操作系统启动过程中,进行各个设备的硬件初始化,包括HPET的初始化。
其中,设备的硬件初始化为将设备中的CPU、HPET等硬件进行初始化,以使操作系统确定设备中存在哪些具体硬件模块,以便后续设备运行过程中启动相应硬件模块。
步骤102:由辅助时钟定时器程序根据HPET的操作系统接口,调用高精度事件定时器驱动程序。
本发明实施例中,高精度事件定时器驱动程序在操作系统启动过程中,完成对HPET的注册和初始化,操作系统启动完成后,辅助时钟定时器程序即可调用高精度事件定时器驱动程序。
辅助时钟定时器程序通过为硬件结构上的定时器提供通用系统接口,实现驱动硬件定时器提供定时服务的功能。辅助时钟定时器程序具有通用性,各种芯片对应的操作系统中均包含辅助时钟定时器程序,通过该辅助时钟定时器程序调用高精度事件定时器驱动程序,能够避免芯片所加载的操作系统的改变而导致的需要修改底层程序的问题,从而适用各种类型芯片。
步骤103:通过高精度事件定时器驱动程序,驱动HPET执行定时任务。
操作系统启动完成后,由辅助时钟定时器程序调用高精度事件定时器驱动程序,进而通过高精度事件定时器驱动程序使用HPET。具体的,辅助时钟定时器程序首先挂接中断服务程序,操作系统设置需要定时的时长,随后驱动HPET执行定时任务;定时完成后,操作系统确定为HPET触发中断信号,调用高精度事件定时器驱动程序中的中断处理函数,再由该中断处理函数调用辅助时钟定时器程序挂接的中断服务程序,由中断服务程序调用执行预设的操作。
其中,上述操作系统设置需要定时的时长是指,操作系统中任一应用程序需要HPET提供的定时服务时,即会发送定时请求,该定时请求中包含所请求的定时时长。中断服务程序所调用执行的预设操作可以为:在屏幕中绘制一帧画面的操作、在屏幕中显示一段文字信息的操作或播放一段预设的音频信息操作等。
本发明实施例提供的HPET驱动方法,在操作系统启动完成后,由操作系统直接调用操作系统中的辅助时钟定时器程序,由辅助时钟定时器程序调用高精度事件定时器驱动程序,由高精度事件定时器驱动程序驱动HPET执行定时任务,从而实现HPET的驱动。本发明实施提供的HPET驱动方法,该高精度事件定时器驱动程序严格按照操作系统中提供的虚拟设备总线架构实现,确保了对HPET驱动的可靠性。
实施例二
参照图2,示出了本发明实施例二的一种HPET驱动方法。
本发明实施例的HPET驱动方法具体包括以下步骤:
步骤201:操作系统启动完成后,当检测到操作系统中任一应用程序发送的定时请求时,通过操作系统调用辅助时钟定时器程序。
操作系统的前端、后台可以运行多个应用程序,其中,应用程序可以为电子邮件、即时聊天工具或者各游戏类应用程序。应用程序在运行的过程中可能存在定时请求;当操作系统检测到某一应用程序发送的定时请求时通过操作系统调用辅助时钟定时器程序。
本发明实施例中,以在VxWorks系统中实现HPET设备的驱动为例进行说明。本发明实施例提供的HPET驱动方法,根据HPET设备的工作原理严格按照vxbus架构实现此高精度事件定时器驱动程序。在高精度事件定时器驱动程序中实现HPET设备的注册和初始化过程,实现启动和结束时钟的功能等。其中,HPET设备的注册和初始化过程是在操作系统启动过程中执行的,启动和结束时钟的功能是在操作系统启动后执行的,步骤201至步骤206为实现启动和结束时钟功能的具体流程。
HPET设备的注册和初始化过程具体如下:
首先,操作系统启动过程中,通过操作系统调用驱动注册函数;通过驱动注册函数,将HPET的注册信息输入至设备驱动架构的子系统中。设备驱动架构的子系统通过HPET的注册信息能够在硬件上找到与该注册信息相匹配的HPET设备,从而完成HPET设备的初始化。
其中,高精度事件定时器驱动程序包括:驱动注册函数、初始化函数、驱动函数;其中,驱动注册函数用于执行HPET设备的注册流程,初始化函数用于执行HPET设备的初始化流程,驱动函数用于驱动HPET设备执行启动和结束时钟功能;驱动函数包括打开处理函数以及关闭处理函数,打开函数控制HPET开始计时;关闭处理函数控制HPET停止计时。
其次,通过设备驱动架构的子系统确定本地所有硬件设备中与HPET的注册信息相匹配的HPET设备,并将确定的HPET设备的标识发送至操作系统。
再次,通过操作系统从预先存储的设备列表中获取与确定的HPET设备的标识所对应的设备信息,并将获取到的设备信息传入所述高精度事件定时器驱动程序的初始化函数中。
HPET的设备信息可以包括但不限于:HPET设备的寄存器地址、HPET设备的定时器频率范围、HPET设备的时钟频率等信息。其中,操作系统通过HPET设备的寄存器地址可确定HPET设备所在位置并调用;HPET设备的定时器频率范围为定时器的工作频率;HPET设备的时钟频率为累加器的工作频率。然后,运行初始化函数,由初始化函数依据HPET的设备信息初始化HPET,将驱动HPET的驱动函数注册到操作系统中。
初始化HPET的作用为:设置HPET的工作方式和初值;HPET的工作方式包含HPET周期性计时、一次性计时、变频方式计时等;设置HPET的初值即将累加器和计时器清零。
驱动函数还包括:中断处理函数。最后,将HPET的中断处理函数与操作系统挂接。
其中,操作系统为中断处理函数提供函数接口,中断处理函数通过该函数接口与操作系统挂接,挂接完成后,操作系统即可根据需求调用中断处理函数。
在完成HPET设备的注册和初始化后,需将辅助时钟定时器程序与中断服务程序挂接,以便后续依据该挂接关系确定需要调用的中断服务程序,由中断服务程序调用执行预设的操作。
步骤202:通过辅助时钟定时器程序,调用高精度事件定时器驱动程序。
操作系统启动后,由操作系统调用辅助时钟定时器程序,进而由辅助时钟定时器程序调用高精度事件定时器驱动程序,而并非由操作系统直接调用高精度事件定时器驱动程序,采用高精度时钟定时器能够为操作系统提供更精确的定时服务并触发后续的中断,以及处理中断服务程序;此外,高精度时钟定时器还可以提高操作系统的实时性,并减少操作系统时钟的使用率进而降低CPU的使用率。
步骤203:通过驱动函数中的打开处理函数驱动HPET开始计时。
本发明实施例中,驱动函数包括打开处理函数和关闭处理函数,操作系统中任一应用程序发送的定时请求中包含请求时长。
其中,辅助时钟定时器程序调用驱动函数中的打开处理函数,由打开处理函数调用高精度事件定时器驱动程序驱动HPET开始计时。
步骤204:当HPET的计时时长达到请求时长时,触发中断信号并通过驱动函数中的关闭处理函数控制HPET停止计时。
本发明实施例中,HPET包括一个累加器和一个比较器;若累加器累加得到的值与比较器预先存储的值相等时,触发中断信号并通过关闭处理函数控制HPET停止计时。其中,累加器以固定的时钟频率进行数值累加,比较器中记录有请求时长对应的数值,当累加器累加得到的数值与比较器中存储的数值相等时,则说明HPET本次计时完成。
其中,辅助时钟定时器程序调用驱动函数中的关闭处理函数,由关闭处理函数调用高精度事件定时器驱动程序驱动HPET停止计时。
步骤205:将中断信号发送至操作系统。
步骤206:通过中断信号触发操作系统调用挂接的中断处理函数,由中断处理函数依据辅助时钟定时器程序与中断服务程序的挂接关系,确定需要调用的中断服务程序,由中断服务程序调用执行预设的操作。
中断处理函数被调用运行,可清除中断状态,清除中断状态包括将累加器与比较器的值均清零,以便于再次提供计时功能时使用。
本发明实施例中,操作系统触发中断信号后,由中断处理函数调用并运行中断服务程序。其中,每次触发中断后执行的操作可以相同也可以不同,因此在操作系统中可以预先设置有不同中断调用执行的操作,该预设的指操作在相应中断结束后由中断服务程序调用执行。
本发明实施例提供的HPET驱动方法,一方面,在操作系统启动完成后,由操作系统直接调用操作系统中的辅助时钟定时器程序,由辅助时钟定时器程序调用高精度事件定时器驱动程序,并将辅助时钟定时器与中断服务程序挂接,在检查到定时请求时,由高精度事件定时器驱动程序驱动HPET执行定时任务,在定时完成后通过中断处理函数中断HPET的本次定时任务,使得CPU能够使用HPET及时、精确地执行高精度定时任务,有效提高了CPU的定时精度和时效性。
实施例三
参照图3,示出了本发明实施例三的一种HPET驱动装置的结构框图。
本发明实施例的HPET驱动装置RISC,所述装置包括:第一调用模块301,用于操作系统启动完成后,当检测到所述操作系统中任一应用程序发送的定时请求时,通过所述操作系统调用辅助时钟定时器程序;其中,所述辅助时钟定时器程序为所述HPET提供操作系统接口;第二调用模块302,用于由所述辅助时钟定时器程序根据所述HPET的操作系统接口,调用高精度事件定时器驱动程序;其中,所述高精度事件定时器驱动程序在所述操作系统启动过程中,完成对所述HPET的注册和初始化;驱动模块303,用于通过所述高精度事件定时器驱动程序,驱动所述HPET高精度时间定时器执行定时任务。
本发明实施例提供的HPET驱动装置,在操作系统驱动完成后,由操作系统直接调用操作系统中的辅助时钟定时器程序,由辅助时钟定时器程序调用高精度事件定时器驱动程序,由高精度事件定时器驱动程序驱动HPET执行定时任务,从而实现HPET的驱动。本发明实施提供的HPET驱动装置,该高精度事件定时器驱动程序严格按照操作系统中提供的虚拟设备总线架构实现,确保了对HPET驱动的可靠性。
实施例四
参照图4,示出了本发明实施例四的一种HPET驱动装置的结构框图。
本发明实施例的HPET驱动装置是对实施例三中的装置的进一步优化,所述HPET驱动装置包括:第一调用模块401,用于操作系统启动完成后,当检测到所述操作系统中任一应用程序发送的定时请求时,通过所述操作系统调用辅助时钟定时器程序;其中,所述辅助时钟定时器程序为所述HPET提供操作系统接口;第二调用模块402,用于由所述辅助时钟定时器程序根据所述HPET的操作系统接口,调用高精度事件定时器驱动程序其中,所述高精度事件定时器驱动程序在所述操作系统启动过程中,完成对所述HPET的注册和初始化;驱动模块403,用于通过所述高精度事件定时器驱动程序,驱动所述HPET执行定时任务。
优选地,所述装置还包括:注册模块404,用于在所述第一调用模块通过所述操作系统调用辅助时钟定时器程序之前,在操作系统启动过程中,通过所述操作系统调用所述高精度事件定时器驱动程序中的驱动注册函数;其中,高精度事件定时器驱动程序还包括:驱动注册函数和初始化函数;输入模块405,用于通过所述驱动注册函数,将HPET的注册信息输入至设备驱动架构的子系统中;发送模块406,用于通过所述设备驱动架构的子系统确定本地所有硬件设备中与所述HPET的注册信息相匹配的HPET设备,并将确定的HPET设备的标识发送至所述操作系统;第一初始化模块407,用于通过所述操作系统从预存的设备列表中获取与所述确定的HPET设备标识对应的设备信息,并将获取到的设备信息传入所述高精度事件定时器驱动程序的初始化函数中;第二初始化模块408,用于运行所述初始化函数,由所述初始化函数依据所述HPET的设备信息初始化所述HPET,并将操作所述HPET的驱动函数注册到操作系统中;所述驱动函数包括中断处理函数;挂接模块409,用于将所述HPET的中断处理函数与操作系统挂接,其中,所述中断处理函数用于在所述HPET执行定时任务结束后,清除中断状态。
优选地,所述驱动函数还包括打开处理函数和关闭处理函数,所述操作系统中任一应用程序发送的定时请求中包含请求时长;所述驱动模块403包括:启动定时子模块4031,用于通过所述驱动函数中的打开处理函数驱动所述HPET开始计时停止定时子模块4032,用于当所述HPET的计时时长达到请求时长时,触发中断信号并通过所述驱动函数中的关闭处理函数控制所述HPET停止计时。
优选地,所述HPET驱动装置还包括:挂接关系建立模块410,用于在所述第一调用模块401当检测到所述操作系统中任一应用程序发送的定时请求时,通过所述操作系统调用辅助时钟定时器程序之前,建立所述辅助时钟定时器程序与中断服务程序的挂接关系;中断信号发送模块411,用于在所述停止定时子模块4032触发中断信号并通过所述关闭处理函数控制所述HPET停止计时之后,将所述中断信号发送至所述操作系统;中断服务程序调用模块412,用于通过所述中断信号触发所述操作系统调用挂接的所述中断处理函数,由所述中断处理函数依据所述辅助时钟定时器程序与中断服务程序的挂接关系,确定需要调用的中断服务程序,由所述中断服务程序调用执行预设的操作。
优选地,所述HPET包括累加器和一个比较器;所述停止定时子模块4032具体用于:当所述累加器内统计的计时时长与所述比较器中预选存储的值相等时,触发中断信号并通过所述关闭处理函数控制所述HPET停止计时;其中,所述比较器中预先存储的值为所述定时请求中包含的请求时长。
本发明实施例中的HPET驱动装置用于实现前述方法实施例中相应的HPET驱动方法,并且具有相应的方法实施的有益效果,在此不再赘述。
实施例五
参照图5,示出了本发明实施例五的一种用于驱动HPET的电子设备的结构示意图。
本发明实施例的电子设备包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行上述实施例中所述的任意一种HPET驱动方法。
图5是根据一示例性实施例示出的一种用于驱动HPET的电子设备的框图。
参照图5,电子设备可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,输入/输出(I/O)的接口612,传感器组件614,以及通信组件616。
处理组件602通常控制电子设备的整体操作,诸如与显示,数据通信,相机操作和记录操作相关联的操作。处理元件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理部件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
存储器604被配置为存储各种类型的数据以支持在电子设备的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件606为电子设备的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为终端600生成、管理和分配电力相关联的组件。
多媒体组件608包括在所述电子设备和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当电子设备处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件610被配置为输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当终端处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
I/O接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件614包括一个或多个传感器,用于为电子设备600提供各个方面的状态评估。例如,传感器组件614可以检测到电子设备600的打开/关闭状态,组件的相对定位,例如所述组件为终端的显示器和小键盘,传感器组件614还可以检测终端或终端一个组件的位置改变,用户与电子设备接触的存在或不存在,电子设备方位或加速/减速和电子设备的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件616被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信部件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由电子设备的处理器620执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述实施例中所示的任意一种HPET驱动方法。
本发明实施例的电子设备用于实现前述多个方法实施例中相应的HPET驱动方法,并且具有相应的方法实施的有益效果,在此不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明所提供的一种HPET驱动方法、装置、可读存储介质及电子设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
在此提供的算法和显示不与任何特定计算机、电子系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的浏览器客户端设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (12)

1.一种高精度事件定时器HPET驱动方法,其特征在于,包括:
操作系统启动完成后,当检测到所述操作系统中任一应用程序发送的定时请求时,通过所述操作系统调用辅助时钟定时器程序;其中,所述辅助时钟定时器程序为所述HPET提供操作系统接口;
由所述辅助时钟定时器程序根据所述HPET的操作系统接口,调用高精度事件定时器驱动程序;其中,所述高精度事件定时器驱动程序在所述操作系统启动过程中,完成对所述HPET的注册和初始化;
通过所述高精度事件定时器驱动程序,驱动所述HPET执行定时任务。
2.根据权利要求1所述的方法,其特征在于,所述高精度事件定时器驱动程序包括:驱动注册函数、初始化函数和驱动函数;
在通过所述操作系统调用辅助时钟定时器程序的步骤之前,所述方法还包括:
操作系统启动过程中,通过所述操作系统调用所述驱动注册函数;
通过所述驱动注册函数,将HPET的注册信息输入至设备驱动架构的子系统中;
通过所述设备驱动架构的子系统确定本地所有硬件设备中与所述HPET的注册信息相匹配的HPET设备,并将确定的HPET设备的标识发送至所述操作系统;
通过所述操作系统从预存的设备列表中获取与所述确定的HPET设备的标识所对应的设备信息,并将获取到的设备信息传入所述高精度事件定时器驱动程序的初始化函数中;
运行所述初始化函数,由所述初始化函数依据所述HPET的设备信息初始化所述HPET,并将操作所述HPET的驱动函数注册到操作系统中;所述驱动函数包括中断处理函数;
将所述HPET的中断处理函数与所述操作系统挂接,其中,所述中断处理函数用于在所述HPET执行定时任务结束后,清除中断状态。
3.根据权利要求2所述的方法,其特征在于,所述驱动函数还包括打开处理函数和关闭处理函数,所述操作系统中任一应用程序发送的定时请求中包含请求时长;
通过所述高精度事件定时器驱动程序,驱动HPET执行定时任务的步骤,包括:
通过所述驱动函数中的打开处理函数驱动所述HPET开始计时;
当所述HPET的计时时长达到所述请求时长时,触发中断信号并通过所述驱动函数中的关闭处理函数控制所述HPET停止计时。
4.根据权利要求3所述的方法,其特征在于,在当检测到所述操作系统中任一应用程序发送的定时请求时,通过所述操作系统调用辅助时钟定时器程序之前,所述方法还包括:
建立所述辅助时钟定时器程序与中断服务程序的挂接关系;
在所述触发中断信号并通过所述关闭处理函数控制所述HPET停止计时的步骤之后,所述方法还包括:
将所述中断信号发送至所述操作系统;
通过所述中断信号触发所述操作系统调用挂接的所述中断处理函数,由所述中断处理函数依据所述辅助时钟定时器程序与中断服务程序的挂接关系,确定需要调用的中断服务程序,由所述中断服务程序调用执行预设的操作。
5.根据权利要求3所述的方法,其特征在于,所述HPET包括一个累加器和一个比较器;
当所述HPET的计时时长达到所述请求时长时,触发中断信号并通过所述关闭处理函数控制所述HPET停止计时,具体包括:
当所述累加器内统计的计时时长与所述比较器中预先存储的值相等时,触发中断信号并通过所述关闭处理函数控制所述HPET停止计时;其中,所述比较器中预先存储的值为所述定时请求中包含的请求时长。
6.一种HPET驱动装置,其特征在于,所述装置包括:
第一调用模块,用于操作系统启动完成后,当检测到所述操作系统中任一应用程序发送的定时请求时,通过所述操作系统调用辅助时钟定时器程序;其中,所述辅助时钟定时器程序为所述HPET提供操作系统接口;
第二调用模块,用于由所述辅助时钟定时器程序根据所述HPET的操作系统接口,调用高精度事件定时器驱动程序;其中,所述高精度事件定时器驱动程序在所述操作系统启动过程中,完成对所述HPET的注册和初始化;驱动模块,用于通过所述高精度事件定时器驱动程序,驱动所述HPET执行定时任务。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
注册模块,用于在所述第一调用模块通过所述操作系统调用辅助时钟定时器程序之前,在操作系统启动过程中,通过所述操作系统调用所述高精度事件定时器驱动程序中的驱动注册函数;其中,所述高精度事件定时器驱动程序包括:驱动注册函数、初始化函数以及驱动函数;
输入模块,用于通过所述驱动注册函数,将HPET的注册信息输入至设备驱动架构的子系统中;
发送模块,用于通过所述设备驱动架构的子系统确定本地所有硬件设备中与所述HPET的注册信息相匹配的HPET设备,并将确定的HPET设备的标识发送至所述操作系统;
第一初始化模块,用于通过所述操作系统从预存的设备列表中获取与所述确定的HPET设备标识所对应的设备信息,并将获取到的设备信息传入所述高精度事件定时器驱动程序的初始化函数中;
第二初始化模块,用于运行所述初始化函数,由所述初始化函数依据所述HPET的设备信息初始化所述HPET,并将操作所述HPET的驱动函数注册到操作系统中;所述驱动函数包括中断处理函数;
挂接模块,用于将所述HPET的中断处理函数与所述操作系统挂接,其中,所述中断处理函数用于在所述HPET执行定时任务结束后,清除中断状态。
8.根据权利要求7所述的装置,其特征在于,所述驱动函数还包括打开处理函数和关闭处理函数,所述操作系统中任一应用程序发送的定时请求中包含请求时长;所述驱动模块包括:
启动定时子模块,用于通过所述驱动函数中的打开处理函数驱动所述 HPET开始计时;
停止定时子模块,用于当所述HPET的计时时长达到所述请求时长时,触发中断信号并通过所述驱动函数中的关闭处理函数控制所述HPET停止计时。
9.根据权利要求8所述的装置 ,其特征在于,所述装置还包括:
挂接关系建立模块,用于在所述第一调用模块当检测到所述操作系统中任一应用程序发送的定时请求时,通过所述操作系统调用辅助时钟定时器程序之前,建立所述辅助时钟定时器程序与中断服务程序的挂接关系;
中断信号发送模块,用于在所述停止定时子模块触发中断信号并通过所述关闭处理函数控制所述HPET停止计时之后,将所述中断信号发送至所述操作系统;
中断服务程序调用模块,用于通过所述中断信号触发所述操作系统调用挂接的所述中断处理函数,由所述中断处理函数依据所述辅助时钟定时器程序与中断服务程序的挂接关系,确定需要调用的中断服务程序,由所述中断服务程序调用执行预设的操作。
10.根据权利要求8所述的装置,其特征在于,所述HPET包括累加器和一个比较器;
所述停止定时子模块具体用于:当所述累加器内统计的计时时长与所述比较器中预选存储的值相等时,触发中断信号并通过所述关闭处理函数控制所述HPET停止计时;其中,所述比较器中预先存储的值为所述定时请求中包含的请求时长。
11.一种电子设备,其特征在于,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行如权利要求1-5中一个或多个所述的HPET驱动方法。
12.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1-5中一个或多个所述的HPET驱动方法。
CN201810242110.7A 2018-03-22 2018-03-22 Hpet驱动方法和装置、可读存储介质及电子设备 Active CN110308934B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810242110.7A CN110308934B (zh) 2018-03-22 2018-03-22 Hpet驱动方法和装置、可读存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810242110.7A CN110308934B (zh) 2018-03-22 2018-03-22 Hpet驱动方法和装置、可读存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN110308934A CN110308934A (zh) 2019-10-08
CN110308934B true CN110308934B (zh) 2022-03-29

Family

ID=68073520

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810242110.7A Active CN110308934B (zh) 2018-03-22 2018-03-22 Hpet驱动方法和装置、可读存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN110308934B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114661139B (zh) * 2020-12-23 2024-02-13 龙芯中科技术股份有限公司 降低功耗的方法、装置、设备及计算机可读存储介质
CN112596818B (zh) * 2020-12-30 2023-12-05 上海众源网络有限公司 一种应用程序控制方法、系统及装置
CN114860321B (zh) * 2022-04-06 2023-07-18 网易(杭州)网络有限公司 基于树莓派的外接设备控制方法、装置、设备及介质

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346687A (zh) * 2011-09-21 2012-02-08 南京航空航天大学 基于Windows驱动程序的实时系统
CN102707765A (zh) * 2012-05-15 2012-10-03 江苏中科梦兰电子科技有限公司 一种使用混合时钟源的计时方法
CN103197971A (zh) * 2013-04-22 2013-07-10 哈尔滨工业大学 Windows操作系统Pentium Ⅳ架构下高精度低CPU占用率定时器的实现方法
US8593948B1 (en) * 2012-12-04 2013-11-26 Hitachi, Ltd. Network device and method of controlling network device
CN103870326A (zh) * 2012-12-11 2014-06-18 厦门雅迅网络股份有限公司 一种将中断处理程序底半部搬移到应用层的方法及应用
CN103902425A (zh) * 2012-12-28 2014-07-02 研祥智能科技股份有限公司 计算机系统的状态监测方法及装置
CN105511879A (zh) * 2015-12-11 2016-04-20 北京元心科技有限公司 基于定时器的多系统启动方法和智能终端
CN105607106A (zh) * 2015-12-18 2016-05-25 重庆邮电大学 一种低成本高精度bd/mems融合姿态测量方法
CN105824682A (zh) * 2015-01-05 2016-08-03 深圳市腾讯计算机系统有限公司 一种虚拟机的监控方法、装置和系统
CN106708168A (zh) * 2015-11-13 2017-05-24 华为技术有限公司 多处理器系统及时钟同步方法
CN106802689A (zh) * 2016-12-14 2017-06-06 西北工业大学 Windows操作系统环境下可调速定时器的实现方法
CN106817317A (zh) * 2013-07-09 2017-06-09 英特尔公司 具有入口控制的业务量管理
CN107315678A (zh) * 2016-04-27 2017-11-03 龙芯中科技术有限公司 调试工具的调用方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6189553B2 (ja) * 2014-11-28 2017-08-30 株式会社日立製作所 仮想計算機システムの制御方法及び仮想計算機システム

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346687A (zh) * 2011-09-21 2012-02-08 南京航空航天大学 基于Windows驱动程序的实时系统
CN102707765A (zh) * 2012-05-15 2012-10-03 江苏中科梦兰电子科技有限公司 一种使用混合时钟源的计时方法
US8593948B1 (en) * 2012-12-04 2013-11-26 Hitachi, Ltd. Network device and method of controlling network device
CN103870326A (zh) * 2012-12-11 2014-06-18 厦门雅迅网络股份有限公司 一种将中断处理程序底半部搬移到应用层的方法及应用
CN103902425A (zh) * 2012-12-28 2014-07-02 研祥智能科技股份有限公司 计算机系统的状态监测方法及装置
CN103197971A (zh) * 2013-04-22 2013-07-10 哈尔滨工业大学 Windows操作系统Pentium Ⅳ架构下高精度低CPU占用率定时器的实现方法
CN106817317A (zh) * 2013-07-09 2017-06-09 英特尔公司 具有入口控制的业务量管理
CN105824682A (zh) * 2015-01-05 2016-08-03 深圳市腾讯计算机系统有限公司 一种虚拟机的监控方法、装置和系统
CN106708168A (zh) * 2015-11-13 2017-05-24 华为技术有限公司 多处理器系统及时钟同步方法
CN105511879A (zh) * 2015-12-11 2016-04-20 北京元心科技有限公司 基于定时器的多系统启动方法和智能终端
CN105607106A (zh) * 2015-12-18 2016-05-25 重庆邮电大学 一种低成本高精度bd/mems融合姿态测量方法
CN107315678A (zh) * 2016-04-27 2017-11-03 龙芯中科技术有限公司 调试工具的调用方法及装置
CN106802689A (zh) * 2016-12-14 2017-06-06 西北工业大学 Windows操作系统环境下可调速定时器的实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
第28卷核技术2005年总目次;《核技术》;20051210(第12期);第76-82页 *

Also Published As

Publication number Publication date
CN110308934A (zh) 2019-10-08

Similar Documents

Publication Publication Date Title
EP3249524A1 (en) Method and device for upgrading a zigbee device
EP3174053A1 (en) Method, apparatus and system for playing multimedia data, computer program and recording medium
RU2647625C2 (ru) Способ и устройство для запуска прикладной программы
CN110308934B (zh) Hpet驱动方法和装置、可读存储介质及电子设备
RU2653251C2 (ru) Способ, устройство и система для запуска целевой функции
EP3136793A1 (en) Method and apparatus for awakening electronic device
RU2638154C2 (ru) Способы и устройства для присваивания метки номеру
US20170060260A1 (en) Method and device for connecting external equipment
EP3112979B1 (en) Method and device for waking up mcu
CN109284149B (zh) 启动应用程序的方法及装置
KR20160042398A (ko) 백그라운드 애플리케이션을 제어하기 위한 방법 및 장치
US20170171321A1 (en) Methods and devices for managing accounts
US20160062843A1 (en) Methods and devices for backing up file
EP3236469A1 (en) Object monitoring method and device
EP3232325A1 (en) Method and device for starting application interface
CN105930213A (zh) 应用运行方法及装置
CN115576645B (zh) 一种虚拟处理器调度方法、装置、存储介质及电子设备
US10165404B2 (en) Method for triggering operation and portable electronic device
CN111966410A (zh) 启动处理方法、装置、电子设备及存储介质
EP3015949A1 (en) Method and device for displaying information
EP3073371A1 (en) Method and device for loading theme application
CN107153621B (zh) 设备识别方法及装置
EP3200075A1 (en) Method and device for calling process
US20170169467A1 (en) Information push method and device
CN106940658B (zh) 基于线程池的任务处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Applicant after: Loongson Zhongke Technology Co.,Ltd.

Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Applicant before: LOONGSON TECHNOLOGY Corp.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220223

Address after: 610212 floor 16, building 3, No. 71, heleyi street, Chengdu hi tech Zone, China (Sichuan) pilot Free Trade Zone, Chengdu, Sichuan

Applicant after: Loongson Zhongke (Chengdu) Technology Co.,Ltd.

Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Applicant before: Loongson Zhongke Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant