CN113946360B - 功率转换控制器的引导程序的升级方法和装置 - Google Patents
功率转换控制器的引导程序的升级方法和装置 Download PDFInfo
- Publication number
- CN113946360B CN113946360B CN202111567605.5A CN202111567605A CN113946360B CN 113946360 B CN113946360 B CN 113946360B CN 202111567605 A CN202111567605 A CN 202111567605A CN 113946360 B CN113946360 B CN 113946360B
- Authority
- CN
- China
- Prior art keywords
- program
- bootstrap
- package
- upgraded
- boot
- 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.)
- Active
Links
Images
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
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种功率转换控制器的引导程序的升级方法和装置,所述方法包括以下步骤:获取并校验程序升级包,其中,程序升级包设置于存储器中,并且程序升级包包括文件头、应用程序包和中转程序包;判断应用程序区中存储的应用程序是否需要更新;若是,则运行引导程序区中存储的待升级引导程序,以将中转程序包加载至应用程序区;判断引导程序区中存储的待升级引导程序是否需要更新;若是,则利用中转程序包对引导程序区中的待升级引导程序进行升级更新。本发明能够降低产品成本,并且通过中转程序而不是应用程序来操作引导程序的升级过程,能够缩短操作闪存时间,以及避免应用程序操作带来的误操作隐患。
Description
技术领域
本发明涉及程序升级技术领域,具体涉及一种功率转换控制器的引导程序的升级方法和一种功率转换控制器的引导程序的升级装置。
背景技术
程序升级是嵌入式系统的一项基本功能。为了实现程序升级,一般会在嵌入式系统控制器的闪存中设计引导程序,引导程序的主要功能是为应用程序准备正确的运行环境,比如初始化时钟、硬件设备和启动操作系统内核等。
鉴于引导程序的重要性,一般地,在产品出厂后不会对其进行升级,因为一旦引导程序更新失败,则会导致整个产品无法运行,只能到现场或退回到指定的地点进行引导程序的重新烧录,增加运维成本,因此,对引导程序的升级应该要十分慎重,需要尽可能的缩短操作闪存时间以提高升级的可靠性,并且需要避免通过应用程序来升级引导程序,因为该方法存在误操作隐患。
发明内容
本发明为解决上述技术问题,提供了一种功率转换控制器的引导程序的升级方法,通过存储器而不是扩大控制器的内存来放置程序升级包,能够降低产品成本,并且通过中转程序而不是应用程序来操作引导程序的升级过程,能够缩短操作闪存时间,以及避免应用程序操作带来的误操作隐患。
本发明采用的技术方案如下:
一种功率转换控制器的引导程序的升级方法,所述引导程序设置于控制器内的引导程序区,并且所述控制器还设有应用程序区,此外对应所述控制器还设有状态指示灯、储能单元和存储器,所述升级方法包括以下步骤:获取并校验程序升级包,其中,所述程序升级包设置于所述存储器中,并且所述程序升级包包括文件头、应用程序包和中转程序包;判断所述应用程序区中存储的应用程序是否需要更新;若是,则运行所述引导程序区中存储的待升级引导程序,以将所述中转程序包加载至所述应用程序区;判断所述引导程序区中存储的待升级引导程序是否需要更新;若是,则利用所述中转程序包对所述引导程序区中的待升级引导程序进行升级更新。
根据本发明的一个实施例,所述文件头包括所述程序升级包的版本、大小和校验码。
根据本发明的一个实施例,所述中转程序包包括:中转程序代码,所述中转程序代码用于控制所述待升级引导程序升级过程;中转程序数据,所述中转程序数据为待加载到所述引导程序区的升级版本引导程序。
根据本发明的一个实施例,所述若是,则运行所述引导程序区中存储的待升级引导程序,以将所述中转程序包加载至所述应用程序区,具体包括以下步骤:若是,则运行所述引导程序区中存储的待升级引导程序并输出第一引导态信号,其中,所述第一引导态信号用于点亮引导指示灯;运行所述待升级引导程序访问所述中转程序包,并判断是否需要更新所述应用程序区的代码;若是,则将所述中转程序代码加载至所述应用程序区并输出中转态信号,其中,所述中转态信号用于点亮中转指示灯。
根据本发明的一个实施例,所述判断所述引导程序区中存储的待升级引导程序是否需要更新,具体包括以下步骤:提取所述中转程序数据中待加载到所述引导程序区的升级版本引导程序的版本信息;根据所述版本信息判断所述引导程序区中存储的待升级引导程序是否需要升级。
根据本发明的一个实施例,所述若是,则利用所述中转程序包对所述引导程序区中的待升级引导程序进行升级更新,具体包括以下步骤:若是,则判断所述控制器的运行电量是否满足升级电量阈值;若是,则对所述引导程序区进行分页并编号;根据分页结果得到待更新页列表;根据所述待更新页列表对所述引导程序区进行逐页更新;运行升级后的引导程序并输出第二引导态信号,其中,所述第二引导态信号用于点亮所述引导指示灯。
根据本发明的一个实施例,所述的功率转换控制器的引导程序的升级方法,还包括以下步骤:运行升级后的引导程序访问所述中转程序包;判断所述应用程序区中的中转程序代码是否完成更新;若是,则检查所述应用程序包;判断所述应用程序区的代码是否完整;若是,则运行所述应用程序区中存储的应用程序并输出应用态信号,其中,所述应用态信号用于点亮应用指示灯。
一种功率转换控制器的引导程序的升级装置,所述引导程序设置于控制器内的引导程序区,并且所述控制器还设有应用程序区,此外对应所述控制器还设有状态指示灯、储能单元和存储器,所述升级装置包括:获取模块,所述获取模块用于获取并校验程序升级包,其中,所述程序升级包设置于所述存储器中,并且所述程序升级包包括文件头、应用程序包和中转程序包;第一判断模块,所述第一判断模块用于判断所述应用程序区中存储的应用程序是否需要更新;第一运行模块,所述第一运行模块用于在判断所述应用程序区中存储的应用程序需要更新时,运行所述引导程序区中存储的待升级引导程序,以将所述中转程序包加载至所述应用程序区;第二判断模块,所述第二判断模块用于判断所述引导程序区中存储的待升级引导程序是否需要更新;第二运行模块,所述第二运行模块用于在判断所述引导程序区中存储的待升级引导程序需要更新时,利用所述中转程序包对所述引导程序区中的待升级引导程序进行升级更新。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述的功率转换控制器的引导程序的升级方法。
一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述的功率转换控制器的引导程序的升级方法。
本发明的有益效果:
本发明通过存储器而不是扩大控制器的内存来放置程序升级包,能够降低产品成本,并且通过中转程序而不是应用程序来操作引导程序的升级过程,能够缩短操作闪存时间,以及避免应用程序操作带来的误操作隐患。
附图说明
图1为本发明一个实施例的功率转换控制器的引导程序的升级方法的适用结构;
图2为本发明一个具体实施例的功率转换控制器的引导程序的升级方法的适用结构;
图3为本发明一个实施例的功率转换控制器的引导程序的升级方法的适用结构中控制器的闪存存储空间分布图;
图4为本发明实施例的功率转换控制器的引导程序的升级方法的流程图;
图5为本发明一个实施例的功率转换控制器的引导程序的升级方法的适用结构中存储器的存储空间分布图;
图6为本发明一个实施例的功率转换控制器的引导程序的升级方法的适用结构中控制器在加载中转程序时的闪存存储空间分布图;
图7为本发明一个实施例的功率转换控制器的引导程序的升级方法中步骤S2、S3的具体流程图;
图8为本发明一个实施例的功率转换控制器的引导程序的升级方法中步骤S4、S5的具体流程图;
图9为本发明一个实施例引导程序区分页示意图;
图10为本发明一个实施例的功率转换控制器的引导程序的升级方法中步骤S5后的后续流程图;
图11为本发明实施例功率转换控制器的引导程序的升级装置的方框示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的功率转换控制器的引导程序的升级方法和装置,可适用于图1所示的控制器11,如图1所示,对应该控制器11设有状态指示灯12、存储器13、模数转换电路14、储能单元15、开关电路16和辅助电源17。其中,状态指示灯12与控制器11相连,用于指示升级过程;存储器13与控制器11相连,用于存储程序升级包;模数转换电路14与开关电路16相连,用于采样控制器11的供电电压;储能单元15与开关电路16相连,用于存储备用电能;开关电路16分别与控制器11、模数转换电路14、储能单元15和辅助电源17相连。由此,当辅助电源17正常工作时,开关电路16接收来自控制器11的控制信号,使得开关电路16切换至导通状态,将辅助电源17与控制器11连通,储能单元15同时也存储电能用于备用;当辅助电源17无法提供电能供应时,开关电路16接收来自控制器11的控制信号,使得开关电路16切换至断开状态,将辅助电源17与控制器11断开,储能单元15也将与辅助电源17脱开,从而可隔离与辅助电源17相连的其它负载,储能单元15存储的备用电能将只用于控制器11,以确保升级过程的可靠供电。
具体地,如图2所示,储能单元15可由电容C1组成,开关电路16可由二极管D1组成,其中,二极管D1的阳极与辅助电源17相连,二极管D1的阴极与控制器11相连,电容C1的一端与辅助电源17相连,电容C1的另一端与二极管D1的阴极相连,由此,当辅助电源17正常工作时,二极管D1可导通,电容C1可用于存储电能,从而可在辅助电源17无法提供电能时,即二级管D1截止、电容C1与辅助电源17脱开时,将电容C1的存储电能为控制器11供电,以确保引导程序升级过程的可靠供电。进一步地,如图3所示,在控制器11的闪存存储空间中可设有引导程序区111、应用程序区112和未用区113。
下面将以图1、图2和图3所示的结构为例阐述本发明的功率转换控制器的引导程序的升级方法和装置。
如图4所示,本发明的功率转换控制器的引导程序的升级方法,包括以下步骤:
S1,获取并校验程序升级包,其中,程序升级包设置于存储器中,并且程序升级包包括文件头、应用程序包和中转程序包。
具体地,控制器11可通过设置的通信外设与外部交互,例如连接外部服务器以接收外部服务器发送的程序升级包,进一步还可通过设置的通信外设与存储器13交互,以及将获得的程序升级包设置于存储器13。其中,通信外设可为UART、SPI或I2C中的任意一种。
更具体地,文件头中还可包括该程序升级包的版本、大小和校验码,由此,可通过校验码对获取的程序升级包进行校验,并可将校验通过的程序升级包通过通信外设设置于存储器13中。具体如图5所示,校验通过的程序升级包中的文件头、中转程序包、应用程序包可分别设置于存储器13中的文件头区131、中转程序包区132、应用程序包区133。此外,进一步结合图5可知,存储器13中还设有存储器未用区134,以及第一寻址入口135和第二寻址入口136,其中,第一寻址入口135可用于访问中转程序包区132,第二寻址入口136可用于访问应用程序包区133。
更具体地,中转程序包还可包括中转程序代码和中转程序数据,其中,中转程序代码用于控制待升级引导程序升级过程,中转程序数据包括待加载到引导程序区的升级版本引导程序。此外,如图6所示,在控制器11中,应用程序区112还可包括中转程序代码区1121、中转程序数据区1122和中转程序未用区1123,其中,中转程序代码区1121可用于设置中转程序代码,中转程序数据区1122可用于设置中转程序数据。
S2,判断应用程序区中存储的应用程序是否需要更新。
S3,若是,则运行引导程序区中存储的待升级引导程序,以将中转程序包加载至应用程序区。
具体地,如图7所示,上述步骤S2、S3可包括以下步骤:
S2,判断应用程序区中存储的应用程序是否需要更新,若否,则执行步骤S31,若是,则执行步骤S32;
S31,运行应用程序区的应用主程序;
S32,运行引导程序区中存储的待升级引导程序并输出第一引导态信号;
S33,通过第一引导态信号点亮引导指示灯;
S34,运行待升级引导程序访问中转程序包;
S35,判断是否需要更新应用程序区的代码,若否,则执行步骤S36,若是,则执行步骤S37;
S36,不需要对引导程序区中存储的待升级引导程序进行升级;
S37,将中转程序代码加载至应用程序区并输出中转态信号;
S38,通过中转态信号点亮中转指示灯。
更具体地,结合图5和图6可知,待升级引导程序可通过第一寻址入口135访问中转程序包区132以读取中转程序包,并判断设置于应用程序区112,即中转程序代码区1121的代码,即中转程序代码是否需要更新,若是,则将中转程序包加载至应用程序区112,即可将中转程序代码加载至中转程序代码区1121、并可将中转程序数据加载至中转程序数据区1122。
S4,判断引导程序区中存储的待升级引导程序是否需要更新。
S5,若是,则利用中转程序包对引导程序区中的待升级引导程序进行升级更新。
具体地,如图8所示,上述步骤S4、S5可包括以下步骤:
S4,判断引导程序区中存储的待升级引导程序是否需要更新,若否,则执行步骤S51,若是,则执行步骤S52;
S51,不需要对引导程序区中存储的待升级引导程序进行升级;
S52,判断控制器的运行电量是否满足升级电量阈值,若否,则执行步骤S51,若是,则执行步骤S53;
S53,进入低功耗模式;
S54,对引导程序区进行分页并编号;
S55,根据分页结果得到待更新页列表;
S56,根据待更新页列表对引导程序区进行逐页更新;
S57,运行升级后的引导程序并输出第二引导态信号;
S58,通过第二引导态信号点亮引导指示灯。
更具体地,上述步骤S4可包括:通过提取中转程序数据中待加载到引导程序区的升级版本引导程序的版本信息,并可根据版本信息判断引导程序区中存储的待升级引导程序是否需要升级。
更具体地,结合图1可知,上述步骤S5可包括:通过模数转换电路14测量控制器11得到的供电电压,来判断辅助电源17提供的运行电量是否能够满足引导程序升级过程的最低电量要求,例如,在测量得到电容C1的电容值的条件下,当控制器11得到的供电电压高于设定的升级电量阈值时,可判定控制器11的运行电量满足升级电量阈值,并且还可控制控制器11进入低功耗模式,例如可禁用模数转换电路14,以进一步减小用电量。
进一步地,如图9所示,引导程序区111进行分页并编号,例如可将引导程序区111划分为N页,并可采用第1页至第N页进行编号,然后可计算最小操作页数,即可通过分别比较不同页的差异得到最小操作页列表,即更新页列表,进而可根据最小操作页列表,即更新页列表对引导程序区111进行逐页操作,以将待升级引导程序更新为升级版本引导程序,最后可运行升级版本引导程序并输出第二引导态信号,其中,第二引导态信号用于点亮引导指示灯。更具体地,以每页为2KB大小,总页数N为12为例,假定第1页至第9页不需要更新,第10页至第12页需要更新,则最小操作页列表,即更新页列表中只有第10页、第11页、第12页,从而可缩短大约75%的操作闪存的时间。实际操作时,为了减少最小操作页列表的大小,可以在编译环节采用特殊处理方式,使得代码变动尽量集中,以减少最小操作页列表,即更新页列表的数量,从而能够有效地缩短操作闪存的时间。其中,需要说明的是,特殊处理方式,即在编译环节为存储内容分配固定地址,例如可将代码分为数据区和程序区,当只有设置发生变化时,特殊处理方式作用下,只有数据区的内容会发生改变,而程序区的内容将保持不变;又比如,由于功能需要而增加了新代码,特殊处理方式作用下,其将被存储在新的区域,而原有的存储内容由于被分配了固定的存储地址,因此其内容不会发生变化。
进一步地,如图10所示,本发明的功率转换控制器的引导程序的升级方法,还包括以下步骤:
S6,运行升级后的引导程序访问中转程序包;
S7,判断应用程序区中的中转程序代码是否完成更新,若否,则执行步骤S70,若是,则执行步骤S8;
S70,加载应用程序包至应用程序区;
S8,检查应用程序包;
S9,判断应用程序区的代码是否完整,若否,则执行步骤S90,若是,则执行步骤S10;
S90,升级后的引导程序主循环;
S10,运行应用程序区中存储的应用程序并输出应用态信号;
S100,通过应用态信号点亮应用指示灯。
更具体地,结合图5可知,升级后的引导程序可通过第一寻址入口135访问中转程序包区132以读取中转程序包,此外,更新后的中转程序可通过第二寻址入口136访问应用程序包区133以读取应用程序包。
其中,需要说明的是,本发明通过输出第一引导态信号、第二引导态信号、中转态信号和应用态信号以对应点亮引导指示灯、中转指示灯和应用指示灯,从而能够通过观察相应指示灯的变化以获知功率转换控制器的引导程序的升级过程,便于操作记录,提高了产品的交互性。此外,在本发明的其他实施例中,还可通过控制输出第一引导态信号、第二引导态信号、中转态信号和应用态信号的频率,以控制同一个指示灯处于不同运行状态来展示功率转换控制器的引导程序的升级过程,例如表1所示,可通过第一引导态信号、第二引导态信号控制指示灯快速闪烁,并可通过中转态信号控制指示灯慢速闪烁,以及可通过应用态信号控制指示灯正常点亮。
表1
根据本发明实施例提出的功率转换控制器的引导程序的升级方法,通过获取并校验程序升级包,并将程序升级包设置于存储器中,进一步可判断应用程序区中存储的应用程序是否需要更新,若是,则运行引导程序区中存储的待升级引导程序,以将中转程序包加载至应用程序区,以及判断引导程序区中存储的待升级引导程序是否需要更新,若是,则利用中转程序包对引导程序区中的待升级引导程序进行升级更新,由此,通过存储器而不是扩大控制器的内存来放置程序升级包,能够降低产品成本,并且通过中转程序而不是应用程序来操作功率转换控制器的引导程序的升级过程,能够缩短操作闪存时间,以及避免应用程序操作带来的误操作隐患。
对应上述实施例的功率转换控制器的引导程序的升级方法,本发明还提出一种功率转换控制器的引导程序的升级装置。
如图11所示,本发明实施例的功率转换控制器的引导程序的升级装置,包括获取模块10、第一判断模块20、第一运行模块30、第二判断模块40、第二运行模块50。其中,获取模块10用于获取并校验程序升级包,其中,程序升级包设置于存储器中,并且程序升级包包括文件头、应用程序包和中转程序包;第一判断模块20用于判断应用程序区中存储的应用程序是否需要更新;第一运行模块30用于在判断应用程序区中存储的应用程序需要更新时,运行引导程序区中存储的待升级引导程序,以将中转程序包加载至应用程序区;第二判断模块40用于判断引导程序区中存储的待升级引导程序是否需要更新;第二运行模块50用于在判断引导程序区中存储的待升级引导程序需要更新时,利用中转程序包对引导程序区中的待升级引导程序进行升级更新。
在本发明的一个实施例中,如图1所示,获取模块10可通过通信外设与外部交互,例如连接外部服务器以接收外部服务器发送的程序升级包,进一步还可通过设置的通信外设与存储器13交互,以及将获得的程序升级包设置于存储器13。其中,通信外设可为UART、SPI或I2C中的任意一种。
更具体地,文件头中还可包括该程序升级包的版本、大小和校验码,由此,可通过校验码对获取的程序升级包进行校验,并可将校验通过的程序升级包通过通信外设设置于存储器13中。具体如图5所示,校验通过的程序升级包中的文件头、中转程序包、应用程序包可分别设置于存储器13中的文件头区131、中转程序包区132、应用程序包区133。此外,进一步结合图4可知,存储器13中还设有存储器未用区134,以及第一寻址入口135和第二寻址入口136,其中,第一寻址入口135可用于访问中转程序包区132,第二寻址入口136可用于访问应用程序包区133。
更具体地,中转程序包还可包括中转程序代码和中转程序数据,其中,中转程序代码用于控制待升级引导程序升级过程,中转程序数据包括待加载到引导程序区的升级版本引导程序。此外,如图6所示,在控制器11中,应用程序区112还可包括中转程序代码区1121、中转程序数据区1122和中转程序未用区1123,其中,中转程序代码区1121可用于设置中转程序代码,中转程序数据区1122可用于设置中转程序数据。
在本发明的一个实施例中,如图7所示,第一判断模块20和第一运行模块30可具体用于:
S2,判断应用程序区中存储的应用程序是否需要更新,若否,则执行步骤S31,若是,则执行步骤S32;
S31,运行应用程序区的应用主程序;
S32,运行引导程序区中存储的待升级引导程序并输出第一引导态信号;
S33,通过第一引导态信号点亮引导指示灯;
S34,运行待升级引导程序访问中转程序包;
S35,判断是否需要更新应用程序区的代码,若否,则执行步骤S36,若是,则执行步骤S37;
S36,不需要对引导程序区中存储的待升级引导程序进行升级;
S37,将中转程序代码加载至应用程序区并输出中转态信号;
S38,通过中转态信号点亮中转指示灯。
更具体地,结合图5和图6可知,待升级引导程序可通过第一寻址入口135访问中转程序包区132以读取中转程序包,并判断设置于应用程序区112,即中转程序代码区1121的代码,即中转程序代码是否需要更新,若是,则将中转程序包加载至应用程序区112,即可将中转程序代码加载至中转程序代码区1121、并可将中转程序数据加载至中转程序数据区1122。
在本发明的一个实施例中,如图8所示,第二判断模块40和第二运行模块50可具体用于:
S4,判断引导程序区中存储的待升级引导程序是否需要更新,若否,则执行步骤S51,若是,则执行步骤S52;
S51,不需要对引导程序区中存储的待升级引导程序进行升级;
S52,判断控制器的运行电量是否满足升级电量阈值,若否,则执行步骤S51,若是,则执行步骤S53;
S53,进入低功耗模式;
S54,对引导程序区进行分页并编号;
S55,根据分页结果得到待更新页列表;
S56,根据待更新页列表对引导程序区进行逐页更新;
S57,运行升级后的引导程序并输出第二引导态信号;
S58,通过第二引导态信号点亮引导指示灯。
更具体地,第二判断模块40可通过提取中转程序数据中待加载到引导程序区的升级版本引导程序的版本信息,并可根据版本信息判断引导程序区中存储的待升级引导程序是否需要升级。
更具体地,结合图1可知,第二运行模块50可通过模数转换电路14测量控制器11得到的供电电压,来判断辅助电源17提供的运行电量是否能够满足引导程序升级过程的最低电量要求,例如,在测量得到电容C1的电容值的条件下,当控制器11得到的供电电压高于设定的升级电量阈值时,可判定控制器11的运行电量满足升级电量阈值,并且还可控制控制器11进入低功耗模式,例如可禁用模数转换电路14,以进一步避免耗电。
进一步地,如图9所示,引导程序区111进行分页并编号,例如可将引导程序区111划分为N页,并可采用第1页至第N页进行编号,然后可计算最小操作页数,即可通过分别比较不同页的差异得到最小操作页列表,即更新页列表,进而可根据最小操作页列表,即更新页列表对引导程序区111进行逐页操作,以将待升级引导程序更新为升级版本引导程序,最后可运行升级版本引导程序并输出第二引导态信号,其中,第二引导态信号用于点亮引导指示灯。更具体地,以每页为2KB大小,总页数N为12为例,假定第1页至第9页不需要更新,第10页至第12页需要更新,则最小操作页列表,即更新页列表中只有第10页、第11页、第12页,从而可缩短大约75%的操作闪存的时间。实际操作时,为了减少最小操作页列表的大小,可以在编译环节采用特殊处理方式,使得代码变动尽量集中,以减少最小操作页列表,即更新页列表的数量,从而能够有效地缩短操作闪存的时间。其中,需要说明的是,特殊处理方式,即在编译环节为存储内容分配固定地址,例如可将代码分为数据区和程序区,当只有设置发生变化时,特殊处理方式作用下,只有数据区的内容会发生改变,而程序区的内容将保持不变;又比如,由于功能需要而增加了新代码,特殊处理方式作用下,其将被存储在新的区域,而原有的存储内容由于被分配了固定的存储地址,因此其内容不会发生变化
进一步地,如图10所示,本发明的功率转换控制器的引导程序的升级装置,还可具体用于:
S6,运行升级后的引导程序访问中转程序包;
S7,判断应用程序区中的中转程序代码是否完成更新,若否,则执行步骤S70,若是,则执行步骤S8;
S70,加载应用程序包至应用程序区;
S8,检查应用程序包;
S9,判断应用程序区的代码是否完整,若否,则执行步骤S90,若是,则执行步骤S10;
S90,升级后的引导程序主循环;
S10,运行应用程序区中存储的应用程序并输出应用态信号;
S100,通过应用态信号点亮应用指示灯。
更具体地,结合图5可知,升级后的引导程序可通过第一寻址入口135访问中转程序包区132以读取中转程序包,此外,更新后的中转程序可通过第二寻址入口136访问应用程序包区133以读取应用程序包。
其中,需要说明的是,本发明通过输出第一引导态信号、第二引导态信号、中转态信号和应用态信号以对应点亮引导指示灯、中转指示灯和应用指示灯,从而能够通过观察相应指示灯的变化以获知功率转换控制器的引导程序的升级过程,便于操作记录,提高了产品的交互性。此外,在本发明的其他实施例中,还可通过控制输出第一引导态信号、第二引导态信号、中转态信号和应用态信号的频率,以控制同一个指示灯处于不同运行状态来展示功率转换控制器的引导程序的升级过程,例如表1所示,可通过第一引导态信号、第二引导态信号控制指示灯快速闪烁,并可通过中转态信号控制指示灯慢速闪烁,以及可通过应用态信号控制指示灯正常点亮。
表1
根据本发明实施例提出的功率转换控制器的引导程序的升级装置,通过获取模块获取并校验程序升级包,并将程序升级包设置于存储器中,进一步可通过第一判断模块判断应用程序区中存储的应用程序是否需要更新,若是,则可通过第一运行模块运行引导程序区中存储的待升级引导程序,以将中转程序包加载至应用程序区,以及可通过第二判断模块判断引导程序区中存储的待升级引导程序是否需要更新,若是,则可通过第二运行模块利用中转程序包对引导程序区中的待升级引导程序进行升级更新,由此,通过存储器而不是扩大控制器的内存来放置程序升级包,能够降低产品成本,并且通过中转程序而不是应用程序来操作引导程序的升级过程,能够缩短操作闪存时间,以及避免应用程序操作带来的误操作隐患。
对应上述实施例,本发明还提出一种计算机设备。
本发明实施例的计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,实现上述实施例的功率转换控制器的引导程序的升级方法。
根据本发明实施例的计算机设备,通过存储器而不是扩大控制器的内存来放置程序升级包,能够降低产品成本,并且通过中转程序而不是应用程序来操作引导程序的升级过程,能够缩短操作闪存时间,以及避免应用程序操作带来的误操作隐患。
对应上述实施例,本发明还提出一种非临时性计算机可读存储介质。
本发明实施例的非临时性计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述实施例的功率转换控制器的引导程序的升级方法。
根据本发明实施例的非临时性计算机可读存储介质,通过存储器而不是扩大控制器的内存来放置程序升级包,能够降低产品成本,并且通过中转程序而不是应用程序来操作引导程序的升级过程,能够缩短操作闪存时间,以及避免应用程序操作带来的误操作隐患。
在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (8)
1.一种功率转换控制器的引导程序的升级方法,所述引导程序设置于控制器内的引导程序区,并且所述控制器还设有应用程序区,此外对应所述控制器还设有状态指示灯、储能单元和存储器,其特征在于,所述升级方法包括以下步骤:
获取并校验程序升级包,其中,所述程序升级包设置于所述存储器中,并且所述程序升级包包括文件头、应用程序包和中转程序包,其中,所述文件头包括所述程序升级包的版本、大小和校验码;
判断所述应用程序区中存储的应用程序是否需要更新;
若是,则运行所述引导程序区中存储的待升级引导程序,以将所述中转程序包加载至所述应用程序区;
判断所述引导程序区中存储的待升级引导程序是否需要更新;
若是,则利用所述中转程序包对所述引导程序区中的待升级引导程序进行升级更新,其中,所述中转程序包包括:
中转程序代码,所述中转程序代码用于控制所述待升级引导程序升级过程;
中转程序数据,所述中转程序数据包括待加载到所述引导程序区的升级版本引导程序。
2.根据权利要求1所述的功率转换控制器的引导程序的升级方法,其特征在于,所述若是,则运行所述引导程序区中存储的待升级引导程序,以将所述中转程序包加载至所述应用程序区,具体包括以下步骤:
若是,则运行所述引导程序区中存储的待升级引导程序并输出第一引导态信号,其中,所述第一引导态信号用于点亮引导指示灯;
运行所述待升级引导程序访问所述中转程序包,并判断是否需要更新所述应用程序区的代码;
若是,则将所述中转程序代码加载至所述应用程序区并输出中转态信号,其中,所述中转态信号用于点亮中转指示灯。
3.根据权利要求2所述的功率转换控制器的引导程序的升级方法,其特征在于,所述判断所述引导程序区中存储的待升级引导程序是否需要更新,具体包括以下步骤:
提取所述中转程序数据中待加载到所述引导程序区的升级版本引导程序的版本信息;
根据所述版本信息判断所述引导程序区中存储的待升级引导程序是否需要升级。
4.根据权利要求3所述的功率转换控制器的引导程序的升级方法,其特征在于,所述若是,则利用所述中转程序包对所述引导程序区中的待升级引导程序进行升级更新,具体包括以下步骤:
若是,则判断所述控制器的运行电量是否满足升级电量阈值;
若是,则对所述引导程序区进行分页并编号;
根据分页结果得到待更新页列表;
根据所述待更新页列表对所述引导程序区进行逐页更新;
运行升级后的引导程序并输出第二引导态信号,其中,所述第二引导态信号用于点亮所述引导指示灯。
5.根据权利要求4所述的功率转换控制器的引导程序的升级方法,其特征在于,还包括以下步骤:
运行升级后的引导程序访问所述中转程序包;
判断所述应用程序区中的中转程序代码是否完成更新;
若是,则检查所述应用程序包;
判断所述应用程序区的代码是否完整;
若是,则运行所述应用程序区中存储的应用程序并输出应用态信号,其中,所述应用态信号用于点亮应用指示灯。
6.一种功率转换控制器的引导程序的升级装置,所述引导程序设置于控制器内的引导程序区,并且所述控制器还设有应用程序区,此外对应所述控制器还设有状态指示灯、储能单元和存储器,其特征在于,所述升级装置包括:
获取模块,所述获取模块用于获取并校验程序升级包,其中,所述程序升级包设置于所述存储器中,并且所述程序升级包包括文件头、应用程序包和中转程序包,其中,所述文件头包括所述程序升级包的版本、大小和校验码;
第一判断模块,所述第一判断模块用于判断所述应用程序区中存储的应用程序是否需要更新;
第一运行模块,所述第一运行模块用于在判断所述应用程序区中存储的应用程序需要更新时,运行所述引导程序区中存储的待升级引导程序,以将所述中转程序包加载至所述应用程序区;
第二判断模块,所述第二判断模块用于判断所述引导程序区中存储的待升级引导程序是否需要更新;
第二运行模块,所述第二运行模块用于在判断所述引导程序区中存储的待升级引导程序需要更新时,利用所述中转程序包对所述引导程序区中的待升级引导程序进行升级更新,其中,所述中转程序包包括:
中转程序代码,所述中转程序代码用于控制所述待升级引导程序升级过程;
中转程序数据,所述中转程序数据包括待加载到所述引导程序区的升级版本引导程序。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现根据权利要求1-5中任一项所述的功率转换控制器的引导程序的升级方法。
8.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现根据权利要求1-5中任一项所述的功率转换控制器的引导程序的升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111567605.5A CN113946360B (zh) | 2021-12-21 | 2021-12-21 | 功率转换控制器的引导程序的升级方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111567605.5A CN113946360B (zh) | 2021-12-21 | 2021-12-21 | 功率转换控制器的引导程序的升级方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113946360A CN113946360A (zh) | 2022-01-18 |
CN113946360B true CN113946360B (zh) | 2022-04-19 |
Family
ID=79339477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111567605.5A Active CN113946360B (zh) | 2021-12-21 | 2021-12-21 | 功率转换控制器的引导程序的升级方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113946360B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114567628B (zh) * | 2022-02-28 | 2024-03-08 | 中汽创智科技有限公司 | 一种ota升级方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855151B (zh) * | 2012-08-21 | 2016-06-08 | 武汉电信器件有限公司 | 不打断业务的光模块固件在应用升级方法 |
CN109416629A (zh) * | 2017-11-01 | 2019-03-01 | 深圳市大疆创新科技有限公司 | 固件升级方法、电子设备、相机系统和无人飞行器 |
CN112416411B (zh) * | 2019-08-23 | 2023-08-18 | 百度在线网络技术(北京)有限公司 | 升级方法及装置、设备端、服务器、计算机可读介质 |
CN111240720A (zh) * | 2020-03-27 | 2020-06-05 | 武汉光谷信息光电子创新中心有限公司 | 引导程序升级方法、装置及存储介质 |
-
2021
- 2021-12-21 CN CN202111567605.5A patent/CN113946360B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113946360A (zh) | 2022-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10860425B2 (en) | Method for recovering basic input/output system image file of a computer system and the computer system | |
US8930931B2 (en) | Information processing apparatus using updated firmware and system setting method | |
CN107480011B (zh) | Bios切换装置 | |
CN112379932B (zh) | 电子设备的Boot方法、Boot装置和电子设备 | |
CN113946360B (zh) | 功率转换控制器的引导程序的升级方法和装置 | |
CN102203742B (zh) | 组件安装引导 | |
CN111679601B (zh) | 多板卡设备的控制方法、多板卡设备及介质 | |
US20170211839A1 (en) | Back-up power source apparatus in indoor unit, controlling method thereof and multi-split air conditioning system | |
CN106325857A (zh) | 一种电子设备及电子设备控制方法 | |
US20110047399A1 (en) | Method and system for managing electrical power supply outages on board an aircraft | |
CN112148338B (zh) | 电源管理电路、芯片及其升级方法及服务器 | |
US10452115B2 (en) | Removable power loss protection module | |
CN112114836A (zh) | 文件更新方法、装置及系统、存储介质和显示箱体 | |
CN111143131B (zh) | 对操作系统进行备份热启动的系统 | |
CN112394965B (zh) | 电池管理系统升级和运行方法,控制器,电池管理系统及存储介质 | |
CN115687021A (zh) | 一种服务器内存部署方法及服务器 | |
CN115129345A (zh) | 一种固件升级方法、装置、设备及存储介质 | |
CN114341769B (zh) | 基于功率管理集成电路的系统管理总线隔离 | |
CN114968299A (zh) | 基于Multiboot设备固件升级及异常处理方法 | |
KR20080092483A (ko) | 센서 노드 소프트웨어 다운로드 방법 및 센서 네트워크시스템 | |
CN113407217B (zh) | 芯片程序升级方法、通信设备及计算机可读存储介质 | |
JPH06250866A (ja) | メモリ制御装置 | |
US12026519B2 (en) | Control method and device for powering timing | |
CN113703816B (zh) | 服务器装置及其避免韧体无法再次更新之方法 | |
CN117311768B (zh) | 一种动态可重配fpga固件的系统和方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |