一种中断处理方法和系统的制作方法

文档序号:6464692阅读:251来源:国知局
专利名称:一种中断处理方法和系统的制作方法
技术领域
本发明涉及计算机系统,尤其涉及一种计算机系统中的中断处理方法和 系统。
背景技术
中断机制是计算机系统的一种事件处理机制。在计算机系统运行时,如 果系统收到一个非预期的、急需处理的事件,系统就必须暂时停止执行当前 程序并记录当前程序的中断位置,然后转而去执行一个事件处理程序以处理 上述事件,等上述事件处理完毕后,系统再返回中断发生前正在执行的当前 程序的中断位置以继续执行该程序,这种事件处理机制即称为中断机制,以 上过程称为中断处理过程,引起中断的事件称为中断源,对事件进行处理的 事件处理程序称为中断处理程序,系统暂时停止执行当前程序时所记录的中 断位置称为中断点。中断源可以是来自计算机系统外部的事件,例如由用户 输入触发的事件,也可以是来自系统内部的事件,例如对S见频中的某一帧画 面解码完成后系统自身产生的事件,对应不同的事件,必须使用不同的中断 处理程序对其进行处理。
嵌入式计算机中,系统通常采用分层的系统结构以达成较低的耦合性, 一种常见的系统结构包括驱动层和应用层,所有需要直接与硬件交互的程序 模块都归入驱动层,而提供应用功能的程序模块则构成应用层,应用层中的 程序模块不直接访问硬件,而是通过驱动层提供的接口间接地与硬件交互。
采用这种二层系统架构的嵌入式计算机系统同样需要提供一种中断处理 机制,对于与应用层程序模块无关的中断请求,中断处理可以完全在驱动层
中进行,即对应这些中断的中断处理程序是被包括在驱动层中的;但是对于 与应用层程序模块有关的中断请求,因为不同的应用有不同的中断处理方法,因此中断处理不能完全在驱动层中进行;对于这一技术问题,现有技术 中的解决方案通常是完全在应用层中处理这种中断请求,即对应这种中断请 求的中断处理程序要被完全包括在应用层中。
现有技术中的这种解决方案的缺点是,如果^J巴中断处理程序完全包括在 应用层中,则应用层的应用软件中必须包括与中断有关的硬件操作,因而增 加了应用软件中断处理的复杂度;并且,如果在应用软件中集成包含某种特 定硬件操作的中断处理程序,将使该应用软件只能在支持这种特定硬件操作 的硬件上运行,降低了应用软件的可移植性。

发明内容
本发明实施例提供了 一种中断处理方法和一种中断处理系统,用于降低计 算机系统,尤其是采用二层系统架构的嵌入式计算机系统中,应用层的应用软 件进行中断处理的复杂度。
本发明实施例提供的中断处理方法包括步骤
驱动层中断处理模块在同时关联硬件操作和应用软件操作的中断请求到 达时,处理所述硬件操作;
驱动层中断处理模块根据处理所述应用软件操作的应用层中断处理模块 的识别信息,调用所述应用层中断处理模块处理所述应用软件操作。
本发明实施例4是供的中断处理系统包括
应用层中断处理模块,用于处理与中断请求相关联的应用软件操作; 驱动层中断处理模块,用于处理与所述中断请求相关联的硬件操作,以
及根据保存在驱动层中断处理模块中的应用层中断处理模块识别信息,调用
所述应用层中断处理才莫块。
通过在计算机系统,尤其是采用二层系统架构的嵌入式计算机系统中采
用本发明实施例提出的这种方法以及系统,可以分离中断处理中的硬件操作
和应用软件操作,降低了驱动层和应用层之间的耦合度,从而降低了应用软件
中断处理的复杂度、增强了应用软件的可移植性。


