CN1877536A - 嵌入式sram操作系统中断的实现方法 - Google Patents
嵌入式sram操作系统中断的实现方法 Download PDFInfo
- Publication number
- CN1877536A CN1877536A CN 200610052226 CN200610052226A CN1877536A CN 1877536 A CN1877536 A CN 1877536A CN 200610052226 CN200610052226 CN 200610052226 CN 200610052226 A CN200610052226 A CN 200610052226A CN 1877536 A CN1877536 A CN 1877536A
- Authority
- CN
- China
- Prior art keywords
- interrupt
- interruption
- processor
- operating system
- routine
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000004044 response Effects 0.000 claims abstract description 7
- 230000008569 process Effects 0.000 claims description 30
- 238000012790 confirmation Methods 0.000 claims description 6
- 238000011282 treatment Methods 0.000 claims description 4
- 238000004321 preservation Methods 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及嵌入式系统技术领域,旨在提供一种嵌入式SRAM操作系统中断的实现方法。该方法包括定义嵌入式SRAM操作系统中断、确定中断的优先级和中断处理。该方法具有实时性和高效性,本发明充分利用了嵌入式SRAM操作系统中,对于SRAM的应用,SRAM本身的响应速度快,因此对中断的响应速度也较快,支持了操作系统的实时性;对于中断的处理方式充分SRAM的特点,根据中断类型的不同,响应效率高。
Description
技术领域
本发明涉及嵌入式系统技术领域,特别是涉及一种嵌入式SRAM操作系统中断的实现方法。
背景技术
中断是指程序执行过程中,当发生某个事件时,中止CPU上现行程序的运行,引出处理该事件的程序执行的过程。现代计算机系统一般都具有处理突发事件的能力。例如:从磁带上读入一组信息,当发现读入信息有错误时,只要让磁带退回重读该组信息就可能克服错误,而得到正确的信息。
这种处理突发事件的能力是由硬件和软件协作完成的。首先由硬件的中断装置发现产生的事件,然后,中断装置中止现行程序的执行,引出处理该事件的程序来处理。计算机系统不仅可以处理由于硬件或软件错误而产生的事件,而且可以处理某种预定处理伪事件。例如:外围设备工作结束时,也发出中断请求,向系统报告它已完成任务,系统根据具体情况作出相应处理。引起中断的事件称为中断源。发现中断源并产生中断的硬件称中断装置。在不同的硬件结构中,通常有不同的中断源和平不同的中断装置,但它们有一个共性,即:当中断事件发生后,中断装置能改变处理器内操作执行的顺序。
几乎所有的计算机系统都提供了中断机制以便让系统中的其它模块能够中断正在执行中的进程从而完成一些紧急任务,这就是中断。最常见的中断类型主要有四类,即软件中断、定时中断、I/O中断和硬件故障等。
中断主要是用来提高计算机系统的处理效率。比如说,多数外围设备的动作速度和处理器相比要慢很多。如果我们需要打印机打印某个文档时,如果没有中断机制存在的话,进程会在每次写操作完成之后等待打印机完成相应操作并告知处理器,而后处理器才能继续下一个指令的执行。但是,如果引入中断机制的话,处理器只需要在执行一些简单指令,比如,初始化打印机,告诉打印机要打印的文档数据在内存中的位置,最后向打印机发送打印指令之后,就可以转到后继指令的执行,而这个时候,打印机正在慢吞吞地执行相关的打印任务;当打印机打印完所交给的任务之后,会采用中断方式,告诉处理器指派的打印任务已经完成,这个时候,处理器会中断当前任务并处理这个中断。显然,在引入中断之后,处理器的利用率提高了,可以在同样多的时间可处理更多的指令或任务。
对于嵌入式SRAM操作系统来说,由于采用SRAM来作为嵌入式操作系统的加载位置,也必然会遇到在这种环境下,其中断如何实现的问题。对于已有的操作系统,由于这些操作系统通常是存在于系统的主存当中,其中断可以通过硬件或者软件编程实现,但是在嵌入式SRAM操作系统中,由于操作系统内核运行于CPU片上的SRAM中,其中断方式不能由普通的已有中断方式简单实现,比如,对于SRAM的管理的实现,SRAM操作系统请求的中断等,其实现方式无法由已有的程序中断方式满足,因此需要一种新的方法来实现嵌入式SRAM操作系统的中断。
发明内容
本发明的目的在于克服现有技术中的不足,提供一种嵌入式SRAM操作系统中断的实现方法。
本发明解决其技术问题采用的技术方案如下:
本发明提供了一种嵌入式SRAM操作系统中断的实现方法,包括以下步骤:
1)定义嵌入式SRAM操作系统中断,包括:
在程序运行过程中由指令的执行所引起的软件中断;
由处理器内部定时器产生的定时中断;
由I/O控制器产生的I/O中断;和
由硬件故障引起的硬件故障中断;
2)确定中断的优先级:
对同时发生的中断事件按照预定的顺序定义中断的优先级,中断装置首先响应优先级高的中断事件;
3)中断处理,包括:
①中断源向处理器发出中断信号;
②处理器在响应中断之前完成当前指令;
③处理器检测是否存在中断,并发给中断源一个确认信号,中断源根据确认信号判断撤出其中断信号;
④处理器将处理器时间交给中断处理例程之前进行准备工作,包括保存在中断点时当前程序的状态,最低限度的保存信息包括程序状态字信息和当前程序下一条指令的地址;
⑤处理器执行中断处理例程;
⑥中断例程执行完毕后,处理器保存与中断例程相关的必要信息,处理器恢复被中断程序在中断点时的状态;
⑦处理器继续原来的指令执行过程。
作为本发明的一种改进,对于必须处理且优先级高的中断源,允许在运行中断例行程序时仍然可以响应中断,中断系统保护被中断的中断处理例行程序的现场,然后再转向处理新中断的例行程序,以便处理结束时能返回原来的中断处理例行程序继续运行。
与背景技术相比,本发明具有的有益的效果是:
(1)实时性。本发明充分利用了嵌入式SRAM操作系统中,对于SRAM的应用,SRAM本身的响应速度快,因此对中断的响应速度也较快,支持了操作系统的实时性。
(2)高效性。本发明对于中断的处理方式充分SRAM的特点,根据中断类型的不同,响应效率高。
附图说明
图1是本发明过程的示意图;
图2是中断源的示意图;
图3是带中断处理的指令周期示意图。
具体实施方式
下面结合附图对本发明作进一步的说明。
一种嵌入式SRAM操作系统中断的实现方法,附图1是本发明实施过程的整体示意图,其具体实施方法如下:
1)定义嵌入式SRAM操作系统中断
在嵌入式SRAM操作系统中,对中断的定义如下,如图2:
·软件中断,在程序运行过程中,由某条指令的执行所引起的中断。比如说,溢出、除零、非法机器指令等等
·定时中断,由处理器内部定时器产生。定时中断不仅是计算机计时的基础,同时还是操作系统完成很多复杂操作的前提,比如说,进程的交替执行等等
·I/O中断,由I/O控制器产生
·硬件故障,由于某个硬件故障,如电源故障或内存奇偶检验错误等引起的进程执行中断
从进程角度看,中断可以看成其正常执行过程的一个小插曲。进程本身无需关心中断如何处理,等中断处理结束之后,进程继续原来正常的执行过程,为引入中断机制,一般的指令周期需要加入中断处理,如图3。
在中断处理周期中,处理器会检查是否有中断发生。如果没有中断发生,处理器继续其正常的指令处理,在进程看来,就是自己正没有丝毫影响地持续运行着呢;如果有中断发生的话,处理器就会跳出其正常的指令处理顺序,转为执行与所发生中断对应的一个中断处理例程。通常,中断处理例程是操作系统的一部分,用于判断中断的类型并采取相应的处理措施。
2)确定中断的优先级
在计算机执行的每一瞬间,可能有几个中断事件同时发生,响应这些同时发生的中断,需要定义预定的顺序来响应,这个预定的顺序称为中断的优先级,中断装置首先响应优先级高的中断事件。
多中断是指同时有多个中断需要处理的情况。通常有两种基本方法来处理这种情况。一个就是在处理某个中断的时候不能被打断,如果这时有新的中断信号进来,就只能先挂起再说;另外一种方法就是允许中断处理嵌套,也就是说,可以给不同的中断定义合理的优先级,这样当某个较低优先级的中断正在处理时,可以被一个更高优先级的中断打断,从而形成一个嵌套结构。这个时候就需要用到中断的优先级。
3)中断处理
①某个中断源(如软件、I/O、定时器甚至是硬件故障)向处理器发出中断信号;
②处理器在响应中断之前完成当前指令;
③处理器检测是否存在中断,并发给中断源一个确认信号,这个确认信号可以让中断源撤出其中断信号;
④处理器将处理器时间交给中断处理例程之前需要做一些准备工作,这其中主要包括保存在中断点时当前程序的状态,最低限度的保存信息应该包括程序状态字信息和当前程序下一条指令的地址;
⑤处理器执行中断处理例程;
⑥中断例程执行完毕后,处理器保存与中断例程相关的必要信息,处理器恢复被中断程序在中断点时的状态;
⑦处理器继续原来的指令执行过程;
对于有些必须处理且优先级高的中断源,采用屏蔽方法有时可能是不妥的,因此,在中断系统中往往允许在运行某些中断例行程序时,仍然可以响应中断,这时,系统应负责保护被中断的中断处理例行程序的现场,然后,再转向处理新中断的例行程序,以便处理结束时有可能返回原来的中断处理例行程序继续运行。
Claims (2)
1.一种嵌入式SRAM操作系统中断的实现方法,其特征在于,包括以下步骤:
1)定义嵌入式SRAM操作系统中断,包括:
在程序运行过程中由指令的执行所引起的软件中断;
由处理器内部定时器产生的定时中断;
由I/O控制器产生的I/O中断;和
由硬件故障引起的硬件故障中断;
2)确定中断的优先级:
对同时发生的中断事件按照预定的顺序定义中断的优先级,中断装置首先响应优先级高的中断事件;
3)中断处理,包括:
①中断源向处理器发出中断信号;
②处理器在响应中断之前完成当前指令;
③处理器检测是否存在中断,并发给中断源一个确认信号,中断源根据确认信号判断撤出其中断信号;
④处理器将处理器时间交给中断处理例程之前进行准备工作,包括保存在中断点时当前程序的状态,最低限度的保存信息包括程序状态字信息和当前程序下一条指令的地址;
⑤处理器执行中断处理例程;
⑥中断例程执行完毕后,处理器保存与中断例程相关的必要信息,处理器恢复被中断程序在中断点时的状态;
⑦处理器继续原来的指令执行过程。
2、根据权利要求1所述的嵌入式SRAM操作系统中断的实现方法,其特征在于,对于必须处理且优先级高的中断源,允许在运行中断例行程序时仍然可以响应中断,中断系统保护被中断的中断处理例行程序的现场,然后再转向处理新中断的例行程序,以便处理结束时能返回原来的中断处理例行程序继续运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610052226 CN1877536A (zh) | 2006-06-30 | 2006-06-30 | 嵌入式sram操作系统中断的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610052226 CN1877536A (zh) | 2006-06-30 | 2006-06-30 | 嵌入式sram操作系统中断的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1877536A true CN1877536A (zh) | 2006-12-13 |
Family
ID=37509979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610052226 Pending CN1877536A (zh) | 2006-06-30 | 2006-06-30 | 嵌入式sram操作系统中断的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1877536A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339522A (zh) * | 2008-08-11 | 2009-01-07 | 北京中星微电子有限公司 | 一种中断处理方法和系统 |
CN108647046A (zh) * | 2014-12-26 | 2018-10-12 | 英特尔公司 | 用于控制执行流程的设备和方法 |
-
2006
- 2006-06-30 CN CN 200610052226 patent/CN1877536A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339522A (zh) * | 2008-08-11 | 2009-01-07 | 北京中星微电子有限公司 | 一种中断处理方法和系统 |
CN108647046A (zh) * | 2014-12-26 | 2018-10-12 | 英特尔公司 | 用于控制执行流程的设备和方法 |
CN108647046B (zh) * | 2014-12-26 | 2023-11-21 | 英特尔公司 | 用于控制执行流程的设备和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10459661B2 (en) | Stream identifier based storage system for managing an array of SSDs | |
US8135921B2 (en) | Automated paging device management in a shared memory partition data processing system | |
US9489265B2 (en) | Method and system for frequent checkpointing | |
CN101377750B (zh) | 一种用于机群容错的系统和方法 | |
US8549241B2 (en) | Method and system for frequent checkpointing | |
CN1808386A (zh) | 处理多线程/多任务/多处理器的方法 | |
CN1991808A (zh) | 用于访客访问存储器映射的设备的方法和装置 | |
CN1815462A (zh) | 迁移数据页面的方法和装置 | |
CN1704903A (zh) | 一种快照备份的方法 | |
CN1961300A (zh) | 使用集成dma引擎进行高性能易失性磁盘驱动器存储器访问的装置和方法 | |
CN101031897A (zh) | 在次序混乱的dma命令队列中建立命令次序 | |
CN1495611A (zh) | 容错计算机系统及其再同步方法和再同步程序 | |
CN1842769A (zh) | 用于在多线程微处理器中对并行指令流进行初始化的指令 | |
CN1794196A (zh) | 确保用于识别容错计算机中的异步原因的时间 | |
JP2022519985A (ja) | 入出力ストア命令をハンドリングする方法、システム、およびプログラム | |
CN101078996A (zh) | 硬件共享系统和方法 | |
CN101034369A (zh) | 一种软件抗干扰方法及装置 | |
CN101048737A (zh) | 执行计算机程序的方法、操作系统以及计算设备 | |
CN1302372C (zh) | 一种网络打印系统中解决中断打印的打印出错的方法 | |
CN1877536A (zh) | 嵌入式sram操作系统中断的实现方法 | |
CN1831756A (zh) | 微处理器 | |
CN101048754A (zh) | 在多处理器系统中从至少一个数据源分配数据的方法和设备 | |
CN1928837A (zh) | 使用状态跟踪来检测计算机系统中的错误的方法和系统 | |
CN1324478C (zh) | 一种多线程处理器线程死锁检测的方法及其系统 | |
CN1776627A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20061213 |