首页> 中国专利> 中断向量表的重映射方法、装置、微处理器及电子装置

中断向量表的重映射方法、装置、微处理器及电子装置

摘要

本发明公开了一种中断向量表的重映射方法、装置、微处理器及电子装置。该方法包括:在静态随机存取存储器内开辟第一存储区域,并将用户程序的中断向量表拷贝至第一存储区域,其中,静态随机存取存储器的起始地址与第一存储区域的起始地址相同;在嵌入式闪存内开辟第二存储区域,并将用户程序烧写至第二存储区域;在开始执行用户程序的过程中,将第一存储区域的起始地址映射至存储结构的起始地址。本发明解决了相关技术中由于Cortex‑M0微处理器的内核无法支持中断向量表重映射,因此,在执行下载程序操作或者执行程序升级操作的过程中,通常需要将程序代码烧写到eflash的起始地址,由此限制了eflash的使用灵活性的技术问题。

著录项

  • 公开/公告号CN112346739A

    专利类型发明专利

  • 公开/公告日2021-02-09

    原文格式PDF

  • 申请/专利权人 珠海格力电器股份有限公司;

    申请/专利号CN201910721745.X

  • 发明设计人 丁伟杰;

    申请日2019-08-06

  • 分类号G06F8/61(20180101);G06F8/654(20180101);

  • 代理机构11240 北京康信知识产权代理有限责任公司;

  • 代理人江舟

  • 地址 519070 广东省珠海市前山金鸡西路六号

  • 入库时间 2023-06-19 09:51:02

说明书

技术领域

本发明涉及计算机领域,具体而言,涉及一种中断向量表的重映射方法、装置、微处理器及电子装置。

背景技术

Cortex-M0微处理器(即基于Cortex-M0内核的微处理器)是ARM推出的一款32位处理器。由于Cortex-M0微处理器的微处理器面积小,能耗极低,编程所需的代码量很小,性能稳定且微处理器价格低廉,因此,在市场上得到了广泛的应用。

目前,市场上大量生成并销售Cortex-M0微处理器。这些微处理器上通常配置有128KB或更大的嵌入式闪存(eflash)。而大部分程序代码通常只会占用eflash的小部分内存空间,而eflash中剩余的内存空间并未得到充分地利用。

由于Cortex-M0微处理器的内核无法支持中断向量表重映射,因此,在执行下载程序操作或者执行程序升级操作的过程中,通常需要将程序代码烧写到eflash的起始地址,由此限制了eflash的使用灵活性。

针对上述的问题,目前尚未提出有效的解决方案。

发明内容

本发明至少部分实施例提供了一种中断向量表的重映射方法、装置、微处理器及电子装置,以至少解决相关技术中由于Cortex-M0微处理器的内核无法支持中断向量表重映射,因此,在执行下载程序操作或者执行程序升级操作的过程中,通常需要将程序代码烧写到eflash的起始地址,由此限制了eflash的使用灵活性的技术问题。

根据本发明其中一实施例,提供了一种中断向量表的重映射方法,应用于微处理器,微处理器的内核采用指令和数据共享同一总线的架构,微处理器的存储结构包括:静态随机存取存储器和嵌入式闪存,该方法包括:

在静态随机存取存储器内开辟第一存储区域,并将用户程序的中断向量表拷贝至第一存储区域,其中,静态随机存取存储器的起始地址与第一存储区域的起始地址相同;在嵌入式闪存内开辟第二存储区域,并将用户程序烧写至第二存储区域;在开始执行用户程序的过程中,将第一存储区域的起始地址映射至存储结构的起始地址。

可选地,将中断向量表拷贝至第一存储区域包括:采用预设接口程序从静态随机存取存储器的起始地址开始,将中断向量表拷贝至第一存储区域,其中,预设接口程序为微处理器在上电或复位时最先执行的程序。

可选地,将用户程序烧写至第二存储区域包括:获取用户程序的待烧写地址;按照待烧写地址将用户程序的源代码编译为二进制文件;基于待烧写地址将用户程序的二进制文件烧写至第二存储区域。

可选地,将第一存储区域的起始地址映射至存储结构的起始地址包括:跳转到用户程序;在用户程序的启动代码中,将第一存储区域的起始地址映射至存储结构的起始地址。