图1是本发明实施例提供的中断处理方法的流程图2是本发明实施例提供的中断处理系统的结构示意图3是本发明实施例提供的中断处理系统的一个应用实例的处理流程示意图。
具体实施例方式
本发明实施例针对同时关联石更件操作和应用软件才喿作的中断请求,为计 算机系统,尤其是采用二层系统架构的嵌入式计算机系统提供一种新的中断 机制,由驱动层中断处理模块处理硬件操作,并根据应用层中断处理模块的识 别信息,调用相应的应用层中断处理模块处理应用软件操作。从而分离了硬件 操作和应用软件操作,降低了计算机系统处理这种中断时,驱动层和应用层之 间的耦合度,从而降低了应用软件中断处理的复杂度、增强了应用软件的可移 植性。
下面结合附图详细说明本发明提供的技术方案。
如图l所示,本发明实施例提出的中断处理方法主要包括如下步骤
步骤S101、驱动层中断处理模块接收中断请求;
系统外部或内部能够触发中断的事件类型很多,例如在发生急需处理的事 件发生时触发中断,具体例如用户按下了一个键盘按键,或者系统完成了对 视频中一帧画面的解码过程,这时相应的硬件设备(例如键盘、视频解码芯片 等)会产生并发送一个中断请求。
当该中断请求同时关联硬件操作和应用软件操作或者只关联硬件操作时, 则该中断请求被发送给驱动层中断处理模块,驱动层中断处理模块是驱动层中 处理该中断关联的硬件操作的中断处理程序,该驱动层中断处理模块接收到中 断请求后,进行和该中断请求有关的硬件操作。根据不同的中断请求,硬件操 作可能包括屏蔽其他中断请求、取消屏蔽其他中断请求、清除当前的中断 标记等,这些操作都需要直接操作硬件,例如在CPU寄存器中赋值或者清空
CPU寄存器;
步骤S102、驱动层中断处理模块获得处理应用软件操作的应用层中断处
理模块的识别信息;
如果中断请求同时关联了硬件操作和应用软件操作,则驱动层中断处理模
块还需要进一步获得处理应用软件操作的应用层中断处理模块的识别信息。上 述中断请求到达时,处理硬件操作;
步骤S103、驱动层中断处理模块根据识别信息调用应用层中断处理模块; 步骤S104、被调用的应用层中断处理模块处理该中断关联的应用软件操作。
应用层中断处理才莫块是应用层中的中断处理程序,驱动层中断处理^=莫块获 取中断请求对应的应用层中断处理模块的识别信息,并通过该识别信息调用 该应用层中断处理模块以进行中断请求相关联的应用软件操作,这些应用软件 操作可以包括在应用层中进行的进程调用、变量赋值等等操作。
上述应用层中断处理模块的识别信息可以是程序设计人员预先设置在驱 动层中断处理模块中的,也可以是由应用层中断处理^i块在初始化过程中设置 到驱动层中断处理冲莫块中的;该识别信息具体包括应用层中断处理程序的功能 信息以及在内存中的地址信息,以便被其他程序查找和调用。
如果一个驱动层中断处理模块可以用于处理同一应用场景中的不同类型 的中断请求,则识别信息需要针对中断请求的类型标识对应设置,驱动层中断 处理模块进一步需要根据接收到的中断请求类型确定对应的识别信息。
如果处理上述应用软件操作时需要部分硬件状态信息,那么驱动层中断处 理模块在调用应用层中断处理模块时,还从CPU寄存器中获取该硬件状态信 息,并发送给应用层中断处理模块。
本发明实施例提出的这种中断处理方法,由驱动层和应用层共同完成中 断请求的处理,即在驱动层中进行中断请求相关的硬件操作,并通过调用应 用层中断处理模块在应用层中进行中断请求相关的应用软件操作。这样,应
用软件开发人员对于中断请求只需要编写与应用场景有关的应用层中断处理 模块,并提供可被驱动层调用的接口即可,不必涉及对硬件的直接操作,进
一步实现了硬件和软件的分离,降低了应用软件中断处理的复杂度;此外, 由于采用这种方法开发的应用软件不必涉及任何硬件状态和硬件操作,因此 应用软件只需要修改一下接口就可以在基于其他硬件架构的系统上运行,大 大提高了应用软件的可移植性。
本发明实施例还提出了 一种处理与应用软件操作有关的中断请求的中断 处理系统。对于这些中断请求,该中断处理系统在驱动层中对该中断请求进 行相关的硬件操作,并根据设置在驱动层中断处理模块中的应用层中断处理 模块的识别信息,调用应用层中断处理模块对该中断请求进行进一步的处 理。
如图2所示,该中断处理系统包括
应用层中断处理模块230,用于处理与中断请求相关联的应用软件操作;
驱动层中断处理模块220,用于处理与中断请求相关联的硬件操作,这些 处理操作可能包括屏蔽其他中断请求、取消屏蔽其他中断请求、清除当前 的中断标记等等,这些操作都需要直接操作硬件,例如在CPU寄存器中赋值 或者清空CPU寄存器,因此驱动层中断处理模块220必须具备与硬件进行交 互的接口 ;驱动层中断处理模块220还用于根据应用层中断处理模块230的识 别信息,调用应用层中断处理模块230。
应用层中断处理模块230还可以进一步包括初始化单元231和应用层中断 处理单元232,其中
初始化单元231用于在初始化过程中向驱动层中断处理模块220发送该应 用层中断处理^^块230的识别信息;
应用层中断处理单元232,用于处理与中断请求相关联的应用软件操作, 包括在应用层中进行的进程调用、变量赋值等梯:作。
驱动层中断处理模块220还可以进一步包括保存单元222、驱动层中断处
理单元221和调用单元223,其中
保存单元222用于保存应用层中断处理才莫块230的识别信息,驱动层中断 处理单元221可以从保存单元222中获取该识别信息;
驱动层中断处理单元221用于处理与中断请求相关联的硬件操作,以及从 保存单元222中获得应用层中断处理模块230的识别信息,并发送该识别信
台■
'&,
块230的识别信息,调用应用层中断处理模块230。
较佳地,保存单元222还可用于保存应用层中断处理^t块230对应的中断 请求类型信息,该中断请求类型信息可以是一个应用场景中的一种特定类型 的中断请求的类型信息;上述驱动层中断处理单元221可以才艮据该中断请求类 型信息,从保存单元222中查找并获取该中断请求类型对应的应用层中断处理 模块230的识别信息。
调用单元223还可以进一步用于在调用应用层中断处理模块230时,获取 处理应用软件操作所需的硬件状态信息,并向该应用层中断处理模块230发送 该硬件状态信息;应用层中断处理模块230还进一步包括硬件状态信息接口 , 以接收该硬件状态信息;该硬件状态信息可以是CPU寄存器中存储的数值。
本发明实施例提出的这种中断处理系统,使用驱动层和应用层中的中断 处理模块共同完成中断请求的处理。这样,应用软件针对与之相关的中断请 求只需要提供可以从驱动层调用的应用层中断处理模块即可,不必涉及任何 对硬件的直接操作,进一步实现了硬件和软件的分离,降低了应用软件中进 行中断处理操作的复杂度。
下面以一个具体应用实例中的中断处理为例,说明本发明提出的这种中 断处理机制。
一种便携式视频播放器,包括视频解码芯片、嵌入式微处理器(CPU)、 嵌入式操作系统和应用软件,其中视频解码芯片用于对视频中的各视频帧进行解码;
嵌入式微处理器用于运行嵌入式操作系统、执行应用软件中的代码以及 操作视频解码芯片,嵌入式微处理器中包括多个寄存器,寄存器的数值可以 被嵌入式操作系统^^改;
嵌入式操作系统用于管理便携式视频播放器中各硬件和软件的操作和运 行,尤其用于管理中断请求及其处理;
应用软件用于播放视频,可以是一个视频播放软件。
视频解码芯片在对视频中的 一个视频帧进行解码时,会产生并发送两种 中断请求, 一种是单个视频帧的一部分解码完成后发送的第一中断请求,另 一种是一个视频帧全部解码完成后发送的第二中断请求;其中第一中断请求 所需的中断处理操作只包括更新CPU中寄存器的数值,与应用软件无关,但 是第二中断请求所需的中断处理操作既包括对CPU寄存器的硬件操作,又包 括应用软件的操作,因此需要在该便携式视频播放器的嵌入式操作系统中包 括本发明实施例提供的中断处理方法和系统。
图3是上述便携式视频播放器对视频帧进行解码的具体流程。如图3所 示,在该便携式视频播放器初始化时,应用层中断处理模块330的初始化单元 331首先将应用层中断处理模块330的识别信息,例如函数指针或程序代码的 内存地址信息,发送至驱动层中断处理模块320的保存单元322进行保存。
应用软件380插^丈^见频文件3卯时,从^L频文件390中取出一个^L频帧 391,并将该视频帧391通过操作系统370和CPU360发送至视频解码芯片 350, ;f见频解码芯片350随即开始解码该4见频帧391;
当视频帧391的第一部分的解码操作完成时,视频解码芯片350会产生并 发送第 一中断请求,该第 一中断请求的目的是更新CPU360的寄存器中的数值 以开始对视频帧391第二部分的解码梯:作,该第一中断请求请求^皮发送至驱动 层中断处理模块320的驱动层中断处理单元321;由于第一中断请求的处理只 包括对硬件的操作,因此驱动层中断处理单元321只需更新CPU360的寄存器
中保存的数值,即完成了对该第一中断请求的处理;视频解码芯片350在 CPU360的寄存器数值被更新后,继续对视频帧391的第二部分进行解码操 作;当该视频帧391第二部分的解码操作完成时,视频解码芯片350会再次产 生并发送第一中断请求,并重复上述的处理过程,然后继续对视频帧391的第 三部分进行解码操作;
当视频帧391的解码操作全部完成时,-现频解码芯片350会产生并发送第 二中断请求,该第二中断请求的目的是清空CPU360的寄存器并通知应用软件 380发送下一个视频帧;视频解码芯片350发送第二中断请求至驱动层中断处 理模块320的驱动层中断处理单元321;驱动层中断处理单元321首先完成清 空CPU360寄存器以及其他必须的硬件操作,然后检索保存单元322并获得对 应第二中断请求的应用层中断处理;f莫块330的识别信息;驱动层中断处理单元 321向调用单元323发送该识别信息,调用单元323随即根据该识别信息调用 对应的应用层中断处理模块330,并将该第二中断请求以及必要的寄存器状态 信息作为参数发送给应用层中断处理模块330的应用层中断处理单元332;应 用层中断处理单元332才艮据该第二中断请求在应用层进行相关处理,例如更新 相关的显示参数,并通知应用软件380从视频文件390中取出下一个视频帧并 发送至视频解码芯片350以进行解码。
本发明实施例提供的中断处理方法和系统的另 一 个应用实例可以是图形 用户界面中根据用户操作所产生的中断请求,例如,当用户在屏幕中坐标为 (x,y)的区域点击鼠标时,用户界面会产生一个包含该坐标信息的中断请求; 本发明实施例提供的中断处理方法和系统随即在驱动层中断处理模块中更新 CPU寄存器的数值状态以记录此次用户操作的相关信息,例如点击次数信 息,然后将该中断请求以及该点击次数信息发送至应用层中断处理模块;应 用层中断处理模块随即根据该中断请求中包含的坐标信息判断用户是否点击 了屏幕上显示的特定图标,并根据上述点击次数信息决定具体的应用软件操 作,例如高亮该特定图标,或运行该特定图标对应的应用软件等等。
不同应用场景中的应用实例,并非为了限定驱动层中断处理模块和应用层中 断处理模块与计算机系统软硬件的交互方式,本领域的技术人员可以根据具 体应用场景的不同,灵活地在计算机系统中实现本发明实施例提供的中断处 理机制。
本发明实施例提出的中断处理机制,用于处理由驱动层和应用层共同完 成中断请求,即在驱动层中进行与硬件有关的中断处理操作,并在应用层中 进行与具体应用有关的中断处理操作。通过在计算机系统,例如釆用二层系 统架构的嵌入式计算机系统中采用本发明实施例提出的这种方法以及系统,
可以进一步实现硬件和软件的分离,降低应用软件处理中断的复杂度;此 外,由于采用这种方法及系统开发的应用软件不必涉及具体的硬件状态和硬 件操作,因此应用软件只需要修改一下接口就可以在基于其他硬件架构的系 统上运行,大大提高了应用软件的可移植性。
显然,本领域的技术人员可以对本发明进行各种改动和变形而不脱离本 发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要 求及其等同技术范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1、一种中断处理方法,其特征在于,包括驱动层中断处理模块在收到同时关联硬件操作和应用软件操作的中断请求时,处理所述硬件操作;所述驱动层中断处理模块根据处理所述应用软件操作的应用层中断处理模块的识别信息,调用所述应用层中断处理模块处理所述应用软件操作。
2、 如权利要求l所述的方法,其特征在于,还包括 在驱动层中断处理模块中预先设置所述识别信息;或者 应用层中断处理模块在初始化过程中在所述驱动层中断处理模块中设置所述识别信息。
3、 如权利要求2所述的方法,其特征在于,当所述驱动层中断处理模块 用于不同类型的中断处理时,所述识别信息对应中断处理类型设置;以及所述驱动层中断处理模块根据识别信息调用应用层中断处理模块处理之 前,根据中断请求的类型确定所述识别信息。
4、 如权利要求1、 2或3所述的方法,其特征在于,当处理所述应用软件 操作需要部分硬件状态信息时,所述驱动层中断处理模块根据识别信息调用所 述应用层中断处理模块时,还从寄存器中获取处理所述应用软件操作所需的硬 件状态信息,并发送给应用层中断处理模块。
5、 一种中断处理系统,其特征在于,包括应用层中断处理模块,用于处理与中断请求相关联的应用软件操作; 驱动层中断处理模块,用于处理与所述中断请求相关联的硬件操作,以及根据保存在驱动层中断处理模块中的应用层中断处理模块识别信息,调用所述应用层中断处理4莫块。
6、 如权利要求5所述的中断处理系统,其特征在于,所述应用层中断处 理模块包括初始化单元,用于在初始化过程中将应用层中断处理模块识别信息设置到驱动层中断处理模块中;应用层中断处理单元,用于处理与所述中断请求相关联的应用软件操作。
7、 如权利要求5或6所述的中断处理系统,其特征在于,所述驱动层中 断处理模块包括保存单元,用于保存所述应用层中断处理模块的识别信息; 驱动层中断处理单元,用于处理与所述中断请求相关联的硬件操作,以及从保存单元中获得所述应用层中断处理模块的识别信息,并输出所述识别信息;调用单元,用于根据驱动层中断处理单元输出的所述识别信息,调用所 述应用层中断处理才莫块。
8、 如权利要求7所述的中断处理系统,其特征在于,所述保存单元具体 用于,根据中断请求类型信息对应保存识别信息;以及所述驱动层中断处理单元具体用于,根据所述中断请求的类型信息,从保 存单元中获取所述类型信息对应的识别信息。
9、 如权利要求5所述的中断处理系统,其特征在于,还包括寄存器,用于存4诸硬件状态信息,所述驱动层中断处理模块当处理所述应 用软件操作需要部分硬件状态信息时,从所述寄存器中获取处理所述应用软件 操作所需的硬件状态信息,并发送给应用层中断处理模块。
全文摘要
本发明提供了一种中断处理方法,用于降低为计算机系统,尤其是采用二层系统架构的嵌入式计算机系统开发应用软件的难度。本发明提供的中断处理方法包括步骤驱动层中断处理模块在同时关联硬件操作和应用软件操作的中断请求到达时,处理所述硬件操作;驱动层中断处理模块根据处理所述应用软件操作的应用层中断处理模块的识别信息,调用所述应用层中断处理模块处理所述应用软件操作。此外,本发明还提供了一种与上述方法对应的中断处理系统。
文档编号G06F9/46GK101339522SQ20081011809
公开日2009年1月7日 申请日期2008年8月11日 优先权日2008年8月11日
发明者李志刚 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1