CN117873567A - 嵌入式环境下的通用中断处理方法及其系统 - Google Patents
嵌入式环境下的通用中断处理方法及其系统 Download PDFInfo
- Publication number
- CN117873567A CN117873567A CN202311792986.6A CN202311792986A CN117873567A CN 117873567 A CN117873567 A CN 117873567A CN 202311792986 A CN202311792986 A CN 202311792986A CN 117873567 A CN117873567 A CN 117873567A
- Authority
- CN
- China
- Prior art keywords
- interrupt
- interface
- drive
- mapping
- function
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 24
- 238000013507 mapping Methods 0.000 claims abstract description 116
- 238000012545 processing Methods 0.000 claims abstract description 114
- 238000000034 method Methods 0.000 claims abstract description 21
- 230000001960 triggered effect Effects 0.000 claims abstract description 21
- 230000006870 function Effects 0.000 claims description 111
- 238000004590 computer program Methods 0.000 claims description 9
- 238000003491 array Methods 0.000 claims description 8
- 238000009434 installation Methods 0.000 claims description 7
- 230000009191 jumping Effects 0.000 description 6
- 230000003068 static effect Effects 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30069—Instruction skipping instructions, e.g. SKIP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/327—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for interrupts
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
嵌入式环境下的通用中断处理方法及其系统,涉及嵌入式实时系统技术领域。解决现有中断处理方法存在的灵活性差的问题。方法为:创建二维数组作为中断向量表并对中断向量表的每一维度的数组成员均初始化成机器码形式的汇编指令;在中断发生时的跳转地址处,写入跳转中断向量表每一维起始地址的指令;实例化中断映射结构表;将驱动实体中的中断处理函数和中断号动态的填入中断映射结构表中;中断触发时,根据跳转地址指令跳转至中断向量表,中断向量表通过存储的跳转指令跳转至中断映射函数,中断映射函数根据中断映射结构表中存储的中断号和实际中断处理函数映射关系跳转至驱动实体中的中断处理函数进行处理。本发明适航天领域的嵌入式实时系统。
Description
技术领域
本发明涉及嵌入式实时系统技术领域,特别涉及航天领域的嵌入式实时系统技术领域。
背景技术
目前,对于中断处理的普遍做法是在软件的初始化阶段将全部的中断和中断处理函数用汇编指令全部写好,中断号与中断处理函数一一对应,然后进行编译,形成静态库,一旦需要修改对应关系或中断处理函数,则要修改汇编代码指令,使得灵活性差。
发明内容
本发明解决现有中断处理方法存在的灵活性差的问题。
为实现上述目的,本发明提供了如下方案:
本发明提供一种嵌入式环境下的通用中断处理方法,所述通用中断处理方法为:
创建二维数组作为中断向量表,并对所述中断向量表的每一维度的数组成员均初始化成机器码形式的汇编指令;
在中断发生时的跳转地址处,写入跳转中断向量表每一维起始地址的指令;
根据中断映射结构实例化三个数组作为中断映射结构表;
创建通用驱动模板,根据所述通用驱动模板创建驱动实体;
将所述驱动实体中的中断处理函数和中断号动态的填入所述中断映射结构表中;
中断触发时,根据中断发生时的跳转地址处的指令跳转至中断向量表中,所述中断向量表通过存储的跳转指令跳转至中断映射函数,所述中断映射函数根据所述中断映射结构表中存储的中断号和实际中断处理函数映射关系跳转至所述驱动实体中的中断处理函数进行处理。
进一步,还有一种优选实施例,上述三个数组分别为CPU一级中断映射结构数组、CPU二级扩展中断映射结构数组和FPGA扩展中断映射结构数组。
进一步,还有一种优选实施例,上述CPU一级中断映射结构数组、CPU二级扩展中断映射结构数组和FPGA扩展中断映射结构数组中的结构成员均包括掩码、中断处理函数指针和中断处理函数参数。
进一步,还有一种优选实施例,上述掩码用于计算中断号。
进一步,还有一种优选实施例,上述中断处理函数参数用于中断实例自身指针。
进一步,还有一种优选实施例,上述中断向量表中的指令以机器码的形式存放在数据段。
进一步,还有一种优选实施例,上述驱动实体上嵌入有驱动安装接口、驱动初始化接口、驱动开启接口、驱动关闭接口、驱动控制接口、驱动读接口、驱动写接口、中断处理接口A和中断处理接口B;
所述驱动安装接口用于传输驱动安装程序;
所述驱动初始化接口用于传输驱动实体初始化程序;
所述驱动开启接口用于传输驱动开启程序;
所述驱动关闭接口用于传输驱动关闭程序;
所述驱动控制接口用于传输驱动控制程序;
所述驱动读接口用于传输数据读取程序;
所述驱动写接口用于传输数据写入程序;
所述中断处理接口A用于传输驱动挂载中断A被触发时的程序;
所述中断处理接口B用于传输驱动挂载中断B被触发时的程序。
本发明所述的一种嵌入式环境下的通用中断处理方法可以全部采用计算机软件实现,因此,对应的,本发明还提供一种嵌入式环境下的通用中断处理系统,所述通用中断处理系统为:
用于创建二维数组作为中断向量表,并对所述中断向量表的每一维度的数组成员均初始化成机器码形式的汇编指令的存储装置;
用于在中断发生时的跳转地址处,写入跳转中断向量表每一维起始地址的指令的存储装置;
用于根据中断映射结构实例化三个数组作为中断映射结构表的存储装置;
用于创建通用驱动模板,根据所述通用驱动模板创建驱动实体的存储装置;
用于将所述驱动实体中的中断处理函数和中断号动态的填入所述中断映射结构表中的存储装置;
用于中断触发时,根据中断发生时的跳转地址处的指令跳转至中断向量表中,所述中断向量表通过存储的跳转指令跳转至中断映射函数,所述中断映射函数根据所述中断映射结构表中存储的中断号和实际中断处理函数映射关系跳转至所述驱动实体中的中断处理函数进行处理的存储装置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述任意一项所述的嵌入式环境下的通用中断处理方法。
本发明还提供一种计算机设备,该设备包括存储器和处理器,所述存储器中存储有计算机程序,当所述处理器运行所述存储器存储的计算机程序时,所述处理器执行上述任意一项所述的嵌入式环境下的通用中断处理方法。
本发明的有益效果为:
1、本发明提供一种嵌入式环境下的通用中断处理方法,采用二维数组作为中断向量表,中断向量表用于存储跳转中断映射处理函数的指令,并对所述中断向量表的每一维度的数组成员均初始化成机器码形式的汇编指令,使得中断发生时调用中断映射处理函数,确保在中断发生时能够迅速定位到正确的中断处理函数,起到直接索引功能,而不是遍历查找,从而快速响应中断,提高中断处理的效率。根据中断映射结构实例化三个数组作为中断映射结构表;并动态的将驱动实体中的用户自定义的中断处理函数和中断号填入中断映射结构表中进行链接,使得中断触发时,根据中断发生时的跳转地址处的指令跳转至中断向量表中,所述中断向量表通过存储的跳转指令跳转至中断映射函数,所述中断映射函数根据所述中断映射结构表中存储的中断号和实际中断处理函数映射关系跳转至所述驱动实体中的中断处理函数进行处理,解决现有中断处理方法存在的灵活性差的问题。
2、现有中断处理的普遍做法是在软件的初始化阶段将全部的中断和中断处理函数用汇编指令全部写好,中断号与中断处理函数一一对应,然后进行编译,形成静态库,一旦需要修改对应关系或中断处理函数,则要修改汇编代码指令,具有灵活性差的缺陷。本发明提供一种嵌入式环境下的通用中断处理方法,以机器码的形式将指令存放在数据段,并根据中断映射结构实例化三个数组作为中断映射结构表;并动态的将驱动实体中的用户自定义的中断处理函数和中断号填入中断映射结构表中进行链接,使得相同架构模板只需设计一次即可。不同架构只需修改相应机器码,易于移植。中断号与中断函数对应关系改变时,只需修改驱动实体的中断链接接口的入参,同时也具有驱动和中断处理函数可在运行时动态卸载和动态加载的优势。
本发明适用于航天领域的嵌入式实时系统。
附图说明
图1是实施方式一所述的中断触发阶段的流程图;
图2是实施方式一所述的中断向量表的结构表;
图3是实施方式一所述的生成中断向量表跳转指令;
图4是实施方式二所述的CPU一级中断映射结构数组、CPU二级扩展中断映射结构数组和FPGA扩展中断映射结构数组全部初始化为空的结构示意图;
图5是实施方式二所述的CPU一级中断映射结构数组、CPU二级扩展中断映射结构数组和FPGA扩展中断映射结构数组的结构表;
图6是实施方式二所述的调用驱动中断链接接口的结构表。
具体实施方式
下面结合附图和实施例对本发明的具体实施方式作进一步详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进,这些都属于本发明的保护范围。
实施方式一. 参见图1至图3说明本实施方式,本实施方式提供一种嵌入式环境下的通用中断处理方法,所述方法为:
创建二维数组作为中断向量表,并对所述中断向量表的每一维度的数组成员均初始化成机器码形式的汇编指令;
在中断发生时的跳转地址处,写入跳转中断向量表每一维起始地址的指令;
根据中断映射结构实例化三个数组作为中断映射结构表;
创建通用驱动模板,根据所述通用驱动模板创建驱动实体;
将所述驱动实体中的中断处理函数和中断号动态的填入所述中断映射结构表中;
中断触发时,根据中断发生时的跳转地址处的指令跳转至中断向量表中,所述中断向量表通过存储的跳转指令跳转至中断映射函数,所述中断映射函数根据所述中断映射结构表中存储的中断号和实际中断处理函数映射关系跳转至所述驱动实体中的中断处理函数进行处理。
本实施方式在实际应用时,如图2所示,创建二维数组作为中断向量表,中断向量表用于存储跳转中断映射处理函数的指令,用于中断发生时调用中断映射处理函数;并对所述中断向量表的每一维度的数组成员均初始化成机器码形式的汇编指令,作为跳转中断映射处理函数的模板。
在中断发生时的跳转地址处,写入跳转中断向量表每一维起始地址的指令,如图3所示,用于当中断发生时,会执行跳转指令,跳转至中断向量表,执行中断向量表中预先存储的指令,进而跳转至中断映射处理函数。
根据中断映射结构实例化三个数组作为中断映射结构表,用于存储中断号和用户自定义的中断处理函数的映射关系。
创建通用驱动模板,根据所述通用驱动模板创建驱动实体,并将所述驱动实体中的中断处理函数和中断号动态的填入所述中断映射结构表中,使得当中断触发时,如图1所示,中断i通过中断发生时跳转地址处的指令跳转至中断向量表第i维向量,通过中断向量表第i维向量存储的指令跳转至中断映射处理函数,中断映射处理函数根据中断映射结构表中存储的中断号和实际中断处理函数映射关系跳转至驱动实体中的中断处理函数,即跳转至实际用户定义的中断处理函数进行处理。
本实施方式提供一种嵌入式环境下的通用中断处理方法,采用二维数组作为中断向量表,中断向量表用于存储跳转中断映射处理函数的指令,并对所述中断向量表的每一维度的数组成员均初始化成机器码形式的汇编指令,使得中断发生时调用中断映射处理函数,确保在中断发生时能够迅速定位到正确的中断处理函数,起到直接索引功能,而不是遍历查找,从而快速响应中断,提高中断处理的效率。根据中断映射结构实例化三个数组作为中断映射结构表;并动态的将驱动实体中的用户自定义的中断处理函数和中断号填入中断映射结构表中进行链接,使得中断触发时,根据中断发生时的跳转地址处的指令跳转至中断向量表中,所述中断向量表通过存储的跳转指令跳转至中断映射函数,所述中断映射函数根据所述中断映射结构表中存储的中断号和实际中断处理函数映射关系跳转至所述驱动实体中的中断处理函数进行处理,解决现有中断处理方法存在的灵活性差的问题。
现有中断处理的普遍做法是在软件的初始化阶段将全部的中断和中断处理函数用汇编指令全部写好,中断号与中断处理函数一一对应,然后进行编译,形成静态库,一旦需要修改对应关系或中断处理函数,则要修改汇编代码指令,具有灵活性差的缺陷。本实施方式提供一种嵌入式环境下的通用中断处理方法,以机器码的形式将指令存放在数据段,并根据中断映射结构实例化三个数组作为中断映射结构表;并动态的将驱动实体中的用户自定义的中断处理函数和中断号填入中断映射结构表中进行链接,使得相同架构模板只需设计一次即可。不同架构只需修改相应机器码,易于移植。中断号与中断函数对应关系改变时,只需修改驱动实体的中断链接接口的入参,同时也具有驱动和中断处理函数可在运行时动态卸载和动态加载的优势。
实施方式二. 参见图4至图6说明本实施方式,本实施方式是对实施方式一所述的一种嵌入式环境下的通用中断处理方法中的三个数组作举例说明;
所述三个数组分别为CPU一级中断映射结构数组、CPU二级扩展中断映射结构数组和FPGA扩展中断映射结构数组。
本实施方式在实际应用时,根据中断映射结构分别实例化CPU一级中断映射结构数组、CPU二级扩展中断映射结构数组和FPGA扩展中断映射结构数组作为中断映射结构表并全部初始化为空,如图4所示;其中,CPU一级中断映射结构数组,CPU二级扩展中断映射结构数组和FPGA扩展中断映射结构数组均如图5所示。
创建通用驱动模板,根据所述通用驱动模板创建驱动实体,并将所述驱动实体中的中断处理函数和中断号动态的填入中断映射结构表中进行链接。在驱动中断链接接口中,按照CPU一级中断映射结构数组、CPU二级扩展中断映射结构数组和FPGA扩展中断映射结构数组定义的中断号进行区分,其中CPU一级中断映射结构数组定义的中断号为CPU一级中断类别,中断号设置为0x010000ym;CPU二级扩展中断映射结构数组定义的中断号为CPU二级扩展中断类别,中断号设置为0x020000ym;FPGA扩展中断映射结构数组定义的中断号为FPGA扩展中断类别,中断号设置为0x030000ym。ym为掩码,为每一类中断的实际中断号。选择CPU一级中断映射表、CPU二级扩展中断映射表、FPGA扩展中断映射表中的任意一个,按照掩码将中断处理函数和其参数填入所选择的中断映射表中,用于在中断触发时,跳转至驱动实体中的中断处理接口A或B,如图6所示。
实施方式三. 本实施方式是对实施方式一所述的一种嵌入式环境下的通用中断处理方法中的CPU一级中断映射结构数组、CPU二级扩展中断映射结构数组和FPGA扩展中断映射结构数组中的结构成员作举例说明;
所述CPU一级中断映射结构数组、CPU二级扩展中断映射结构数组和FPGA扩展中断映射结构数组中的结构成员均包括掩码、中断处理函数指针和中断处理函数参数。
本实施方式在实际应用时,CPU一级中断映射结构数组、CPU二级扩展中断映射结构数组和FPGA扩展中断映射结构数组,作为各自中断映射结构表,并全部初始化为空。中断映射结构成员包括掩码、中断处理函数指针和中断处理函数参数。用于动态的将驱动实体中的中断处理接口指针,即中断处理函数参数和中断号填入中断映射结构表进行链接。
实施方式四. 本实施方式是对实施方式三所述的一种嵌入式环境下的通用中断处理方法中的掩码作举例说明,所述掩码用于计算中断号。
实施方式五. 本实施方式是对实施方式三所述的一种嵌入式环境下的通用中断处理方法中的中断处理函数参数作举例说明,所述所述中断处理函数参数用于中断实例自身指针。
实施方式六. 本实施方式是对实施方式一所述的一种嵌入式环境下的通用中断处理方法中的中断向量表中的指令作举例说明;
所述中断向量表中的指令以机器码的形式存放在数据段。
本实施方式在实际应用时,为将中断处理函数与中断号绑定过程形成模板,则对应的代码实现必须要在运行时展开,而非编译时展开,所以本实施方式所述的中断向量表中的指令以机器码的形式存放在数据段。数据、指令、函数本质上均为数字,在不同架构下均可将中断处理指令或函数以数字的形式存放在数据段,再使程序跳转到数据段,将数据段的数据当成指令来执行进而完成相应处理。使得在使用时只需调用接口、输入参数,即可完成中断号与中断处理函数的绑定,若架构不同,则只需修改对应指令的机器码和陷阱基址寄存器指向的地址,可帮助缩短开发周期。
现有中断处理的普遍做法是在软件的初始化阶段将全部的中断和中断处理函数用汇编指令全部写好,中断号与中断处理函数一一对应,然后进行编译,形成静态库,一旦需要修改对应关系或中断处理函数,则要修改汇编代码指令,具有灵活性差的缺陷。本实施方式提供一种嵌入式环境下的通用中断处理方法,以机器码的形式将指令存放在数据段,并根据中断映射结构实例化三个数组作为中断映射结构表;并动态的将驱动实体中的用户自定义的中断处理函数和中断号填入中断映射结构表中进行链接,使得相同架构模板只需设计一次即可。不同架构只需修改相应机器码,易于移植。中断号与中断函数对应关系改变时,只需修改驱动实体的中断链接接口的入参,同时也具有驱动和中断处理函数可在运行时动态卸载和动态加载的优势。
实施方式七. 本实施方式是对实施方式一所述的一种嵌入式环境下的通用中断处理方法中的驱动实体作举例说明,所述驱动实体上嵌入有驱动安装接口、驱动初始化接口、驱动开启接口、驱动关闭接口、驱动控制接口、驱动读接口、驱动写接口、中断处理接口A和中断处理接口B;
所述驱动安装接口用于传输驱动安装程序;
所述驱动初始化接口用于传输驱动实体初始化程序;
所述驱动开启接口用于传输驱动开启程序;
所述驱动关闭接口用于传输驱动关闭程序;
所述驱动控制接口用于传输驱动控制程序;
所述驱动读接口用于传输数据读取程序;
所述驱动写接口用于传输数据写入程序;
所述中断处理接口A用于传输驱动挂载中断A被触发时的程序;
所述中断处理接口B用于传输驱动挂载中断B被触发时的程序。
本实施方式在实际应用时,驱动安装接口用于传输驱动安装程序,创建驱动实体,将所有驱动接口挂载在驱动实体上,并将驱动加入星务软件通信总线上。驱动初始化接口用于传输驱动实体初始化程序,完成驱动实体全部初始化工作,例如CPU驱动的寄存器初始化;串口驱动的波特率设置、奇偶校验设置等。驱动开启接口用于传输驱动开启程序,完成驱动开启功能。驱动关闭接口用于传输驱动关闭程序,完成驱动关闭功能。驱动控制接口用于传输驱动控制程序,完成驱动工作过程中的用户控制。驱动读接口用于传输数据读取程序,完成硬件接口的数据读取功能。驱动写接口用于传输数据写入程序,完成硬件接口的数据写功能。中断处理接口A用于传输驱动挂载中断A被触发时的程序驱动实体的中断处理接口A,完成驱动挂载中断A被触发时的处理。中断处理接口B用于传输驱动挂载中断B被触发时的程序,驱动实体的中断处理接口B,完成驱动挂载中断B被触发时的处理。
本实施方式提供一种嵌入式环境下的通用中断处理系统,所述系统为:
用于创建二维数组作为中断向量表,并对所述中断向量表的每一维度的数组成员均初始化成机器码形式的汇编指令的存储装置;
用于在中断发生时的跳转地址处,写入跳转中断向量表每一维起始地址的指令的存储装置;
用于根据中断映射结构实例化三个数组作为中断映射结构表的存储装置;
用于创建通用驱动模板,根据所述通用驱动模板创建驱动实体的存储装置;
用于将所述驱动实体中的中断处理函数和中断号动态的填入所述中断映射结构表中的存储装置;
用于中断触发时,根据中断发生时的跳转地址处的指令跳转至中断向量表中,所述中断向量表通过存储的跳转指令跳转至中断映射函数,所述中断映射函数根据所述中断映射结构表中存储的中断号和实际中断处理函数映射关系跳转至所述驱动实体中的中断处理函数进行处理的存储装置。
本实施方式提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行实施方式一至实施方式七任意一项所述的嵌入式环境下的通用中断处理方法。
本实施方式提供一种计算机设备,该设备包括存储器和处理器,所述存储器中存储有计算机程序,当所述处理器运行所述存储器存储的计算机程序时,所述处理器执行实施方式一至实施方式七任意一项所述的嵌入式环境下的通用中断处理方法。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、 “示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本发明的实施例而已,并不限制于本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (10)
1.嵌入式环境下的通用中断处理方法,其特征在于,所述方法为:
创建二维数组作为中断向量表,并对所述中断向量表的每一维度的数组成员均初始化成机器码形式的汇编指令;
在中断发生时的跳转地址处,写入跳转中断向量表每一维起始地址的指令;
根据中断映射结构实例化三个数组作为中断映射结构表;
创建通用驱动模板,根据所述通用驱动模板创建驱动实体;
将所述驱动实体中的中断处理函数和中断号动态的填入所述中断映射结构表中;
中断触发时,根据中断发生时的跳转地址处的指令跳转至中断向量表中,所述中断向量表通过存储的跳转指令跳转至中断映射函数,所述中断映射函数根据所述中断映射结构表中存储的中断号和实际中断处理函数映射关系跳转至所述驱动实体中的中断处理函数进行处理。
2.根据权利要求1所述的嵌入式环境下的通用中断处理方法,其特征在于,所述三个数组分别为CPU一级中断映射结构数组、CPU二级扩展中断映射结构数组和FPGA扩展中断映射结构数组。
3.根据权利要求1所述的嵌入式环境下的通用中断处理方法,其特征在于,所述CPU一级中断映射结构数组、CPU二级扩展中断映射结构数组和FPGA扩展中断映射结构数组中的结构成员均包括掩码、中断处理函数指针和中断处理函数参数。
4.根据权利要求3所述的嵌入式环境下的通用中断处理方法,其特征在于,所述掩码用于计算中断号。
5.根据权利要求3所述的嵌入式环境下的通用中断处理方法,其特征在于,所述中断处理函数参数用于中断实例自身指针。
6.根据权利要求1所述的嵌入式环境下的通用中断处理方法,其特征在于,所述中断向量表中的指令以机器码的形式存放在数据段。
7.根据权利要求1所述的嵌入式环境下的通用中断处理方法,其特征在于,所述驱动实体上嵌入有驱动安装接口、驱动初始化接口、驱动开启接口、驱动关闭接口、驱动控制接口、驱动读接口、驱动写接口、中断处理接口A和中断处理接口B;
所述驱动安装接口用于传输驱动安装程序;
所述驱动初始化接口用于传输驱动实体初始化程序;
所述驱动开启接口用于传输驱动开启程序;
所述驱动关闭接口用于传输驱动关闭程序;
所述驱动控制接口用于传输驱动控制程序;
所述驱动读接口用于传输数据读取程序;
所述驱动写接口用于传输数据写入程序;
所述中断处理接口A用于传输驱动挂载中断A被触发时的程序;
所述中断处理接口B用于传输驱动挂载中断B被触发时的程序。
8.嵌入式环境下的通用中断处理系统,其特征在于,所述系统为:
用于创建二维数组作为中断向量表,并对所述中断向量表的每一维度的数组成员均初始化成机器码形式的汇编指令的存储装置;
用于在中断发生时的跳转地址处,写入跳转中断向量表每一维起始地址的指令的存储装置;
用于根据中断映射结构实例化三个数组作为中断映射结构表的存储装置;
用于创建通用驱动模板,根据所述通用驱动模板创建驱动实体的存储装置;
用于将所述驱动实体中的中断处理函数和中断号动态的填入所述中断映射结构表中的存储装置;
用于中断触发时,根据中断发生时的跳转地址处的指令跳转至中断向量表中,所述中断向量表通过存储的跳转指令跳转至中断映射函数,所述中断映射函数根据所述中断映射结构表中存储的中断号和实际中断处理函数映射关系跳转至所述驱动实体中的中断处理函数进行处理的存储装置。
9.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行权利要求1-7任意一项所述的嵌入式环境下的通用中断处理方法。
10.一种计算机设备,其特征在于,该设备包括存储器和处理器,所述存储器中存储有计算机程序,当所述处理器运行所述存储器存储的计算机程序时,所述处理器执行权利要求1-7任意一项所述的嵌入式环境下的通用中断处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311792986.6A CN117873567A (zh) | 2023-12-25 | 2023-12-25 | 嵌入式环境下的通用中断处理方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311792986.6A CN117873567A (zh) | 2023-12-25 | 2023-12-25 | 嵌入式环境下的通用中断处理方法及其系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117873567A true CN117873567A (zh) | 2024-04-12 |
Family
ID=90595999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311792986.6A Pending CN117873567A (zh) | 2023-12-25 | 2023-12-25 | 嵌入式环境下的通用中断处理方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117873567A (zh) |
-
2023
- 2023-12-25 CN CN202311792986.6A patent/CN117873567A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5301302A (en) | Memory mapping and special write detection in a system and method for simulating a CPU processor | |
CN103309786B (zh) | 用于在非可抢占式图形处理单元上交互调试的方法和装置 | |
US8332829B2 (en) | Communication scheduling within a parallel processing system | |
US4951195A (en) | Condition code graph analysis for simulating a CPU processor | |
US9495136B2 (en) | Using aliasing information for dynamic binary optimization | |
KR100679050B1 (ko) | 태스크간 빠른 문맥 교환을 위해 레지스터 문맥을 저장,복구하는 방법 및 장치 | |
CN107807839B (zh) | 一种修改虚拟机内存数据的方法、装置及电子设备 | |
US20030212983A1 (en) | Method and system for modifying executable code to add additional functionality | |
EP0387172A2 (en) | Procedure call interface | |
KR100498272B1 (ko) | 변환된 명령들을 실행하는 동안 문맥을 보존하기 위한 방법 및 장치 | |
US11397608B2 (en) | Multi-dimensional spreadsheet system enabling stack based programming using a virtual machine | |
JP2022513382A (ja) | 関数ジャンプを実現するための方法、装置及びコンピュータ記憶媒体 | |
CN110659088B (zh) | 一种嵌入式环境下程序扩展的方法及系统 | |
Stilkerich et al. | Tailor‐made JVMs for statically configured embedded systems | |
CN101334737A (zh) | 一种嵌入式设备的启动或复位方法 | |
CN117873567A (zh) | 嵌入式环境下的通用中断处理方法及其系统 | |
CN112148388A (zh) | 一种计算机程序的挂钩方法和系统 | |
EP0327198B1 (en) | Processor simulation | |
Lyu et al. | A procedure-based dynamic software update | |
CN113986488A (zh) | 计算任务的调度方法、装置、计算机设备及存储介质 | |
Ditzel | Reflections on the high-level language symbol computer system | |
US20190102153A1 (en) | Information processing apparatus, information processing method, and recording medium recording program | |
US11429390B2 (en) | High-level programming language which utilizes virtual memory | |
WO2003100606A1 (en) | Software architecture for managing binary objects | |
CN116822040B (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 |