可选地,在将第一存储区域的起始地址映射至存储结构的起始地址之后,还包括:当用户程序的执行过程中发生异常中断时,从存储结构的起始地址获取中断向量,其中,中断向量为中断处理函数的起始地址;基于中断向量跳转执行中断处理函数。

根据本发明其中一实施例,还提供了一种中断向量表的重映射装置,应用于微处理器,所述微处理器的内核采用指令和数据共享同一总线的架构,所述微处理器的存储结构包括:静态随机存取存储器和嵌入式闪存,该装置包括:

拷贝模块,用于在静态随机存取存储器内开辟第一存储区域,并将用户程序的中断向量表拷贝至第一存储区域,其中,静态随机存取存储器的起始地址与第一存储区域的起始地址相同;烧写模块,用于在嵌入式闪存内开辟第二存储区域,并将用户程序烧写至第二存储区域;重映射模块,用于在开始执行用户程序的过程中,将第一存储区域的起始地址映射至存储结构的起始地址。

可选地,拷贝模块,用于采用预设接口程序从静态随机存取存储器的起始地址开始,将中断向量表拷贝至第一存储区域,其中,预设接口程序为微处理器在上电或复位时最先执行的程序。

可选地,烧写模块包括:获取单元,用于获取用户程序的待烧写地址;编译单元,用于按照待烧写地址将用户程序的源代码编译为二进制文件;烧写单元,用于基于待烧写地址将用户程序的二进制文件烧写至第二存储区域。

可选地,重映射模块包括:跳转单元,用于跳转到用户程序;重映射单元,用于在用户程序的启动代码中,将第一存储区域的起始地址映射至存储结构的起始地址。

可选地,上述装置还包括:获取模块,用于当用户程序的执行过程中发生异常中断时,从存储结构的起始地址获取中断向量,其中,中断向量为中断处理函数的起始地址;执行模块,用于基于中断向量跳转执行中断处理函数。

根据本发明其中一实施例,还提供了一种存储介质,存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述任一项中的中断向量表的重映射方法。

根据本发明其中一实施例,还提供了一种微处理器,微处理器用于运行程序,其中,程序运行时执行上述任意一项的中断向量表的重映射方法。

根据本发明其中一实施例,还提供了一种电子装置,包括存储器和微处理器,存储器中存储有计算机程序,微处理器被设置为运行计算机程序以执行上述任一项中的中断向量表的重映射方法。

在本发明至少部分实施例中,采用在静态随机存取存储器内开辟第一存储区域并将用户程序的中断向量表拷贝至第一存储区域,静态随机存取存储器的起始地址与第一存储区域的起始地址相同,以及在嵌入式闪存内开辟第二存储区域并将用户程序烧写至第二存储区域的方式,通过在开始执行用户程序的过程中,将第一存储区域的起始地址映射至存储结构的起始地址,达到了采用将第一存储区域的起始地址映射至存储结构的起始地址的重映射方式来取代先将用户程序烧写到嵌入式闪存的起始地址,再将嵌入式闪存的起始地址映射到存储结构的起始地址的重映射方式的目的,从而实现了提高了程序代码烧写过程的灵活性、提升系统稳定性的技术效果,进而解决了相关技术中由于Cortex-M0微处理器的内核无法支持中断向量表重映射,因此,在执行下载程序操作或者执行程序升级操作的过程中,通常需要将程序代码烧写到eflash的起始地址,由此限制了eflash的使用灵活性的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明其中一实施例的中断向量表的重映射方法的流程图;

图2是根据本发明其中一可选实施例的微处理器的存储结构示意图;

图3是根据本发明其中一可选实施例的中断向量表的重映射过程的流程图;

图4是根据本发明其中一实施例的中断向量表的重映射装置的结构框图;

图5是根据本发明其中一可选实施例的中断向量表的重映射装置的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明其中一实施例,提供了一种中断向量表的重映射方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

该方法实施例可以在电子装置中执行。该电子装置可以在多种应用场景下得到广泛应用。例如:该电子装置既可以是应用在智能家居场景下的家用电器,也可以是应用在即时通信场景下的通讯设备,还可以是应用在智能医疗场景下的医疗器械,抑或是应用在智能救援场景下的抢险设备。以运行在移动终端上为例,移动终端可以包括一个或多个处理器(处理器可以包括微处理器(MCU),当然还可以包括但不限于中央处理器(CPU)、图形处理器(GPU)、数字信号处理(DSP)芯片、或可编程逻辑器件(FPGA)等的处理装置)和用于存储数据的存储器。可选地,上述移动终端还可以包括用于通信功能的传输设备、输入输出设备以及显示设备。本领域普通技术人员可以理解,上述结构描述仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比上述结构描述更多或者更少的组件,或者具有与上述结构描述不同的配置。

