CN116974600A - 智能电能表iap升级方法、装置及相关设备 - Google Patents
智能电能表iap升级方法、装置及相关设备 Download PDFInfo
- Publication number
- CN116974600A CN116974600A CN202310824204.6A CN202310824204A CN116974600A CN 116974600 A CN116974600 A CN 116974600A CN 202310824204 A CN202310824204 A CN 202310824204A CN 116974600 A CN116974600 A CN 116974600A
- Authority
- CN
- China
- Prior art keywords
- interrupt
- electric energy
- iap
- energy meter
- target
- 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 62
- 230000006870 function Effects 0.000 claims abstract description 141
- 239000013598 vector Substances 0.000 claims abstract description 67
- 238000013507 mapping Methods 0.000 claims abstract description 63
- 230000003068 static effect Effects 0.000 claims abstract description 36
- 230000009191 jumping Effects 0.000 claims abstract description 26
- 230000002159 abnormal effect Effects 0.000 claims description 11
- 238000012544 monitoring process Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000010295 mobile communication Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种智能电能表IAP升级方法,应用于电能表技术领域。本申请提供的方法包括:在只读存储器中开启预设空间大小的存储区域作为映射区,所述映射区的起始地址为所述只读存储器的起始地址;设置所述映射区的第一条指令为跳转至引导加载程序,并在所述映射区生成至少一个中断函数;若所述引导加载程序中包含IAP升级任务,生成所述IAP升级任务对应类型的目标中断;根据所述目标中断的中断类型调用对应的目标中断函数,所述目标中断函数访问静态随机存储器中的目标中断向量表,所述目标中断向量表中包含对应的目标中断服务函数地址;跳转至所述目标中断服务函数地址,通过所述目标中断服务函数执行所述电能表升级指令对应的IAP升级程序。
Description
技术领域
本申请涉及电能表技术领域,尤其涉及一种智能电能表IAP升级方法、装置及相关设备。
背景技术
基于M0内核设计的芯片具有成本低廉和性能强大的优势,所以传统的智能电能表采用基于M0内核设计的芯片,又由于智能电能表的外壳法制特性禁止开盖,所以智能电能表的IAP升级方式十分重要。但是,不同的芯片厂商对于同样的M0内核的设计存在细节上的差异,而与IAP升级方式相关联的是芯片是否支持中断向量表重定向和芯片是否支持映射SRAM到0x00000000地址(即芯片对应的ROM的存储起始地址),进而衍生出至少三种智能电能表的IAP升级方式,第一种是芯片支持中断向量表重定向但不支持映射SRAM到0x00000000地址情况下的IAP升级方案,第二种是芯片不支持中断向量表重定向但支持映射SRAM到0x00000000地址情况下的IAP升级方案,第三种是芯片既不支持中断向量表重定向又不支持映射SRAM到0x00000000地址情况下的IAP升级方案。多种芯片对应多种IAP升级方式的现状,不仅使得电能表系统的开发和维护成本过高,也增加了电能表系统IAP升级失败或异常的概率。
发明内容
本申请实施例提供一种智能电能表IAP升级方法、装置、智能电能表及存储介质,以解决传统智能电能表多种IAP升级方式带来的开发和维护成本高、IAP升级失败或异常概率大的问题。
本申请的第一方面,提供一种智能电能表IAP升级方法,包括:
在只读存储器中开启预设空间大小的存储区域作为映射区,所述映射区的起始地址为所述只读存储器的起始地址;
设置所述映射区的第一条指令为跳转至引导加载程序,并在所述映射区生成至少一个中断函数,所述中断函数通过函数指针调用指定地址的中断服务函数,所述指定地址为所述引导加载程序或电能表应用程序的中断服务函数地址,所述中断服务函数从中断向量表中获取,所述中断向量表存储于静态随机存储区;
若所述引导加载程序中包含IAP升级任务,生成所述IAP升级任务对应类型的目标中断;
根据所述目标中断的中断类型调用对应的目标中断函数,所述目标中断函数访问静态随机存储器中的目标中断向量表,所述目标中断向量表中包含对应的目标中断服务函数地址;
跳转至所述目标中断服务函数地址,通过所述目标中断服务函数执行所述电能表升级指令对应的IAP升级程序。
优选地,所述若所述引导加载程序中包含IAP升级任务,生成所述IAP升级任务对应类型的目标中断的步骤之前,还包括:
检测到所述映射区的第一条指令被执行,跳转至所述引导加载程序时,拷贝所述引导加载程序的中断向量表至所述静态随机存储器中的目标地址;
设置所述引导加载程序的最后一条指令为跳转至所述电能表应用程序。
优选地,所述设置所述引导加载程序的最后一条指令为跳转至电能表应用程序的步骤之后,还包括:
检测所述引导加载程序中是否包含IAP升级任务;
若不包含,则跳转至所述电能表应用程序,设置所述电能表应用程序的第一条指令为拷贝所述电能表应用程序的中断向量表至所述静态随机存储器中的目标地址;
运行所述电能表应用程序。
优选地,所述设置所述电能表应用程序的第一条指令为拷贝所述电能表应用程序的中断向量表至所述静态随机存储器中的目标地址的步骤之后,包括:
监测是否接收到电能表IAP升级指令;
若接收到所述电能表IAP升级指令,则停止执行所述电能表应用程序,跳转至所述引导加载程序。
优选地,所述通过所述目标中断服务函数执行所述电能表升级指令对应的IAP升级程序的步骤之后,还包括:
跳转至执行所述设置所述电能表应用程序的第一条指令为拷贝所述电能表应用程序的中断向量表至所述静态随机存储器中的目标地址。
优选地,所述通过所述目标中断服务函数执行所述电能表升级指令对应的IAP升级程序的步骤之后,还包括:
若所述目标中断服务函数执行异常停止,则重新跳转至执行所述映射区的第一条指令,直至所述目标中断服务函数执行异常停止的次数等于或大于预设升级异常次数阈值。
本申请的第二方面,提供一种智能电能表IAP升级装置,包括:
映射区模块,用于在只读存储器中开启预设空间大小的存储区域作为映射区,所述映射区的起始地址为所述只读存储器的起始地址;
中断函数模块,用于设置所述映射区的第一条指令为跳转至引导加载程序,并在所述映射区生成至少一个中断函数,所述中断函数通过函数指针调用指定地址的中断服务函数,所述指定地址为所述引导加载程序或电能表应用程序的中断服务函数地址,所述中断服务函数从中断向量表中获取,所述中断向量表存储于静态随机存储区;
中断生成模块,用于若所述引导加载程序中包含IAP升级任务,生成所述IAP升级任务对应类型的目标中断;
中断向量表模块,用于根据所述目标中断的中断类型调用对应的目标中断函数,所述目标中断函数访问静态随机存储器中的目标中断向量表,所述目标中断向量表中包含对应的目标中断服务函数地址;
IAP升级程序模块,用于跳转至所述目标中断服务函数地址,通过所述目标中断服务函数执行所述电能表升级指令对应的IAP升级程序。
本申请的第三方面,提供一种电子设备,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上任一项所述的智能电能表IAP升级方法。
本申请的第四方面,提供一种智能电能表,所述智能电能表包含上述电子设备。
本申请的第五方面,提供一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,当所述计算机可执行指令被电子设备执行时,使所述电子设备执行如上任一项所述的智能电能表IAP升级方法。
上述智能电能表IAP升级方法、装置、智能电能表及存储介质,通过在只读存储器中开启预设空间大小的存储区域作为映射区,所述映射区的起始地址为所述只读存储器的起始地址;设置所述映射区的第一条指令为跳转至引导加载程序,并在所述映射区生成至少一个中断函数;若所述引导加载程序中包含IAP升级任务,生成所述IAP升级任务对应类型的目标中断;根据所述目标中断的中断类型调用对应的目标中断函数,所述目标中断函数访问静态随机存储器中的目标中断向量表,所述目标中断向量表中包含对应的目标中断服务函数地址;跳转至所述目标中断服务函数地址,通过所述目标中断服务函数执行所述电能表升级指令对应的IAP升级程序。将不同架构设计的M0内核芯片的IAP升级方式进行统一,提高了智能电能表系统的开发效率,降低了智能电能表系统的维护成本。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例中智能电能表IAP升级方法的一应用环境示意图;
图2是本申请一实施例中智能电能表IAP升级方法的一流程图;
图3是传统智能电能表进行IAP升级时智能电能表的只读存储器中的存储架构设计示意图;
图4是本实施例中智能电能表的只读存储器中的存储架构设计示意图;
图5是本实施例中智能电能表进行IAP升级时的流程示意图;
图6是传统智能电能表进行IAP升级时相关中断执行的流程示意图;
图7是本实施例中智能电能表进行IAP升级时相关中断执行的流程示意图;
图8是本申请一实施例中智能电能表IAP升级装置的结构示意图;
图9是本申请一实施例中电子设备的一示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供的智能电能表IAP(In Application Programming,应用程序内编程)升级方法,可应用在如图1的应用环境中,其中,智能电能表是由测量单元、数据处理单元、通信模块单元等组成,具有电能量计量、数据处理、实时监测、自动控制、信息交互等功能的电能表。可以理解的是图1中的智能电能表的数量仅仅是示意性的,可以根据实际需求进行任意数量的扩展。
在一实施例中,如图2所示,提供一种智能电能表IAP升级方法,该方法涉及的代码为三段式分层架构,分别为映射区、引导加载程序和电能表应用程序,以该方法应用在图1中的智能电能表为例进行说明,包括如下步骤S101至步骤S105:
S101、在只读存储器中开启预设空间大小的存储区域作为映射区,映射区的起始地址为只读存储器的起始地址。
如图3所示,图3是传统智能电能表进行IAP升级时智能电能表的只读存储器(ReadOnly Memory,ROM)中的存储架构设计示意图。图3中APP表示电能表应用程序,Bootloader是引导加载程序,ROM空间的起始地址为0x00000000。其中,Bootloader的主要功能是完成系统的初始化和启动过程,并加载操作系统或其他应用程序到内存中。传统智能电能表的只读存储器中的存储架构设计用于IAP升级时,若电能表使用多种芯片时,需要进行多种IAP升级方案进行替换,在开发和运维方面需要花费更多的时间和精力。
如图4所示,图4是本实施例中智能电能表的只读存储器中的三段式存储架构设计示意图。图4中设置ROM空间的起始存储空间为预设存储空间大小的映射区,映射区的起始地址为ROM空间的起始地址0x00000000,在映射区的存储空间结束之后是Bootloader的存储空间,在Bootloader存储空间结束之后是电能表应用程序的存储空间。
S102、设置映射区的第一条指令为跳转至引导加载程序,并在映射区生成至少一个中断函数。
其中,中断函数通过函数指针调用指定地址的中断服务函数,指定地址为引导加载程序或电能表应用程序的中断服务函数地址,中断服务函数从中断向量表中获取,中断向量表存储于静态随机存储区。例如,在映射区中实现所有必须的中断函数,实现内容为通过函数指针调用指定地址的中断服务函数,指定地址为引导加载程序或电能表应用程序拷贝到0x20000000地址上目标中断向量表。
其中,映射区中的中断函数是根据智能电能表的芯片支持的中断向量进行生成的,若智能电能表采用不同型号的芯片,则需要添加不同的中断函数,每一个中断函数在引导加载程序或者电能表应用程序的存储空间中有对应的中断服务函数。
S103、若引导加载程序中包含IAP升级任务,生成IAP升级任务对应类型的目标中断。
进一步地,生成IAP升级任务对应类型的目标中断之前,若检测到映射区的第一条指令被执行,跳转至引导加载程序时,拷贝引导加载程序的中断向量表至静态随机存储器中的目标地址。例如,芯片型号为矩泉HT5019的芯片中静态随机存储器的物理起始地址为0x2000000,则以该0x20000000为起始地址定义一个目标数组,将引导加载程序的中断向量表拷贝至该目标数组中。然后,设置引导加载程序的最后一条指令为跳转至电能表应用程序,即在引导加载程序执行完成之后,转去执行电能表应用程序。
进一步地,设置引导加载程序的最后一条指令为跳转至电能表应用程序的步骤之前,检测引导加载程序中是否包含IAP升级任务,若不包含,则设置引导加载程序的最后一条指令为跳转至电能表应用程序,设置电能表应用程序的第一条指令为拷贝电能表应用程序中的中断向量表至静态随机存储器中的目标地址。最后,运行电能表应用程序,执行将电能表应用程序的中断向量表拷贝至静态随机存储器的目标地址的任务。需要特殊说明的是,在跳转至执行电能表应用程序的第一条指令时,引导加载程序已经执行完毕,存储在静态随机存储器中引导加载程序的中断向量表已经失去作用意义,而执行电能表应用程序的第一条指令时,会拷贝电能表应用程序的中断向量表至静态随机存储器,使得电能表应用程序的中断向量表对引导加载程序的中断向量表进行覆盖。
S104、根据目标中断的中断类型调用对应的目标中断函数,目标中断函数访问静态随机存储器中的目标中断向量表,目标中断向量表中包含对应的目标中断服务函数的函数地址。
其中,静态随机存储器中存储了引导加载程序或者电能表应用程序的中断向量表,中断向量表中保存了中断类型、中断类型对应的中断服务函数的函数地址(即中断服务函数的函数指针,指向中断服务函数的函数体的起始地址)。
进一步地,设置电能表应用程序的第一条指令为拷贝电能表应用程序的中断向量表至静态随机存储器中的目标地址的步骤之后,电能表应用程序开始运行的同时,监测是否接收到电能表IAP升级指令,若接收到电能表IAP升级指令,则停止执行电能表应用程序,跳转至引导加载程序;或者直接复位,重新从映射区运行,通过第一条指令跳转至引导加载程序。
S105、跳转至所述目标中断服务函数地址,通过所述目标中断服务函数执行所述电能表升级指令对应的IAP升级程序。
具体地,通过中断服务函数跳转至引导加载程序,拷贝引导加载程序的中断向量表至静态随机存储区中的目标地址,检测预留IAP升级任务标志位,若IAP升级任务存在,则执行IAP升级程序进行智能电能表代码的程序下载;若IAP升级任务不存在,则跳转至电能表应用程序运行。
其中,IAP操作和电能表应用程序下载,依托于串口和定时器中断函数实现IAP升级程序。
如图5所示,进一步地,通过IAP升级程序之后,若智能电能表代码校验通过,则记录智能电能表应用程序有效,然后跳转至执行设置电能表应用程序的第一条指令为拷贝电能表应用程序的中断向量表至静态随机存储器的目标地址的步骤,进而运行电能表应用程序,使得智能电能表进入正常工作模式。
如图5所示,进一步地,通过目标中断服务函数执行电能表升级指令对应的IAP升级程序之后,若目标中断服务函数执行异常停止,或升级操作中止导致IAP升级任务失败,则一直执行IAP升级任务等待,直到IAP升级任务完成。
如图5所示,进一步地,若IAP升级任务等待时间过长或超出预设升级异常超时阈值,即在执行电能表IAP升级任务失败很长一段时间后,则调取外部存储的备份代码写入到电能表应用程序地址区域,避免设备因升级失败又长时间不处理的情况下设备无法继续正常工作。
如图6所示,图6是传统智能电能表进行IAP升级时相关中断执行的流程示意图,与IAP升级任务相关的中断产生之后,通过中断向量表找到对应的中断服务函数,然后执行电能表应用程序或者引导加载程序中对应的中断服务函数,最后退出中断,恢复现场任务进入中断前的程序逻辑。其中,存在明显的缺陷是中断向量表中只能找到中断服务函数的固定地址,无法为所有M0(由ARM设计的Cortex-M0处理器架构)内核的芯片实现IAP操作时所通用。
如图7所示,图7是本实施例中智能电能表进行IAP升级时相关中断执行的流程示意图,与IAP升级任务相关的中断产生之后,通过已经拷贝到静态随机存储器中的中断向量表找到对应映射区的中断函数,映射区中断函数中是调用对应函数指针指向的电能表应用程序或者引导加载程序中的中断服务函数,在中断服务函数执行完毕退出后,映射区的中断函数也执行完毕退出,最后退出中断,恢复现场任务进入中断前的程序逻辑,能够适用于所有M0内核的芯片的IAP升级任务。
本申请实施例提供的智能电能表IAP升级方法,通过在只读存储器中开启预设空间大小的存储区域作为映射区,所述映射区的起始地址为所述只读存储器的起始地址;设置所述映射区的第一条指令为跳转至引导加载程序,并在所述映射区生成至少一个中断函数;若所述引导加载程序中包含IAP升级任务,生成所述IAP升级任务对应类型的目标中断;根据所述目标中断的中断类型调用对应的目标中断函数,所述目标中断函数访问静态随机存储器中的目标中断向量表,所述目标中断向量表中包含对应的目标中断服务函数地址;跳转至所述目标中断服务函数地址,通过所述目标中断服务函数执行所述电能表升级指令对应的IAP升级程序。将不同架构设计的M0内核芯片的IAP升级方式进行统一,提高了智能电能表系统的开发效率,降低了智能电能表系统的维护成本。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在一实施例中,提供一种智能电能表IAP升级装置100,该智能电能表IAP升级装置100与上述实施例中智能电能表IAP升级方法一一对应。如图8所示,该智能电能表IAP升级装置100包括映射区模块11、中断函数模块12、中断生成模块13、中断向量模块14和IAP升级程序模块。各功能模块详细说明如下:
映射区模块11,用于在只读存储器中开启预设空间大小的存储区域作为映射区,所述映射区的起始地址为只读存储器的起始地址。
中断函数模块12,用于设置所述映射区的第一条指令为跳转至引导加载程序,并在所述映射区生成至少一个中断函数,所述中断函数通过函数指针调用指定地址的中断服务函数,所述指定地址为所述引导加载程序或电能表应用程序的中断服务函数地址,所述中断服务函数从中断向量表中获取,所述中断向量表存储于静态随机存储区。
中断生成模块13,用于若引导加载程序中包含IAP升级任务,生成IAP升级任务对应类型的目标中断。
中断向量表模块14,用于根据目标中断的中断类型调用对应的目标中断函数,目标中断函数访问静态随机存储器中的目标中断向量表,目标中断向量表中包含对应的目标中断服务函数地址。
IAP升级程序模块15,用于跳转至目标中断服务函数地址,通过目标中断服务函数执行电能表升级指令对应的IAP升级程序。
进一步地,所述中断生成模块13还包括:
第一拷贝子模块,用于检测到映射区的第一条指令被执行,跳转至引导加载程序时,拷贝引导加载程序的中断向量表至静态随机存储器中的目标地址。
第一设置子模块,用于设置引导加载程序的最后一条指令为跳转至电能表应用程序。
进一步地,所述第一设置子模块还包括:
升级检测子单元,用于检测引导加载程序中是否包含IAP升级任务;
第二设置子单元,用于若不包含,则跳转至所述电能表应用程序,设置电能表应用程序的第一条指令为拷贝电能表应用程序的中断向量表至静态随机存储器中的目标地址;
电能表应用子单元,用于运行电能表应用程序。
进一步地,所述第一设置子模块还包括:
第一监测子单元,用于监测是否接收到电能表IAP升级指令。
第一升级跳转子单元,用于若接收到电能表IAP升级指令,则停止执行电能表应用程序,跳转至所述引导加载程序。
进一步地,所述IAP升级程序模块15还包括:
第二升级跳转子模块,用于跳转至执行设置电能表应用程序的第一条指令为拷贝电能表应用程序的中断向量表至静态随机存储器中的目标地址。
进一步,所述IAP升级程序模块15还包括:
升级异常子模块,用于若目标中断服务函数执行异常停止,则重新跳转至执行映射区的第一条指令,直至目标中断服务函数执行异常停止的次数等于或大于预设升级异常次数阈值。
其中上述模块/单元中的“第一”和“第二”的意义仅在于将不同的模块/单元加以区分,并不用于限定哪个模块/单元的优先级更高或者其它的限定意义。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式。
关于智能电能表IAP升级装置的具体限定可以参见上文中对于智能电能表IAP升级方法的限定,在此不再赘述。上述智能电能表IAP升级装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
图9是本申请实施例提供的智能电能表IAP升级方法的电子设备200的硬件结构示意图,如图9所示,该电子设备200包括:
一个或多个处理器210以及存储器220,图8中以一个处理器210为例。
处理器210和存储器220可以通过总线或者其他方式连接,图8中以通过总线连接为例。
存储器220作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的智能电能表IAP升级方法对应的程序指令/模块。处理器210通过运行存储在存储器220中的非易失性软件程序、指令以及模块,从而执行各种功能应用以及数据处理,即实现上述方法实施例智能电能表IAP升级方法。
存储器220可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据智能电能表IAP升级装置的使用所创建的数据等。此外,存储器220可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器220可选包括相对于处理器210远程设置的存储器,这些远程存储器可以通过网络连接至智能电能表IAP升级装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器220中,当被所述一个或者多个处理器210执行时,执行上述任意方法实施例中的智能电能表IAP升级方法,例如,执行以上描述的图2中的方法步骤S101至步骤S105,实现图8中的模块11至模块15的功能。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器,掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
本申请实施例提供了一种智能电能表,其包括了上述电子设备,使得包含了上述电子设备的智能电能表直接拥有了上述智能电能表IAP升级的功能,不需要再单独部署或增加上述电子设备以实现上述智能电能表IAP升级的功能。
本申请实施例提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图8中的一个处理器210,可使得上述一个或多个处理器可执行上述任意方法实施例中的智能电能表IAP升级方法,例如,执行以上描述的图2中的方法步骤S101至步骤S105,实现图8中的模块11至模块15的功能。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种智能电能表IAP升级方法,其特征在于,包括:
在只读存储器中开启预设空间大小的存储区域作为映射区,所述映射区的起始地址为所述只读存储器的起始地址;
设置所述映射区的第一条指令为跳转至引导加载程序,并在所述映射区实现所有必须的中断函数,中断函数实现内容为通过函数指针调用指定地址的函数,指定地址为引导加载程序或电能表应用程序的中断函数地址,函数指针指向的函数由拷贝到静态随机存储器的中断向量表获取;
设置所述映射区的第一条指令为跳转至引导加载程序,并在所述映射区生成至少一个中断函数,所述中断函数通过函数指针调用指定地址的中断服务函数,所述指定地址为所述引导加载程序或电能表应用程序的中断服务函数地址,所述中断服务函数从中断向量表中获取,所述中断向量表存储于静态随机存储区;
若所述引导加载程序中包含IAP升级任务,生成所述IAP升级任务对应类型的目标中断;
根据所述目标中断的中断类型调用对应的目标中断函数,所述目标中断函数访问静态随机存储器中的目标中断向量表,所述目标中断向量表中包含对应的目标中断服务函数地址;
跳转至所述目标中断服务函数地址,通过所述目标中断服务函数执行所述电能表升级指令对应的IAP升级程序。
2.根据权利要求1所述的智能电能表IAP升级方法,其特征在于,所述若所述引导加载程序中包含IAP升级任务,生成所述IAP升级任务对应类型的目标中断的步骤之前,还包括:
检测到所述映射区的第一条指令被执行,跳转至所述引导加载程序时,拷贝所述引导加载程序的中断向量表至所述静态随机存储器中的目标地址;
设置所述引导加载程序的最后一条指令为跳转至所述电能表应用程序。
3.根据权利要求2所述的智能电能表IAP升级方法,其特征在于,所述设置所述引导加载程序的最后一条指令为跳转至所述电能表应用程序的步骤之后,还包括:
检测所述引导加载程序中是否包含IAP升级任务;
若不包含,则跳转至所述电能表应用程序,设置所述电能表应用程序的第一条指令为拷贝所述电能表应用程序的中断向量表至所述静态随机存储器中的目标地址;
运行所述电能表应用程序。
4.根据权利要求3所述的智能电能表IAP升级方法,其特征在于,所述设置所述电能表应用程序的第一条指令为拷贝所述电能表应用程序的中断向量表至所述静态随机存储器中的目标地址的步骤之后,包括:
监测是否接收到电能表IAP升级指令;
若接收到所述电能表IAP升级指令,则停止执行所述电能表应用程序,跳转至所述引导加载程序。
5.根据权利要求3所述的智能电能表IAP升级方法,其特征在于,所述通过所述目标中断服务函数执行所述电能表升级指令对应的IAP升级程序的步骤之后,还包括:
跳转至执行所述设置所述电能表应用程序的第一条指令为拷贝所述电能表应用程序的中断向量表至所述静态随机存储器中的目标地址。
6.根据权利要求1所述的智能电能表IAP升级方法,其特征在于,所述通过所述目标中断服务函数执行所述电能表升级指令对应的IAP升级程序的步骤之后,还包括:
若所述目标中断服务函数执行异常停止,则重新跳转至执行所述映射区的第一条指令,直至所述目标中断服务函数执行异常停止的次数等于或大于预设升级异常次数阈值。
7.一种智能电能表IAP升级装置,其特征在于,包括:
映射区模块,用于在只读存储器中开启预设空间大小的存储区域作为映射区,所述映射区的起始地址为所述只读存储器的起始地址;
中断函数模块,用于设置所述映射区的第一条指令为跳转至引导加载程序,并在所述映射区生成至少一个中断函数,所述中断函数通过函数指针调用指定地址的中断服务函数,所述指定地址为所述引导加载程序或电能表应用程序的中断服务函数地址,所述中断服务函数从中断向量表中获取,所述中断向量表存储于静态随机存储区;
中断生成模块,用于若所述引导加载程序中包含IAP升级任务,生成所述IAP升级任务对应类型的目标中断;
中断向量表模块,用于根据所述目标中断的中断类型调用对应的目标中断函数,所述目标中断函数访问静态随机存储器中的目标中断向量表,所述目标中断向量表中包含对应的目标中断服务函数地址;
IAP升级程序模块,用于跳转至所述目标中断服务函数地址,通过所述目标中断服务函数执行所述电能表升级指令对应的IAP升级程序。
8.一种电子设备,其特征在于,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6任一项所述的智能电能表IAP升级方法。
9.一种智能电能表,其特征在于,所述智能电能表包含权利要求8所述的电子设备。
10.一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,当所述计算机可执行指令被电子设备执行时,使所述电子设备执行权利要求1-6任一项所述的智能电能表IAP升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310824204.6A CN116974600A (zh) | 2023-07-05 | 2023-07-05 | 智能电能表iap升级方法、装置及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310824204.6A CN116974600A (zh) | 2023-07-05 | 2023-07-05 | 智能电能表iap升级方法、装置及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116974600A true CN116974600A (zh) | 2023-10-31 |
Family
ID=88478858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310824204.6A Pending CN116974600A (zh) | 2023-07-05 | 2023-07-05 | 智能电能表iap升级方法、装置及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116974600A (zh) |
-
2023
- 2023-07-05 CN CN202310824204.6A patent/CN116974600A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20090222650A1 (en) | Communication device and firmware update method thereof | |
CN105745617A (zh) | 用于预启动固件更新的选择性功率管理 | |
GB2478733A (en) | Stack management with multiple levels of exception | |
US20220197693A1 (en) | Method for patching chip and chip | |
CN111857776A (zh) | Dsp板卡类的应用程序的在线升级方法 | |
CN103309792A (zh) | 一种日志信息的控制方法及系统 | |
US20090013124A1 (en) | Rom code patch method | |
CN114721719B (zh) | 一种在集群中容器化部署异构应用的方法和系统 | |
CN107567629A (zh) | 在可信执行环境容器中的动态固件模块加载器 | |
CN110716845A (zh) | 一种Android系统的日志信息读取的方法 | |
CN108196873B (zh) | 电力系统嵌入式软件远程动态升级方法和系统 | |
CN106997313B (zh) | 一种应用程序的信号处理方法、系统及终端设备 | |
JP4334598B1 (ja) | 情報処理装置およびエラー訂正方法 | |
US8909835B2 (en) | Computer system and method of controlling computer system | |
CN101697132A (zh) | 一种操作系统快速重启的方法、装置和网络设备 | |
EP3540598A1 (en) | Method, device and server for checking a defective function | |
US20140095859A1 (en) | Apparatus and method for managing register information in a processing system | |
CN111857785B (zh) | 一种mcu的启动方法、装置及终端设备 | |
WO2024138588A1 (zh) | 双系统安全手机重置方法、装置、终端及存储介质 | |
CN116974600A (zh) | 智能电能表iap升级方法、装置及相关设备 | |
CN111104138A (zh) | 一种固件升级方法、装置和计算机可读存储介质 | |
US20140025870A1 (en) | Computer reprogramming method, data storage medium and motor vehicle computer | |
CN115756558A (zh) | 一种可在线引导重启并校验的dsp软件在线升级方法 | |
CN111399926A (zh) | 下载启动程序的方法和装置 | |
EP3944174A1 (en) | Methods and processors for performing resource deduction for execution of smart contract |
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 |