掌桥专利:专业的专利平台
掌桥专利
首页

一种嵌入式处理器中断偏移方法、装置、存储介质及电子设备

文献发布时间:2023-06-19 12:00:51


一种嵌入式处理器中断偏移方法、装置、存储介质及电子设备

技术领域

本申请实施例涉及嵌入式系统技术领域,尤其涉及一种嵌入式处理器中断偏移方法、装置、存储介质及电子设备。

背景技术

嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元。Bootloader是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式APP程序装在到内存中然后跳转到操作系统所在的空间,启动操作系统运行。

处理器运行的时候所需的APP程序在SRAM区域执行的时候,SRAM区域的APP程序有独立的一套中断向量表和中断服务函数,而Flash区域的Bootloader也有独立的一套中断向量表和中断服务函数。处理器在发生中断的时候首先先去Bootloader的程序中的中断向量表中查询中断,跳转到Bootloader的中断服务函数中执行中断服务函数。现有技术中,为了跳进SRAM区域的APP中断中执行中断服务函数,设置判断量,判断量的数值为0或1,通过判断量的数值可以判断中断发生在APP运行时还是Bootloader运行时,并基于具体中断位置实现中断偏移。

现有技术中,判断量的设定值是固定的,SRAM区域的APP只能存放在固定位置。

发明内容

本申请实施例提供一种嵌入式处理器中断偏移方法、装置、存储介质及电子设备,通过设定偏移变量,根据偏移变量和Bootloader中断向量表的存储地址确定偏移位置,实现APP程序的中断服务。APP程序可以存储在SRAM区域的任意位置,保证了任意位置中断程序的准确返回。

第一方面,本申请实施例提供了一种嵌入式处理器中断偏移方法,该方法包括:

在嵌入式处理器的程序运行过程中检测中断服务请求,若检测到中断服务请求,则获取偏移变量的数值;其中,所述偏移变量是预先定义在Bootloader和APP的程序存储空间的变量;

若所述数值符合预设中断偏移执行条件,则根据偏移位置跳转至APP程序中执行APP中断服务函数;其中,所述偏移位置是根据所述偏移变量和Bootloader中断向量表的存储地址确定的。

第二方面,本申请实施例提供了一种嵌入式处理器中断偏移装置,该装置包括:

偏移变量数值获取模块,用于在嵌入式处理器的程序运行过程中检测中断服务请求,若检测到中断服务请求,则获取偏移变量的数值;其中,所述偏移变量是预先定义在Bootloader和APP的程序存储空间的变量;

APP中断服务函数执行模块,用于若所述数值符合预设中断偏移执行条件,则根据偏移位置跳转至APP程序中执行APP中断服务函数;其中,所述偏移位置是根据所述偏移变量和Bootloader中断向量表的存储地址确定的。

第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的嵌入式处理器中断偏移方法。

第四方面,本申请实施例提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的嵌入式处理器中断偏移方法。

本申请实施例所提供的技术方案,在嵌入式处理器的程序运行过程中检测中断服务请求,若检测到中断服务请求,则获取偏移变量的数值;其中,偏移变量是预先定义在Bootloader和APP的程序存储空间的变量;若数值符合预设中断偏移执行条件,则根据偏移位置跳转至APP程序中执行APP中断服务函数;其中,偏移位置是根据偏移变量和Bootloader中断向量表的存储地址确定的。本技术方案,可以通过设定偏移变量,根据偏移变量和Bootloader中断向量表的存储地址确定偏移位置,实现APP程序的中断服务。APP程序可以存储在SRAM区域的任意位置,保证了任意位置中断程序的准确返回。

附图说明

图1是本申请实施例一提供的嵌入式处理器中断偏移方法的流程图;

图2是本申请实施例一提供的嵌入式处理器中断偏移过程的示意图;

图3是本申请实施例二提供的嵌入式处理器中断偏移装置的结构示意图;

图4是本申请实施例四提供的一种电子设备的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

实施例一