存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的中断向量表的重映射方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的中断向量表的重映射方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输设备用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。

显示设备可以例如触摸屏式的液晶显示器(LCD)和触摸显示器(也被称为“触摸屏”或“触摸显示屏”)。该液晶显示器可使得用户能够与移动终端的用户界面进行交互。在一些实施例中,移动终端具有图像用户界面(GUI),用户可以通过触摸触敏表面上的手指接触和/或手势来与GUI进行人机交互,此处的人机交互功能可选的包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发电子邮件、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读存储介质中。

在本实施例中提供了一种运行于上述电子设备的中断向量表的重映射方法,图1是根据本发明其中一实施例的中断向量表的重映射方法的流程图,如图1所示,该方法应用于微处理器,微处理器的内核采用指令和数据共享同一总线的架构,微处理器的存储结构包括:静态随机存取存储器(SRAM)和嵌入式闪存(eflash),该方法包括如下步骤:

步骤S12,在静态随机存取存储器内开辟第一存储区域,并将用户程序的中断向量表拷贝至第一存储区域,其中,静态随机存取存储器的起始地址与第一存储区域的起始地址相同;

步骤S14,在嵌入式闪存内开辟第二存储区域,并将用户程序烧写至第二存储区域;

步骤S16,在开始执行用户程序的过程中,将第一存储区域的起始地址映射至存储结构的起始地址。

通过上述步骤,可以采用在静态随机存取存储器内开辟第一存储区域并将用户程序的中断向量表拷贝至第一存储区域,静态随机存取存储器的起始地址与第一存储区域的起始地址相同,以及在嵌入式闪存内开辟第二存储区域并将用户程序烧写至第二存储区域的方式,通过在开始执行用户程序的过程中,将第一存储区域的起始地址映射至存储结构的起始地址,达到了采用将第一存储区域的起始地址映射至存储结构的起始地址的重映射方式来取代先将用户程序烧写到嵌入式闪存的起始地址,再将嵌入式闪存的起始地址映射到存储结构的起始地址的重映射方式的目的,从而实现了提高了程序代码烧写过程的灵活性、提升系统稳定性的技术效果,进而解决了相关技术中由于Cortex-M0微处理器的内核无法支持中断向量表重映射,因此,在执行下载程序操作或者执行程序升级操作的过程中,通常需要将程序代码烧写到eflash的起始地址,由此限制了eflash的使用灵活性的技术问题。

上述微处理器的内核可以采用Cortex-M家族中的M0系列。Cortex-M0为32位、3级流水线RISC处理器,其核心采用指令和数据共享同一总线的架构。需要说明的是,Cortex-M0内核仅为本发明的一个可选示例,其并不构成对本发明的不当限制。其他采用相同架构(即指令和数据共享同一总线的架构)内核的微处理器同样属于本发明的保护范围。

图2是根据本发明其中一可选实施例的微处理器的存储结构示意图,如图2所示,在将用户程序源代码编译为二进制文件之后,中断向量表位于二进制文件的起始位置。由于ARM的架构规定,发生中断时从0x00000000地址(即存储结构的起始地址)获取中断处理函数的起始地址,因此,在将用户程序烧写到eflash之后,需要将中断向量表映射到0地址。考虑到Cortex-M0内核无法支持中断向量表重映射,因此,相关技术中所提供的中断向量表重映射方式通常是将用户程序烧写到eflash的起始地址,然后再将eflash映射到0x00000000地址。

鉴于ARM架构已经规定中断向量表需要从0地址处获取,但是却并未规定Cortex-M0微处理器获取指令的地址。为此,如果Cortex-M0微处理器能够从eflash物理地址获取指令,并在发生异常中断时从0x00000000地址获取中断处理函数的起始地址,那么便可以实现Cortex-M0中断向量表重映射的功能。

可选地,在步骤S12中,将中断向量表拷贝至第一存储区域可以包括以下执行步骤:

