CN101373443B - 一种主机响应、停止响应及处理外设中断的方法 - Google Patents
一种主机响应、停止响应及处理外设中断的方法 Download PDFInfo
- Publication number
- CN101373443B CN101373443B CN2008102227423A CN200810222742A CN101373443B CN 101373443 B CN101373443 B CN 101373443B CN 2008102227423 A CN2008102227423 A CN 2008102227423A CN 200810222742 A CN200810222742 A CN 200810222742A CN 101373443 B CN101373443 B CN 101373443B
- Authority
- CN
- China
- Prior art keywords
- interruption
- interrupt
- main frame
- sign
- type
- 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.)
- Expired - Fee Related
Links
- 230000002093 peripheral effect Effects 0.000 title claims abstract description 81
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000004044 response Effects 0.000 title claims abstract description 28
- 238000004891 communication Methods 0.000 claims abstract description 9
- 101000746134 Homo sapiens DNA endonuclease RBBP8 Proteins 0.000 claims description 20
- 101000969031 Homo sapiens Nuclear protein 1 Proteins 0.000 claims description 20
- 102100021133 Nuclear protein 1 Human genes 0.000 claims description 20
- 238000004321 preservation Methods 0.000 claims 1
- 230000006870 function Effects 0.000 abstract description 6
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
主机处理外设中断的方法,包括:主机上保存有可以响应的每一类中断的中断类型标识;外设在产生中断后且在调用对应的中断服务子程序进行功能实现前,或在中断结束后,向其与主机之间的通信端口输出一信息,其中包含该中断的中断类型标识和状态指示标识,状态指示标识的值相应的表示中断已产生或已结束;当主机检测到通信端口收到信息时,如根据状态指示标识的值判断出中断已产生,则判断本地是否保存有信息中携带的中断类型标识;若有,则响应该中断;若根据状态指示标识的值判断出外设中断的状态为已结束,则判断本地是否保存有信息中携带的中断类型标识;若有,则停止响应中断。采用本发明,解决了由于外设中断时间过长而导致的缓存溢出问题。
Description
技术领域
本发明涉及计算机系统,尤其涉及一种主机响应、停止响应及处理外设中断的方法。
背景技术
在外设和主机Host(主机)端的同步调试以及应用中,主机响应外设产生的中断一直是一个比较困难的瓶颈。这是因为一般外设产生的中断只能被其自己所侦测到,并通过响应中断服务子程序来进行功能实现,而主机是无法直接得知外设是在何时产生中断,又是在何时结束中断的。
在进行同步调试时,现有的主机检测外设中断结束的方法往往是让外设结束中断服务后向其自身的一块存储器里更新标志位,而主机则循环的通过通信端口发送命令读取外设中这块存储器中的标志位。这种方法对于那些中断服务程序需要较长时间的情况是很不理想的,因为外设在中断结束之前不会响应主机的命令,因此如果此时主机循环通过通信口发送命令来检测这块存储器,外设就会把主机的指令都存在一块缓存里,如果中断时间较长,则主机不断的向外设发送命令,将会造成缓存溢出,从而造成严重的后果。
发明内容
本发明要解决的技术问题是提供一种主机响应、停止响应及处理外设中断的方法,避免了由于外设中断时间过长而导致的缓存溢出的问题。
为解决上述问题,本发明提供了一种主机响应外设中断的方法,包括:
所述主机上保存有可以响应的每一类中断的中断类型标识;
所述外设在产生中断后、且在调用对应的中断服务子程序进行功能实现前,向其与所述主机之间的通信端口输出一中断产生信息,其中包含所述中断的中断类型标识;当所述主机检测到所述通信端口收到所述中断产生信息时,判断本地是否保存有所述中断产生信息中携带的中断类型标识;若有,则响应所述中断。
进一步地,上述方法还可具有以下特征:
所述主机上还保存有可以响应的每一类中断的中断使能标志,每一类中断的中断使能标志和该类中断对应的中断类型标识一一对应,其中,所述中断使能标志的值用于表示所述主机此时是否可以响应此类中断;
当所述主机判断出本地保存有所述中断产生信息中携带的中断类型标识后,且在响应所述中断之前,还判断本地保存的该中断类型标识对应的中断使能标志的值是否表示主机此时可以响应此类中断;若是,则所述主机响应所述中断。
进一步地,上述方法还可具有以下特征:
所述主机上还保存有每一类中断的中断类型标识及该类中断对应的中断服务程序入口地址的对应关系;
所述主机响应所述中断是指,所述主机根据所述中断产生信息中携带的中断类型标识查找到对应的中断服务程序的入口地址后执行相应的中断服务程序。
为解决上述问题,本发明还提供了一种主机停止响应外设中断的方法,包括:
所述主机上保存有每一类中断的中断类型标识;
所述外设结束中断后,向其与所述主机之间的通信端口输出一中断结束信息,其中包含所述中断的中断类型标识;
当所述主机检测到所述通信端口收到所述中断结束信息时,若判断出本地保存有所述中断类型标识,则停止响应所述中断。
进一步地,上述方法还可具有以下特征:
所述主机上还保存有可以响应的每一类中断的中断服务程序入口地址,每一类中断的中断服务程序入口地址和该类中断对应的中断类型标识一一对应;
所述主机停止响应所述中断是指,所述主机根据所述中断结束信息中携带的中断类型标识查找到所述中断对应的中断服务程序的入口地址后停止执行相应的中断服务程序。
进一步地,上述方法还可具有以下特征:
所述外设向所述通信接口发送的中断结束信息中还包括所述外设的标识;
如在所述外设产生中断前,所述主机上运行有所述外设对应的主机服务应用线程,则在所述外设产生中断时,所述主机阻塞所述主机服务应用线程的运行;在所述主机停止响应所述中断后,所述主机根据接收到的所述外设的标识取消阻塞所述对应的主机服务应用线程的运行。
为解决上述问题,本发明还提供了一种主机处理外设中断的方法,包括:
所述主机上保存有可以响应的每一类中断的中断类型标识;
所述外设在产生中断后且在调用对应的中断服务子程序进行功能实现前,或在中断结束后,向其与所述主机之间的通信端口输出一信息,其中包含所述中断的中断类型标识和状态指示标识,所述状态指示标识的值相应的表示所述中断已产生或已结束;
当所述主机检测到所述通信端口收到所述信息时,如根据所述状态指示标识的值判断出所述中断已产生,则判断本地是否保存有所述信息中携带的中断类型标识;若有,则所述主机响应所述中断;
若根据所述状态指示标识的值判断出所述外设中断的状态为已结束,则判断本地是否保存有所述信息中携带的中断类型标识;若有,则停止响应所述中断。
进一步地,上述方法还可具有以下特征:
所述主机上还保存有可以响应的每一类中断的中断使能标志,每一类中断的中断使能标志和该类中断对应的中断类型标识一一对应,其中,所述中断使能标志的值用于表示所述主机此时是否可以响应此类中断;
当所述主机根据所述状态指示标识的值判断出所述中断已产生且本地保存有所述信息中携带的中断类型标识后,且在响应所述中断之前,还判断本地保存的该中断类型标识对应的中断使能标志的值是否表示所述主机此时可以响应此类中断;若是,则所述主机响应所述中断。
进一步地,上述方法还可具有以下特征:
所述主机上还保存有每一类中断的中断类型标识及该类中断对应的中断服务程序入口地址的对应关系;
所述主机响应所述中断是指,所述主机根据所述信息中携带的中断类型标识查找到对应的中断服务程序的入口地址后执行相应的中断服务程序;
所述主机停止响应所述中断是指,所述主机根据所述信息中携带的中断类型标识查找到所述中断对应的中断服务程序的入口地址后停止执行相应的中断服务程序。
进一步地,上述方法还可具有以下特征:
所述外设向所述通信接口发送的信息中还包括所述外设的标识;
如在所述外设产生中断前,所述主机上运行有所述外设对应的主机服务应用线程,则在所述主机响应所述中断前,所述主机根据接收到的所述外设的标识阻塞所述对应的主机服务应用线程的运行;在所述主机停止响应所述中断后,所述主机根据接收到的所述外设的标识取消阻塞所述对应的主机服务应用线程的运行。
本发明利用外设输出的特殊信息使主机端能检测到外设中断的产生或结束,大大简化了同步调试的难度,且使得主机端能开发出更多的应用。而且在本发明中,把中断更新标志位设定在了主机侧,通过外设的打印信息来同步更新该标志位,解决了由于外设中断时间过长而导致的缓存溢出的问题。
附图说明
图1为本发明实施例中主机与外设的连接方式示意图;
图2为本发明实施例中主机处理外设中断的方法示意图。
具体实施方式
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
如图1所示,一般来说,主机需要通过特定的通信端口(例如USB,串口等)在遵循一定通信协议的前提下与外设进行通信和设置。
当外设产生中断后,会调用对应的中断服务子程序来进行功能实现。主机要想进行中断响应应用,就必须在外设产生中断后且在调用对应的中断服务子程序前获知该中断已产生并据此执行相应的中断响应。
如图2所示,根据上述构想,可以在外设产生中断后且调用对应的中断服务子程序进行功能实现前或在中断服务子程序结束后,让其向通信端口输出一信息,其中包含可以唯一标识出该中断的类型的中断类型标识及一状态指示标识,该中断类型标识的值与每一类中断的对应关系在主机和外设进行通信前已经协商好,而状态指示标识的值用于指示此外设中断已开始或已结束(其中,携带表示中断已开始的信息可认为是中断产生信息,携带表示中断已结束的信息可认为是中断结束信息)。在主机侧存有可以响应的每一类中断的中断类型标识及对应的中断服务程序入口地址的对应关系。此外,还可在主机侧存储可以响应的每一类中断的中断类型标识及相应的中断使能标志的对应关系,其中,中断使能标志的值用于指示主机此时是否可以响应此类中断,如在某一段时间内,主机不需要响应某个(或些)中断,则该主机会将对应的中断使能标志的值置为不可以响应,反之亦然。
主机不断的对上述通信端口进行检测。当检测到该通信端口收到上述信息时,如根据其中的状态指示标识判断出外设中断已产生,则在该主机上也保存有该信息携带的中断类型标识,则该主机根据相应的中断服务程序的入口地址执行相应的中断服务程序,实现主机侧中断响应。如该主机上还保存有每一类中断对应的中断使能标志,则在根据接收到的信息中的状态指示标识判断出外设中断已产生,且在该主机上也保存有该信息携带的中断类型标识外,还需进一步判断该中断类型标识所对应的中断使能标志的值是否表示主机此时可以响应该类中断;若是可以响应的中断,则该主机根据相应的中断服务程序的入口地址执行相应的中断服务程序,实现主机侧中断响应。如主机根据上述消息中的状态指示标识判断出外设中断已结束,则在本地查找是否保存有该信息携带的中断类型标识,如有,则根据相应的中断服务程序的入口地址停止执行相应的中断服务程序,结束主机对该外设中断的响应。
而在主机侧与外设进行同步调试时,由于外设中断的产生是由主机所触发的,因此主机侧可以直接得知外设中断在何时开始,但结束时间则无法得知。因此,外设在结束中断后,与上述步骤一样,向通信端口输出其中断类型标识和表示中断已结束的状态指示标识。而主机侧的后续步骤同上,在此不再进行赘述。(即主机侧更新中断更新标志,退出等待中断结束阶段,实现与外设的同步)
如在上述外设产生中断前,主机上还运行有该外设对应的主机服务应用线程(以下简称主线程),则当该外设在向主机发送中断产生信息或中断结束信息时,还需在该信息中携带该外设的标识,以便该主机根据该外设标识对相应的主线程进行阻塞或取消阻塞操作。要实现阻塞或取消阻塞主线程可通过下述方法来实现:在该主机上为该对应的主线程设置一阻塞标志,该阻塞标志的值表示主机此时是否在阻塞此主线程。当主机在响应外设中断或主机触发外设进行中断时,将该阻塞标志的值置为阻塞主线程且不断地对该标志进行检测;当主机得知外设中断结束后,将该阻塞标志的值置为阻塞取消。当主机检测到该阻塞标志的值表示阻塞取消时,主线程跳出阻塞状态,继续控制外设工作。
综上所述,为了得知外设中断的状态,主机侧需不断的检测其与该外设的通信端口。在软件上,主机侧可以通过在主机服务应用线程之外,另外开启一个检测通信端口的读端口线程来实现。该线程是一个死循环,可以不断的读取该通信端口信息。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (7)
1.一种主机响应外设中断的方法,其特征在于,
所述主机上保存有可以响应的每一类中断的中断类型标识及各类中断对应的中断服务程序入口地址的对应关系;
所述外设在产生中断后、且在调用对应的中断服务子程序进行功能实现前,向其与所述主机之间的通信端口输出一中断产生信息,其中包含所述中断的中断类型标识;当所述主机检测到所述通信端口收到所述中断产生信息时,判断本地是否保存有所述中断产生信息中携带的中断类型标识;若有,则查找所述中断产生信息中携带的中断类型标识对应的中断服务程序的入口地址后执行相应的中断服务程序。
2.如权利要求1所述的方法,其特征在于,
所述主机上还保存有可以响应的每一类中断的中断使能标志,每一类中断的中断使能标志和该类中断对应的中断类型标识一一对应,其中,所述中断使能标志的值用于表示所述主机此时是否可以响应此类中断;
当所述主机判断出本地保存有所述中断产生信息中携带的中断类型标识后,且在响应所述中断之前,还根据本地保存的该中断类型标识对应的中断使能标志的值判断主机此时是否可以响应此类中断;若是,则所述主机响应所述中断。
3.一种主机停止响应外设中断的方法,其特征在于,
所述主机上保存有每一类中断的中断类型标识,及每一类中断的中断服务程序入口地址,其中,每一类中断的中断服务程序入口地址和该类中断对应的中断类型标识一一对应;
所述外设结束中断后,向其与所述主机之间的通信端口输出一中断结束信息,其中包含所述中断的中断类型标识;
当所述主机检测到所述通信端口收到所述中断结束信息时,若判断出本地保存有所述中断类型标识,则根据所述中断结束信息中携带的中断类型标识查找到所述中断对应的中断服务程序的入口地址后停止执行相应的中断服务程序。
4.如权利要求3所述的方法,其特征在于,
所述外设向所述通信接口发送的中断结束信息中还包括所述外设的标识;
如在所述外设产生中断前,所述主机上运行有所述外设对应的主机服务应用线程,则在所述外设产生中断时,所述主机阻塞所述主机服务应用线程的运行;在所述主机停止响应所述中断后,所述主机根据接收到的所述外设的标识取消阻塞所述对应的主机服务应用线程的运行。
5.一种主机处理外设中断的方法,其特征在于,
所述主机上保存有可以响应的每一类中断的中断类型标识及各类中断对应的中断服务程序入口地址的对应关系;
所述外设在产生中断后且在调用对应的中断服务子程序进行功能实现前,或在中断结束后,向其与所述主机之间的通信端口输出一信息,其中包含所述中断的中断类型标识和状态指示标识,所述状态指示标识的值相应的表示所述中断已产生或已结束;
当所述主机检测到所述通信端口收到所述信息时,如根据所述状态指示标识的值判断出所述中断已产生,则判断本地是否保存有所述信息中携带的中断类型标识;若有,则根据所述信息中携带的中断类型标识查找到对应的中断服务程序的入口地址后执行相应的中断服务程序;
若根据所述状态指示标识的值判断出所述外设中断的状态为已结束,则判断本地是否保存有所述信息中携带的中断类型标识;若有,则根据所述信息中携带的中断类型标识查找到所述中断对应的中断服务程序的入口地址后停止执行相应的中断服务程序。
6.如权利要求5所述的方法,其特征在于,
所述主机上还保存有可以响应的每一类中断的中断使能标志,每一类中断的中断使能标志和该类中断对应的中断类型标识一一对应,其中,所述中断使能标志的值用于表示所述主机此时是否可以响应此类中断;
当所述主机根据所述状态指示标识的值判断出所述中断已产生且本地保存有所述信息中携带的中断类型标识后,且在响应所述中断之前,还根据本地保存的该中断类型标识对应的中断使能标志的值判断所述主机此时是否可以响应此类中断;若是,则所述主机响应所述中断。
7.如权利要求5所述的方法,其特征在于,
所述外设向所述通信接口发送的信息中还包括所述外设的标识;
如在所述外设产生中断前,所述主机上运行有所述外设对应的主机服务应用线程,则在所述主机响应所述中断前,所述主机根据接收到的所述外设的标识阻塞所述对应的主机服务应用线程的运行;在所述主机停止响应所述中断后,所述主机根据接收到的所述外设的标识取消阻塞所述对应的主机服务应用线程的运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102227423A CN101373443B (zh) | 2008-09-23 | 2008-09-23 | 一种主机响应、停止响应及处理外设中断的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102227423A CN101373443B (zh) | 2008-09-23 | 2008-09-23 | 一种主机响应、停止响应及处理外设中断的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101373443A CN101373443A (zh) | 2009-02-25 |
CN101373443B true CN101373443B (zh) | 2012-11-28 |
Family
ID=40447618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102227423A Expired - Fee Related CN101373443B (zh) | 2008-09-23 | 2008-09-23 | 一种主机响应、停止响应及处理外设中断的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101373443B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2513792B1 (en) * | 2009-12-17 | 2016-08-17 | Intel Corporation | Cooperated interrupt moderation for a virtualization environment |
CN102833088B (zh) * | 2011-06-17 | 2018-03-23 | 中兴通讯股份有限公司 | 一种中断处理方法及装置 |
CN106569889A (zh) * | 2016-11-09 | 2017-04-19 | 上海斐讯数据通信技术有限公司 | 一种中断处理系统及方法 |
CN110765045B (zh) * | 2019-09-19 | 2021-08-03 | 苏州浪潮智能科技有限公司 | 一种基于fpga的中断延时计数系统及方法 |
CN112008217A (zh) * | 2020-09-03 | 2020-12-01 | 烟台大东钢板有限公司 | 数控等离子切割机的控制方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1614570A (zh) * | 2003-11-06 | 2005-05-11 | 国际商业机器公司 | 对特定指令类型的指令执行和数据访问计数的方法和设备 |
CN1737766A (zh) * | 2005-08-31 | 2006-02-22 | 上海海尔集成电路有限公司 | 一种中断系统实现方法 |
CN101075219A (zh) * | 2007-06-19 | 2007-11-21 | 北京中星微电子有限公司 | 一种中断处理方法及系统 |
-
2008
- 2008-09-23 CN CN2008102227423A patent/CN101373443B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1614570A (zh) * | 2003-11-06 | 2005-05-11 | 国际商业机器公司 | 对特定指令类型的指令执行和数据访问计数的方法和设备 |
CN1737766A (zh) * | 2005-08-31 | 2006-02-22 | 上海海尔集成电路有限公司 | 一种中断系统实现方法 |
CN101075219A (zh) * | 2007-06-19 | 2007-11-21 | 北京中星微电子有限公司 | 一种中断处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101373443A (zh) | 2009-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101373443B (zh) | 一种主机响应、停止响应及处理外设中断的方法 | |
CN103106024B (zh) | 触摸屏终端中的文本输入方法及其装置 | |
US9262357B2 (en) | Associating process priority with I/O queuing | |
US7877091B2 (en) | Method and system for executing a container managed application on a processing device | |
JP4792113B2 (ja) | プロセッサ間割り込み | |
CN107046508B (zh) | 报文接收方法及网络设备 | |
US10268504B2 (en) | Interrupt information processing method, virtual machine monitor, and interrupt controller | |
RU2008102885A (ru) | Компрессор сигнальных сообщений | |
CN103416045A (zh) | 窃听行为侦测方法及终端设备 | |
TWI678615B (zh) | 在資料處理裝置中進行除錯 | |
CN109558348A (zh) | 数据搬移方法、装置及系统 | |
CN104992116B (zh) | 基于intent sniffer的监测方法及系统 | |
CN103440213A (zh) | 一种应用于具有多cpu和网卡的系统的网卡驱动方法 | |
CN104598192A (zh) | 信息处理方法及电子设备 | |
CN109922014A (zh) | 一种交换机冷热启动判断方法及系统 | |
CN107346296A (zh) | 一种驱动方法及装置 | |
CN102204199A (zh) | 用于通信接口的位反转 | |
JPH0196750A (ja) | データ処理システム | |
US11989293B2 (en) | Systems, methods, and media for identifying and responding to malicious files having similar features | |
CN101282244A (zh) | 基于spm的入侵检测方法 | |
CN101820360A (zh) | 一种告警平台及其实现告警的方法 | |
KR101012669B1 (ko) | 불법적인 메모리 접근을 진단하는 악성 프로그램 탐지기 및그 제어방법 | |
CN219678497U (zh) | 即时通信检测装置、预警装置及通信系统 | |
US6820154B2 (en) | System and method for servicing interrupts | |
JPWO2018173292A1 (ja) | ゲートウェイ装置、優先度変更方法及び優先度変更プログラム |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121128 Termination date: 20130923 |