图1是本申请实施例一提供的嵌入式处理器中断偏移方法的流程图,本实施例可适用于嵌入式处理器程序运行时执行APP中断服务的情况,该方法可以由本申请实施例所提供的嵌入式处理器中断偏移装置执行,该装置可以由软件和/或硬件的方式来实现,并可集成于用于程序中断处理的智能终端等设备中。

如图1所示,所述嵌入式处理器中断偏移方法包括:

S110、在嵌入式处理器的程序运行过程中检测中断服务请求,若检测到中断服务请求,则获取偏移变量的数值;其中,所述偏移变量是预先定义在Bootloader和APP的程序存储空间的变量;

其中,嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元。Bootloader是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式APP程序装在到内存中然后跳转到操作系统所在的空间,启动操作系统运行。处理器运行时,APP程序在SRAM(Static Random-AccessMemory,静态随机存取存储器)区域执行,SRAM区域的APP程序有独立的一套APP中断向量表和APP中断服务函数。Bootloader程序在Flash区域运行,也有独立的一套Bootloader中断向量表和Bootloader中断服务函数。

在本实施例中,在Bootloader和APP的程序存储空间的绝对地址区域定义偏移变量。其中,偏移变量的数值可以是地址、数值或者符号等。

在本方案中,若在嵌入式处理器的程序运行过程中检测到中断服务请求,则在Bootlaoder程序中获取偏移变量的数值,并判断偏移变量的数值是否符合预设中断偏移执行条件。其中,中断偏移执行条件用于区分当前时刻执行的程序是Bootloader程序还是APP程序。例如,假设偏移变量的数值是a和b,当偏移变量的数值是a时,可以表示正在执行的程序是Bootloader程序,则偏移变量的数值是b时,可以表示正在执行的程序是APP程序。

在本技术方案中,可选的,所述偏移变量的数值的确定过程包括:

若检测到复位请求,则将所述偏移变量的数值设置为0,并执行Bootloader程序将APP程序从外部拷贝到内部SRAM区域。

在本实施例中,当嵌入式处理器进行上电操作时,则可以检测到复位请求。当检测到复位请求时,当前时刻执行的程序是Bootloader程序,将偏移变量的数值设置为0。并基于Bootloader程序进行APP程序数据的拷贝,Bootloader会通过通信接口把APP程序从外部拷贝到内部SRAM区域。

通过将偏移变量数值设置为0,可以基于偏移变量的数值确定当前时刻执行的程序,能够实现嵌入式处理器的中断服务。

在本技术方案中,可选的,在将APP程序从外部拷贝到内部SRAM区域之后,所述方法还包括:

若检测到拷贝完成操作,则将所述偏移变量的数值设置为APP程序存放的首地址。

可以理解的,Bootloader程序将APP程序从外部拷贝到内部SRAM区域,当拷贝完成后,此时执行的程序是APP程序,则可以将偏移变量的数值设置为APP程序存放的首地址。

通过将偏移变量的数值设置为APP程序存放的首地址,APP程序可以存放在SRAM区域的任何位置,提高了程序架构的灵活性。

在本技术方案中,可选的,在检测到拷贝完成操作之后,所述方法还包括:

将处理器跳转至SRAM区域执行APP程序。

在本实施例中,当Bootloader程序将APP程序从外部拷贝到内部SRAM区域后,Bootloader会强制迫使处理器跳转到SRAM区域的APP程序开始执行新的APP程序。

通过将处理器跳转至SRAM区域,保证了APP程序的顺利执行。

S120、若所述数值符合预设中断偏移执行条件,则根据偏移位置跳转至APP程序中执行APP中断服务函数;其中,所述偏移位置是根据所述偏移变量和Bootloader中断向量表的存储地址确定的。

其中,APP中断服务函数可以是指停止当前程序的执行转而执行的函数。

在本实施例中,偏移位置可以是指执行中断时需要跳转的位置。在嵌入式系统中,先存储Bootloader程序,然后存储APP程序。可以将偏移变量的数值和Bootloader中断向量表的存储地址进行相加,确定APP程序中的APP中断向量表的存储地址,即偏移位置。