步骤S121,采用预设接口程序从静态随机存取存储器的起始地址开始,将中断向量表拷贝至第一存储区域,其中,预设接口程序为微处理器在上电或复位时最先执行的程序。

为了实现Cortex-M0微处理器重映射,需要具备的前提条件之一便是预设接口程序。在一个可选实施例中,上述预设接口程序可以为无盘启动ROM接口(bootrom)程序。通过在SRAM的起始地址所在位置开辟出一块存储区域(即上述第一存储区域),然后再配置Cortex-M0微处理器上电后从bootrom程序开始启动。在bootrom程序中,将用户程序的中断向量表拷贝到SRAM的起始地址(其与第一存储区域的起始地址相同),以便后续将SRAM的起始地址映射到0x00000000地址。

可选地,在步骤S14中,将用户程序烧写至第二存储区域可以包括以下执行步骤:

步骤S141,获取用户程序的待烧写地址;

步骤S142,按照待烧写地址将用户程序的源代码编译为二进制文件;

步骤S143,基于待烧写地址将用户程序的二进制文件烧写至第二存储区域。

为了实现Cortex-M0微处理器重映射,需要具备的前提条件还包括:用户程序的待烧写eflash地址以及按照待烧写eflash地址编译的用户程序。在将用户程序从源代码编译为二进制文件的过程中,可以按照待烧写eflash地址进行编译,然后再将用户程序的二进制文件烧写到上述待烧写eflash地址所指向的第二存储区域。

为了解决Cortex-M0微处理器在烧写程序过程中通常只能烧写到eflash起始地址的问题,作为本发明的一个可选实施例,在Cortex-M0中断向量表重映射的过程中,可以将程序代码烧写到eflash中的任意存储位置而并非只能烧写到eflash起始地址,由此提高了程序代码烧写过程的灵活性。此外,还可以同时向eflash中多个不同地址段中烧录多个用户程序,由此实现在Cortex-M0微处理器上运行不同的程序。

进一步地,考虑到Cortex-M0微处理器在执行程序升级过程中升级程序很有可能会覆盖原有程序代码,为此可以将升级程序烧写到eflash中原有程序代码已占用的存储区域之外的其余存储空间,并将原有程序代码作为升级程序的备份,从而有利于提升系统稳定性。

可选地,在步骤S16中,将第一存储区域的起始地址映射至存储结构的起始地址可以包括以下执行步骤:

步骤S161,跳转到用户程序;

步骤S162,在用户程序的启动代码中,将第一存储区域的起始地址映射至存储结构的起始地址。

在bootrom程序中拷贝用户程序的中断向量表到SRAM的起始地址之后,需要跳转到用户程序以执行程序指令。在用户程序的启动代码中,将SRAM映射到0x00000000地址。然后,Cortex-M0微处理器从eflash的物理地址获取并执行指令。当用户程序的执行过程中发生异常中断时,由于已将SRAM的起始地址映射到0x00000000地址,因此,Cortex-M0微处理器从0x00000000地址获取中断处理函数的起始地址,进而执行中断处理函数。

可选地,在步骤S16,将第一存储区域的起始地址映射至存储结构的起始地址之后,还可以包括以下执行步骤:

步骤S17,当用户程序的执行过程中发生异常中断时,从存储结构的起始地址获取中断向量,其中,中断向量为中断处理函数的起始地址;

步骤S18,基于中断向量跳转执行中断处理函数。

Cortex-M0微处理器以eflash的物理地址依次执行程序指令,当用户程序的执行过程中发生异常中断时,Cortex-M0微处理器从0x00000000地址获取中断向量,该中断向量为中断处理函数的起始地址。然后再基于中断向量跳转执行中断处理函数。

图3是根据本发明其中一可选实施例的中断向量表的重映射过程的流程图,如图3所示,首先,配置Cortex-M0微处理器上电后从bootrom程序开始启动,以便在bootrom程序中将用户程序的中断向量表拷贝到SRAM的起始地址。其次,在bootrom程序中拷贝用户程序的中断向量表到SRAM的起始地址之后,需要跳转到用户程序以执行程序指令。在用户程序的启动代码中,将SRAM映射到0x00000000地址。然后,当用户程序的执行过程中发生异常中断时,由于已将SRAM的起始地址映射到0x00000000地址,因此,Cortex-M0微处理器从0x00000000地址获取中断处理函数的起始地址,进而执行中断处理函数。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