可以理解的,当数值符合预设中断偏移执行条件,当前时刻执行的程序是APP程序,此时中断服务请求是APP程序运行过程中发生的中断服务请求,则根据偏移变量的数值和Bootloader中断向量表的存储地址确定偏移位置,并根据偏移位置跳转至APP程序中执行APP的中断服务函数。

在本技术方案中,可选的,根据偏移位置跳转至APP程序中执行APP中断服务函数,包括:

根据偏移位置跳转至APP程序中的APP中断向量表;

利用所述APP中断向量表确定APP中断服务函数,并执行所述APP中断服务函数,实现APP程序的中断服务。

在本方案中,可以根据偏移位置跳转至APP程序中的APP中断向量表的存储地址,在APP中断向量表中查询APP中断服务函数,并执行该APP中断服务函数,实现APP程序的中断服务。

示例性的,图2是本申请实施例一提供的嵌入式处理器中断偏移过程的示意图,如图2所示,嵌入式处理器分为Flash区域和SRAM区域。APP程序在SRAM区域执行,SRAM区域的APP程序有独立的一套APP中断向量表和APP中断服务函数。Bootloader程序在Flash区域运行,也有独立的一套Bootloader中断向量表和Bootloader中断服务函数。当偏移变量的数值符合预设中断偏移执行条件,则跳转至APP中断向量表,执行APP中断服务函数。

通过根据偏移位置跳转至APP程序中的APP中断向量表,可以跳进SRAM区域的APP程序中断中执行APP中断服务函数,实现APP程序的中断服务。APP程序可以存储在SRAM区域的任意位置,保证了任意位置中断程序的准确返回。

在本技术方案中,可选的,在判断偏移变量的数值是否符合预设中断偏移执行条件之后,所述方法还包括:

若所述数值不符合预设中断偏移执行条件,则根据Bootloader中断向量表确定Bootloader中断服务函数,并执行所述Bootloader中断服务函数,实现Bootloader程序的中断服务。

可以理解的,若数值不符合预设中断偏移执行条件,即偏移变量的数值是0时,当前时刻运行的程序是Bootloader程序,还没有进入到APP程序中执行。则从Bootloader中断向量表查询Bootloader中断服务函数,并执行Bootloader中断服务函数。

通过对偏移变量的数值进行判断,可以实现程序运行过程中的中断服务,保证了程序的顺利运行。

本申请实施例所提供的技术方案,在嵌入式处理器的程序运行过程中检测中断服务请求,若检测到中断服务请求,则获取偏移变量的数值;其中,偏移变量是预先定义在Bootloader和APP的程序存储空间的变量;若数值符合预设中断偏移执行条件,则根据偏移位置跳转至APP程序中执行APP中断服务函数;其中,偏移位置是根据偏移变量和Bootloader中断向量表的存储地址确定的。通过执行本技术方案,可以通过设定偏移变量,根据偏移变量和Bootloader中断向量表的存储地址确定偏移位置,实现APP程序的中断服务。APP程序可以存储在SRAM区域的任意位置,保证了任意位置中断程序的准确返回。

实施例二

图3是本申请实施例二提供的嵌入式处理器中断偏移装置的结构示意图,如图3所示,嵌入式处理器中断偏移装置包括:

偏移变量数值获取模块310,用于在嵌入式处理器的程序运行过程中检测中断服务请求,若检测到中断服务请求,则获取偏移变量的数值;其中,所述偏移变量是预先定义在Bootloader和APP的程序存储空间的变量;

APP中断服务函数执行模块320,用于若所述数值符合预设中断偏移执行条件,则根据偏移位置跳转至APP程序中执行APP中断服务函数;其中,所述偏移位置是根据所述偏移变量和Bootloader中断向量表的存储地址确定的。

在本技术方案中,可选的,APP中断服务函数执行模块320,包括:

APP中断向量表跳转单元,用于根据偏移位置跳转至APP程序中的APP中断向量表;

APP中断服务函数执行单元,用于利用所述APP中断向量表确定APP中断服务函数,并执行所述APP中断服务函数,实现APP程序的中断服务。

在本技术方案中,可选的,偏移变量数值获取模块310,包括:

复位请求检测单元,用于若检测到复位请求,则将所述偏移变量的数值设置为0,并执行Bootloader程序将APP程序从外部拷贝到内部SRAM区域。

在本技术方案中,可选的,偏移变量数值获取模块310,还包括:

拷贝完成操作检测单元,用于若检测到拷贝完成操作,则将所述偏移变量的数值设置为APP程序存放的首地址。

在本技术方案中,可选的,偏移变量数值获取模块310,还包括:

APP程序执行单元,用于将处理器跳转至SRAM区域执行APP程序。

在本技术方案中,可选的,所述装置还包括:

Bootloader中断服务函数执行模块,用于若所述数值不符合预设中断偏移执行条件,则根据Bootloader中断向量表确定Bootloader中断服务函数,并执行所述Bootloader中断服务函数,实现Bootloader程序的中断服务。

上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。

实施例三

本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种嵌入式处理器中断偏移方法,该方法包括:

在嵌入式处理器的程序运行过程中检测中断服务请求,若检测到中断服务请求,则获取偏移变量的数值;其中,所述偏移变量是预先定义在Bootloader和APP的程序存储空间的变量;

若所述数值符合预设中断偏移执行条件,则根据偏移位置跳转至APP程序中执行APP中断服务函数;其中,所述偏移位置是根据所述偏移变量和Bootloader中断向量表的存储地址确定的。

存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到计算机系统。第二计算机系统可以提供程序指令给计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。

当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的嵌入式处理器中断偏移操作,还可以执行本申请任意实施例所提供的嵌入式处理器中断偏移方法中的相关操作。

实施例四

本申请实施例提供了一种电子设备,该电子设备中可集成本申请实施例提供的嵌入式处理器中断偏移装置。图4是本申请实施例四提供的一种电子设备的结构示意图。如图4所示,本实施例提供了一种电子设备400,其包括:一个或多个处理器420;存储装置410,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器420执行,使得所述一个或多个处理器420实现本申请实施例所提供的嵌入式处理器中断偏移方法,该方法包括:

在嵌入式处理器的程序运行过程中检测中断服务请求,若检测到中断服务请求,则获取偏移变量的数值;其中,所述偏移变量是预先定义在Bootloader和APP的程序存储空间的变量;

若所述数值符合预设中断偏移执行条件,则根据偏移位置跳转至APP程序中执行APP中断服务函数;其中,所述偏移位置是根据所述偏移变量和Bootloader中断向量表的存储地址确定的。

当然,本领域技术人员可以理解,处理器420还实现本申请任意实施例所提供的嵌入式处理器中断偏移方法的技术方案。

图4显示的电子设备400仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图4所示,该电子设备400包括处理器420、存储装置410、输入装置430和输出装置440;电子设备中处理器420的数量可以是一个或多个,图4中以一个处理器420为例;电子设备中的处理器420、存储装置410、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线450连接为例。

存储装置410作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块单元,如本申请实施例中的嵌入式处理器中断偏移方法对应的程序指令。

存储装置410可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置410可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置410可进一步包括相对于处理器420远程设置的存储器,这些远程存储器可以通过网络连接。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置430可用于接收输入的数字、字符信息或语音信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏、扬声器等电子设备。

本申请实施例提供的电子设备,可以达到实现APP程序的中断服务。APP程序可以存储在SRAM区域的任意位置,保证了任意位置中断程序的准确返回的目的。

上述实施例中提供的嵌入式处理器中断偏移装置、存储介质及电子设备可执行本申请任意实施例所提供的嵌入式处理器中断偏移方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的嵌入式处理器中断偏移方法。

注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。

相关技术
  • 一种嵌入式处理器中断偏移方法、装置、存储介质及电子设备
  • 一种中断处理方法、装置、电子设备及存储介质
技术分类

06120113135933