在本实施例中还提供了一种中断向量表的重映射装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图4是根据本发明其中一实施例的中断向量表的重映射装置的结构框图,该装置应用于微处理器,所述微处理器的内核采用指令和数据共享同一总线的架构,所述微处理器的存储结构包括:静态随机存取存储器和嵌入式闪存,如图4所示,该装置包括:拷贝模块10,用于在静态随机存取存储器内开辟第一存储区域,并将用户程序的中断向量表拷贝至第一存储区域,其中,静态随机存取存储器的起始地址与第一存储区域的起始地址相同;烧写模块20,用于在嵌入式闪存内开辟第二存储区域,并将用户程序烧写至第二存储区域;重映射模块30,用于在开始执行用户程序的过程中,将第一存储区域的起始地址映射至存储结构的起始地址。

可选地,拷贝模块10,用于采用预设接口程序从静态随机存取存储器的起始地址开始,将中断向量表拷贝至第一存储区域,其中,预设接口程序为微处理器在上电或复位时最先执行的程序。

可选地,烧写模块20包括:获取单元(图中未示出),用于获取用户程序的待烧写地址;编译单元(图中未示出),用于按照待烧写地址将用户程序的源代码编译为二进制文件;烧写单元(图中未示出),用于基于待烧写地址将用户程序的二进制文件烧写至第二存储区域。

可选地,重映射模块30包括:跳转单元(图中未示出),用于跳转到用户程序;重映射单元(图中未示出),用于在用户程序的启动代码中,将第一存储区域的起始地址映射至存储结构的起始地址。

可选地,图5是根据本发明其中一可选实施例的中断向量表的重映射装置的结构框图,如图5所示,该装置除包括图4所示的所有模块外,上述装置还包括:获取模块40,用于当用户程序的执行过程中发生异常中断时,从存储结构的起始地址获取中断向量,其中,中断向量为中断处理函数的起始地址;执行模块50,用于基于中断向量跳转执行中断处理函数。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

S1,在静态随机存取存储器内开辟第一存储区域,并将用户程序的中断向量表拷贝至第一存储区域,其中,静态随机存取存储器的起始地址与第一存储区域的起始地址相同;

S2,在嵌入式闪存内开辟第二存储区域,并将用户程序烧写至第二存储区域;

S3,在开始执行用户程序的过程中,将第一存储区域的起始地址映射至存储结构的起始地址。

可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:采用预设接口程序从静态随机存取存储器的起始地址开始,将中断向量表拷贝至第一存储区域,其中,预设接口程序为微处理器在上电或复位时最先执行的程序。

可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:获取用户程序的待烧写地址;按照待烧写地址将用户程序的源代码编译为二进制文件;基于待烧写地址将用户程序的二进制文件烧写至第二存储区域。

可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:跳转到用户程序;在用户程序的启动代码中,将第一存储区域的起始地址映射至存储结构的起始地址。

可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:当用户程序的执行过程中发生异常中断时,从存储结构的起始地址获取中断向量,其中,中断向量为中断处理函数的起始地址;基于中断向量跳转执行中断处理函数。

可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

S1,在静态随机存取存储器内开辟第一存储区域,并将用户程序的中断向量表拷贝至第一存储区域,其中,静态随机存取存储器的起始地址与第一存储区域的起始地址相同;

S2,在嵌入式闪存内开辟第二存储区域,并将用户程序烧写至第二存储区域;

S3,在开始执行用户程序的过程中,将第一存储区域的起始地址映射至存储结构的起始地址。

可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:采用预设接口程序从静态随机存取存储器的起始地址开始,将中断向量表拷贝至第一存储区域,其中,预设接口程序为微处理器在上电或复位时最先执行的程序。

可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:获取用户程序的待烧写地址;按照待烧写地址将用户程序的源代码编译为二进制文件;基于待烧写地址将用户程序的二进制文件烧写至第二存储区域。

可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:跳转到用户程序;在用户程序的启动代码中,将第一存储区域的起始地址映射至存储结构的起始地址。

可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:当用户程序的执行过程中发生异常中断时,从存储结构的起始地址获取中断向量,其中,中断向量为中断处理函数的起始地址;基于中断向量跳转执行中断处理函数。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号