CN116302005B - 芯片、芯片升级方法、装置、电子设备及可读存储介质 - Google Patents
芯片、芯片升级方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN116302005B CN116302005B CN202310529082.8A CN202310529082A CN116302005B CN 116302005 B CN116302005 B CN 116302005B CN 202310529082 A CN202310529082 A CN 202310529082A CN 116302005 B CN116302005 B CN 116302005B
- Authority
- CN
- China
- Prior art keywords
- memory
- target
- chip
- address
- logical address
- 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
- 238000000034 method Methods 0.000 title claims abstract description 85
- 230000015654 memory Effects 0.000 claims abstract description 618
- 238000006243 chemical reaction Methods 0.000 claims description 52
- 230000008569 process Effects 0.000 claims description 31
- 238000013519 translation Methods 0.000 claims description 19
- 238000005516 engineering process Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000008439 repair process Effects 0.000 description 7
- 239000013598 vector Substances 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 230000009191 jumping Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication 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
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000002344 surface layer Substances 0.000 description 1
- 230000000007 visual effect Effects 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本说明书涉及一种芯片、芯片升级方法、装置、电子设备及可读存储介质。其中,芯片配置有第一存储器、第二存储器;芯片升级方法包括:在第一存储器和第二存储器中确定需要升级的目标存储器;其中,目标存储器为未被执行的程序文件所处的存储器;在针对芯片配置的第一逻辑地址和第二逻辑地址中确定需要对应到目标存储器的物理地址的目标逻辑地址;通过目标逻辑地址将芯片中存储的升级文件写入到目标存储器,以对目标存储器中未被执行的程序文件进行升级。本说明书实施例能够将芯片中存储器的物理地址转换为逻辑地址,通过逻辑地址对芯片进行升级,使得芯片升级的逻辑更加简单,降低出错概率。
Description
技术领域
本说明书涉及芯片技术领域,尤其是涉及一种芯片、芯片升级方法、装置、电子设备及可读存储介质。
背景技术
在智能汽车行业中,汽车芯片升级是至关重要的一个环节。为实现汽车的智能化,汽车大都配备有OTA(空中下载技术)功能。
值得注意的是,汽车需要具备一定的安全性。如果汽车利用OTA技术进行芯片升级的过程中出现问题,就很有可能导致发生严重的安全事故。
然而,相关技术中,基于OTA技术进行汽车芯片升级时,上位机需要和汽车的芯片进行通信,且由于芯片中两个存储器的地址不同,升级的判断逻辑复杂,出错的概率较大。
发明内容
本说明书旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本说明书的一个目的在于提出一种芯片升级方法,能够将芯片中存储器的物理地址转换为逻辑地址,通过逻辑地址对芯片进行升级,使得芯片升级的逻辑更加简单,降低出错概率。
本说明书第二个目的在于提出一种芯片。
本说明书第三个目的在于提出一种芯片升级装置。
本说明书第四个目的在于提出一种电子设备。
本说明书第五个目的在于提出一种计算机可读存储介质。
为达上述目的,本说明书第一方面实施例提出了一种芯片升级方法。所述芯片配置有第一存储器、第二存储器。所述方法包括:在所述第一存储器和所述第二存储器中确定需要升级的目标存储器;其中,所述目标存储器为未被执行的程序文件所处的存储器;在针对所述芯片配置的第一逻辑地址和第二逻辑地址中确定需要对应到所述目标存储器的物理地址的目标逻辑地址;通过所述目标逻辑地址将所述芯片中存储的升级文件写入到所述目标存储器,以对所述目标存储器中未被执行的程序文件进行升级。
根据本说明书实施例的芯片升级方法,将芯片中两个存储器的物理地址转换为逻辑地址,通过逻辑地址对存储器进行访问,以对存储器中的程序文件进行升级。在这种方式下,上位机只需针对固定的逻辑地址生成升级文件即可,且无需在升级过程与芯片通信来判断存储器是否正在运行。本说明书实施例的芯片升级方法,升级逻辑简单,减少了由于存储器地址问题造成的升级失败的情况的发生,降低了出错概率,从而能够保证汽车的安全性。
在本说明书的一些实施例中,所述第一存储器和所述第二存储器均对应有配置信息;所述配置信息至少包括版本信息和执行位信息;所述在所述第一存储器和所述第二存储器中确定需要升级的目标存储器,包括:根据所述执行位信息和/或所述版本信息,在所述第一存储器和所述第二存储器中确定所述目标存储器。
在本说明书的一些实施例中,所述根据所述执行位信息和/或所述版本信息,在所述第一存储器和所述第二存储器中确定所述目标存储器,包括:在所述第一存储器和所述第二存储器中,确定所述执行位信息表示未被执行和/或所述版本信息表示较低版本的存储器,并作为所述目标存储器。
在本说明书的一些实施例中,所述在针对所述芯片配置的第一逻辑地址和第二逻辑地址中确定需要对应到所述目标存储器的物理地址的目标逻辑地址,包括:将所述第一逻辑地址和所述第二逻辑地址均作为目标逻辑地址,对应到所述目标存储器的物理地址;或者确定所述第一逻辑地址和所述第二逻辑地址中的任一个作为对应到所述目标存储器的物理地址的所述目标逻辑地址。
在本说明书的一些实施例中,在对所述目标存储器中的程序文件进行升级之后,所述方法还包括:更新所述第一存储器的执行位信息、所述第二存储器的执行位信息,以及所述目标存储器的版本信息;将所述目标存储器中的升级文件拷贝至除所述目标存储器外的另一个存储器中。
在本说明书的一些实施例中,若所述目标存储器为所述第一存储器;所述更新所述第一存储器的执行位信息、所述第二存储器的执行位信息,以及所述目标存储器的版本信息,包括:将所述第一存储器的执行位信息更新为执行状态,并将所述第二存储器的执行位信息更新为不执行状态;根据所述升级文件所对应的版本更新所述第一存储器的版本信息。
在本说明书的一些实施例中,所述方法还包括:在所述芯片根据所述执行位信息执行所述第一存储器中的升级文件过程中,若所述第一存储器中的升级文件出现损毁,则控制所述芯片执行所述第二存储器中的升级文件。
在本说明书的一些实施例中,所述方法还包括:获取所述第二存储器中的升级文件的代码完整性校验结果;在所述代码完整性校验结果表明所述第二存储器中的升级文件出现损毁的情况下,将所述第一存储器中的升级文件拷贝至所述第二存储器中,或,向网关报错以请求新一轮的芯片升级。
为达上述目的,本说明书第二方面实施例提出了一种芯片。所述芯片配置有第一存储器、第二存储器、地址转换模块;所述地址转换模块分别与所述第一存储器和所述第二存储器连接;所述地址转换模块用于在所述第一存储器和所述第二存储器中确定需要升级的目标存储器;在针对所述芯片配置的第一逻辑地址和第二逻辑地址中确定需要对应到所述目标存储器的物理地址的目标逻辑地址;其中,所述目标存储器为未被执行的程序文件所处的存储器;所述目标逻辑地址用于将所述芯片中存储的升级文件写入到所述目标存储器,以对所述目标存储器中的程序文件进行升级。
根据本说明书实施例的芯片,将芯片中两个存储器的物理地址转换为逻辑地址,通过逻辑地址对存储器进行访问,以对存储器中的程序文件进行升级。在这种方式下,上位机只需针对固定的逻辑地址生成升级文件即可,且无需在升级过程与芯片通信来判断存储器是否正在运行。本说明书实施例的芯片升级方法,升级逻辑简单,减少了由于存储器地址问题造成的升级失败的情况的发生,降低了出错概率,从而能够保证汽车的安全性。
在本说明书的一些实施例中,所述第一存储器和所述第二存储器均对应有配置信息;所述配置信息至少包括版本信息和执行位信息;所述地址转换模块用于:根据所述执行位信息和/或所述版本信息,在所述第一存储器和所述第二存储器中确定所述目标存储器。
在本说明书的一些实施例中,所述地址转换模块用于:在所述第一存储器和所述第二存储器中,确定所述执行位信息表示未被执行和/或所述版本信息表示较低版本的存储器,并作为需要升级的所述目标存储器。
在本说明书的一些实施例中,所述地址转换模块用于:将所述第一逻辑地址和所述第二逻辑地址均作为目标逻辑地址,对应到所述目标存储器的物理地址;或者确定所述第一逻辑地址和所述第二逻辑地址中的任一个作为对应到所述目标存储器的物理地址的所述目标逻辑地址。
为达上述目的,本说明书第三方面实施例提出了一种芯片升级装置。所述芯片配置有第一存储器、第二存储器;所述装置包括:存储器确定模块,用于在所述第一存储器和所述第二存储器中确定需要升级的目标存储器;其中,所述目标存储器为未被执行的程序文件所处的存储器;逻辑地址转换模块,用于在针对所述芯片配置的第一逻辑地址和第二逻辑地址中确定需要对应到所述目标存储器的物理地址的目标逻辑地址;升级模块,用于通过所述目标逻辑地址将所述芯片中存储的升级文件写入到所述目标存储器,以对所述目标存储器中未被执行的程序文件进行升级。
根据本说明书实施例的芯片升级装置,将芯片中两个存储器的物理地址转换为逻辑地址,通过逻辑地址对存储器进行访问,以对存储器中的程序文件进行升级。在这种方式下,上位机只需针对固定的逻辑地址生成升级文件即可,且无需在升级过程与芯片通信来判断存储器是否正在运行。本说明书实施例的芯片升级方法,升级逻辑简单,减少了由于存储器地址问题造成的升级失败的情况的发生,降低了出错概率,从而能够保证汽车的安全性。
为达上述目的,本说明书第四方面实施例提出了一种电子设备。包括存储器、处理器及存储在存储器上并可在处理器上运行的芯片升级程序,所述处理器执行所述程序时,实现如第一方面任意一项实施例所述的芯片升级方法。
根据本说明书实施例的芯片升级装置,在所述处理器执行所述程序时,升级逻辑简单,减少了由于存储器地址问题造成的升级失败的情况的发生,降低了出错概率,从而能够保证汽车的安全性。
为达上述目的,本说明书第五方面实施例提出了一种计算机可读存储介质。其上存储有芯片升级程序,所述程序被处理器执行时,实现如第一方面中任意一项实施例所述的芯片升级方法。
根据本说明书实施例的计算机可读存储介质,在芯片升级程序被处理器执行时,升级逻辑简单,减少了由于存储器地址问题造成的升级失败的情况的发生,降低了出错概率,从而能够保证汽车的安全性。
本说明书附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本说明书的实践了解到。
附图说明
图1是本说明书相关技术中芯片的原理框图;
图2是本说明书实施例的芯片升级方法的流程图;
图3是本说明书实施例的芯片的原理框图;
图4是本说明书实施例的芯片升级装置的结构框图;
图5是本说明书实施例的电子设备的结构框图。
具体实施方式
下面详细描述本说明书的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本说明书,而不能理解为对本说明书的限制。
汽车OTA技术是指空中下载技术,汽车OTA技术可以通过移动通信的接口实现对汽车软件的远程管理。汽车OTA技术包括SOTA(Software Over-The-Air)、FOTA(FirmwareOver-The-Air)和DOTA(Diagnosis Over-The-Air)。其中,SOTA是对车载信息交互系统的升级,例如可以改变雨刮、智能大灯、导航软件、音乐软件、语音交互系统等等表层控制程序的使用体验。FOTA是基于底层控制软件所带来的升级,如可以改变车辆的充放电、动能回收、加速性能、辅助驾驶系统逻辑等深度驾驶有关的体验。DOTA是故障诊断和在线修复的升级。
汽车OTA的升级类似于电脑视窗系统的升级或者手机系统的升级,每一次的升级都可以改进、修补漏洞或者获得更多的功能、性能以及视觉效果的提升。目前,很多车企都很重视汽车OTA技术。但是需要注意的是,汽车需要具备一定的安全性,如果汽车OTA技术出现问题,很有可能会导致发生严重的安全事故。汽车安全包括功能安全和信息安全两种类型。
相关技术中,在进行汽车OTA升级时,需要上位机与汽车芯片进行通信,来确定当前运行的存储器,以对另一个存储器中程序文件进行升级。并且由于两个存储器的链接地址不同,上位机在生成代码时,要基于不同的链接地址来生成对应的升级文件。升级存储器的程序文件时,判断逻辑复杂,且不能选错升级文件,否则会导致代码无法正常运行,使得汽车出现安全问题。
请参阅图1,相关技术中对于汽车芯片OTA升级有三种方案。
如图1中的a图,方案一只有BOOT区域和APP区域。其中,BOOT区域可存放BOOTCode。BOOT Code为芯片出场时烧录的代码,可以执行芯片初始化、认证、上电自检、跳转到APP code等的一些动作。升级时先跳转到BOOT区域,然后擦除APP进行升级,升级成功后跳转回APP区域继续运行。方案一的优点为占用空间小且更新时实现逻辑简单。方案一的缺点包括:1、App没有备份,升级过程中,擦除App后如果出现掉电等意外情况会导致异常,芯片可能无法使用;2、App没有备份,升级过程后,正常使用中假如遇到代码区域存储器损坏(如Flash Array损坏),芯片可能无法使用;3、升级时因为处于BOOT中,无法执行App中的应用逻辑。
如图1中的b图,方案二中配置有BOOT区域+APP区域+APP备份或缓存区域。方案二进行OTA升级有两种方式,其一,在进行OTA升级时,将APP备份或缓存区域当做升级缓存区域,将需要更新的代码拷贝到此区域,验证代码的完整性之后,再拷贝到App区域,并验证APP区域中代码的完整性之后,完成OTA升级。其二,芯片正常使用的时候,将App Backup区域当做备份区域,会存放一份类似出厂的代码,如果升级的代码存在问题(比如掉电,完整性检查失败等),可以使用备份区的代码进行回滚(Rollback)。方案二的优点为可靠性高,在第二种升级方式中,不管升级过程中发生什么问题,都能确保有备份代码运行,芯片不会无法使用;升级时,假如对App Code缓存或备份区域进行操作,那么App Code可以被正常执行(多核情况)。方案二的缺点包括:1、虽然有App Code缓存或备份区域,但是在方式1和方式2中,缓存或备份区域分别存储的是本次要升级的代码和出厂代码,而不是上一版本的代码。这也就意味着,无法实现对上一版本的代码实现回滚(Rollback)。2、在方式1中,写入到App Code缓存或备份区域和后续写入到App Code区域的代码是一样的代码,假如要做到代码在升级缓存区时运行,意味着代码需要做到与存放地址无关,这对软件很难实现。所以这种情况下,App Code缓存或备份区域只能用作升级时代码的缓存,而不能实现回滚。3、App缓存或者备份,需要双倍空间。
如图1中的c图,方案三中配置有BOOT区域+APP A区域+APP B区域,其中,APP A区域和APP B区域都可以运行代码,通过BOOT区域中的Boot Code判断当前运行在APP A区域还是APP B区域,以对未运行的区域进行代码升级。方案三的优点包括可靠性高,不管升级过程中发生什么问题,都能确保有备份代码运行,芯片不会无法使用;升级的时候,除了最后一步APP A区域和APP B区域的代码之间的切换,升级前一个版本的App Code可以被正常执行(多核情况);因为有两个区域可运行程序,当最新版本的区域代码存在异常时,可以回滚到上一版本的区域进行运行(比如当前使用APP A区域,则回滚到APP B区域;当前使用APP B区域,则回滚到APP A区域)。方案三的缺点包括:1、因为APP A区域和APP B区域的链接地址不同,上位机生成代码的时候要基于不同的链接地址生成升级文件。2、判断逻辑复杂,上位机需要和芯片通信,确定当前运行的区域,然后升级另一个App区域,而且升级文件不能选错,否则代码无法正常运行。3、在某些系统中比如HSM(硬件安全模块),上图中的Boot区域代表HSM Boot Code(一般存储在ROM中,认为是信任根,并且在使用过程中不会损坏),上图中的App区域则代表HSM固件(Firmware), Firmware升级之后不允许回滚到上一个版本,否则会有安全风险。并且假如遇到代码区域存储器损坏(如Flash Array损坏),由于不允许回滚到上一个版本,芯片可能无法使用。4、App分两个区域,需要双倍空间。
由相关技术中的三个方案可知,方案三能够解决方案一和方案二中存在的问题,能够做到升级过程不使芯片无法使用。然而由于方案三中APP A区域和APP B区域的链接地址不同,其升级的判断逻辑复杂,升级时出错的概率较大。因此,本说明书提出了一种芯片升级方法,能够将芯片中存储器的物理地址转换为逻辑地址,通过逻辑地址对芯片进行升级,使得芯片升级的逻辑更加简单,降低出错概率。
图2为本说明书实施例中芯片升级方法的流程图。如图2所示,该芯片升级方法包括:
S210,在第一存储器和第二存储器中确定需要升级的目标存储器。
其中,目标存储器为未被执行的程序文件所处的存储器。
芯片配置有第一存储器和第二存储器,第一存储器和第二存储器分别存放有程序文件,且两个存储器均可运行程序。在运行其中一个存储器中程序文件时,另一个存储器中所存储的程序文件可以视为备份的程序文件。汽车在行驶过程中,芯片会正常运行其中一个存储器中的程序文件,来保障车辆的功能使用。一般来说,会运行两个存储器中存放的版本较高的程序文件。示例性地,若第一存储器中的程序文件的版本较高,则可运行第一存储器中的程序文件。这种情况下,为了不影响汽车功能的正常使用,保证第一存储器中程序文件的正常执行,可选择第二存储器作为目标存储器,对第二存储器的程序文件先进行升级。若两个存储器中存放的程序文件的版本相同,则可选择当前未被执行的程序文件所处的存储器作为目标存储器,先进行程序文件的升级。在一些情况中,若车辆处于停滞状态,芯片处于闲置状态下,也可优先选择存放的程序文件版本较低的存储器作为目标存储器,或者,任选一个存储器作为目标存储器进行优先升级。
S220,在针对芯片配置的第一逻辑地址和第二逻辑地址中确定需要对应到目标存储器的物理地址的目标逻辑地址。
本说明书的实施例中,针对芯片配置第一逻辑地址和第二逻辑地址。芯片可对第一逻辑地址和第二逻辑地址与第一存储器的物理地址和第二存储器的物理地址之间的对应关系进行配置。利用逻辑地址来访问第一存储器和第二存储器。这样,上位机只需针对固定的逻辑地址来生成升级文件,通过逻辑地址访问第一存储器和/或第二存储器,以对第一存储器和/或第二存储器中的程序文件进行升级。
具体地,可在芯片中集成一个地址转换模块,利用地址转换模块来配置第一逻辑地址、第二逻辑地址与目标存储器的物理地址之间的对应关系。在芯片进行版本升级时,地址转换模块在第一逻辑地址和第二逻辑地址中确定出一个目标逻辑地址,使目标逻辑地址对应到目标存储器的物理地址。上位机提供的升级文件是针对目标逻辑地址生成的。因此在进行升级时,通过目标逻辑地址就可访问到目标存储器。
S230,通过目标逻辑地址将芯片中存储的升级文件写入到目标存储器,以对目标存储器中未被执行的程序文件进行升级。
芯片在请求更新或者上位机发出更新要求时,上位机可与芯片通信连接,预先将升级文件存储至芯片中。示例性地,芯片中可配置一个静态随机存取存储器SRAM。用于暂时存放上位机发送的升级文件。在通过目标逻辑地址访问到目标存储器后,将SRAM中存放的升级文件写入目标存储器,来对目标存储器中当前未被执行的程序文件进行升级。升级完成之后,目标存储器中存储的为升级文件所对应的版本的程序文件。
示例性地,假设芯片配置第一逻辑地址Port0和第二逻辑地址Port1。在芯片进行升级之前,Port0和Port1都对应的是当前正在运行的存储器,或者Port0对应的是当前正在运行的存储器,而Port1对应的是Reserved Area保留区地址。在确定目标升级存储器后,地址转换模块可确定第二逻辑地址Port1为用于存储器升级的目标逻辑地址,确定第一逻辑地址Port0为用于执行存储器程序文件的逻辑地址。继而,地址转换模块将第二逻辑地址Port1配置为对应到目标存储器的物理地址,以使在进行芯片升级时,能够通过第二逻辑地址Port1访问到目标存储器。将SRAM中存放的升级文件写入目标存储器,来对目标存储器中当前未被执行的程序文件进行升级。
根据本说明书实施例的芯片升级方法,将芯片中两个存储器的物理地址转换为逻辑地址,通过逻辑地址对存储器进行访问,以对存储器中的程序文件进行升级。在这种方式下,上位机只需针对固定的逻辑地址生成升级文件即可,且无需在升级过程与芯片通信来判断存储器是否正在运行。本说明书实施例的芯片升级方法,升级逻辑简单,减少了由于存储器地址问题造成的升级失败的情况的发生,降低了出错概率,从而能够保证汽车的安全性。
在本说明书的一些实施例中,第一存储器和第二存储器均对应有配置信息;配置信息至少包括版本信息和执行位信息。在第一存储器和第二存储器中确定需要升级的目标存储器,包括:根据执行位信息和/或版本信息,在第一存储器和第二存储器中确定目标存储器。
在本说明书的实施例中,第一存储器和第二存储器对应有各自的配置向量,配置向量中包含有版本信息、执行位信息等存储器的一些配置信息。芯片的地址转换模块可读取存储器的配置向量来获取存储器的一些配置信息。
具体地,在芯片进行版本升级时,地址转换模块可分别获取第一存储器和第二存储器的配置信息。继而,根据第一存储器和第二存储器当前的执行位信息和/或版本信息,在第一存储器和第二存储器中确定出目标存储器。
在本说明的一些实施例中,根据执行位信息和/或版本信息,在第一存储器和第二存储器中确定目标存储器,包括:在第一存储器和第二存储器中,确定执行位信息表示未被执行和/或版本信息表示较低版本的存储器,并作为需要升级的目标存储器。
在一些情况中,由于汽车芯片升级时,汽车可能处于运行当中,此时其中一个存储器中的程序文件正在被运行。因此,为了不影响汽车的正常使用,可优先选择两个存储器中当前未被执行的存储器作为目标存储器,先进行升级。
具体地,存储器的执行位信息是用于表示该存储器当前是否正在被执行。示例性地,地址转换模块读取到第一存储器的执行位信息为0时,可判定第一存储器未被执行;若读取到第二存储器的执行位信息为1,则可判定第二存储器正在被执行。
在升级时,若汽车正在运行,则可在第一存储器和第二存储器中,确定执行位信息表示未被执行的存储器作为目标存储器。对未被执行程序文件所处的存储器先进行升级。
在另一些情况中,芯片可能会在处于闲置状态的时候进行升级,此时车辆可能处于停滞状态,两个存储器均为处于执行状态。在这种情况下,可不考虑执行位信息,在第一存储器和第二存储器中,确定版本信息表示较低版本的存储器作为目标存储器。对存放低版本程序文件的存储器先进行升级。
在一些实施方式中,也可选择执行位信息表示未被执行并且版本信息表示较低版本的存储器作为目标存储器。
在另一些实施方式中,配置信息还包括故障位信息。在确定目标存储器之前,地址转换模块可先对两个存储器进行代码完整性校验。若存储器的完整性校验未通过,表示该存储器可能存在软故障或硬故障。在存储器的完整性校验完成后,地址转换模块会对应修改出现问题的存储器的配置信息中的故障位信息。在确定目标存储器时,可结合执行位信息、版本信息和/或故障位信息确定目标存储器。示例性地,若在确定目标存储器时,地址转换模块读取到第一存储器的执行位信息为0,且第一存储器的故障位信息表示第一存储器具有软故障的情况下,可确定第一存储器为目标存储器,优先对第一存储器进行程序升级。这种情况下,不仅完成了程序升级,还解决了第一存储器软故障的问题。若地址转换模块读取到第一存储器的执行位信息为0,但第一存储器的故障位信息表示第一存储器具有硬故障的情况下,由于硬故障问题不可通过程序升级来解决,且可能会影响程序升级过程,因此,在这种情况下,可确定第二存储器为目标存储器。若地址转换模块读取到两个存储器的故障位信息均表示代码完整性正常,则可如上述实施例,依据执行位信息和/或版本信息进行目标存储器的确定。
在本说明书的一些实施例中,在针对芯片配置的第一逻辑地址和第二逻辑地址中确定需要对应到目标存储器的物理地址的目标逻辑地址,包括:将第一逻辑地址和第二逻辑地址均作为目标逻辑地址,对应到目标存储器的物理地址;或者确定第一逻辑地址和第二逻辑地址中的任一个作为对应到目标存储器的物理地址的目标逻辑地址。
示例性地,在芯片进行OTA升级之前,第一存储器的执行位信息为0,表示未被执行;第二存储器中的程序文件正在被执行,其执行位信息为1。芯片的启动代码存储器(BOOTCode)和地址转换模块SRAM可以读取两个存储器的配置向量,获取两个存储器的配置信息。对于第一逻辑地址Port0和第二逻辑地址Port1,其所对应的存储器的物理地址由各为2-bit的PORT0_ADDR_SEL寄存器和PORT1_ADDR_SEL寄存器选择。逻辑地址对应关系的配置方式共有四种,以第二逻辑地址Port1举例来讲:
配置PORT1_ADDR_SEL=00表示第二逻辑地址Port1对应第一存储器的物理地址。
配置PORT1_ADDR_SEL=01表示第二逻辑地址Port1对应第二存储器的物理地址。
配置PORT1_ADDR_SEL=10表示第二逻辑地址Port1的地址空间对应的是ReservedArea;此时第二逻辑地址Port1不对应第一存储器或第二存储器的物理地址。
配置PORT1_ADDR_SEL=11表示第一存储器和第二存储器级联使用。并且第二逻辑地址Port1的地址空间是Reserved Area。Reserved Area只对PORT1_ADDR_SEL寄存器有效,而PORT0_ADDR_SEL无此选项。只有当PORT0_ADDR_SEL=00或者01时候,此时PORT1_ADDR_SEL=11对于第一存储器和第二存储器级联生效,代表通过第一逻辑地址Port0可以连续访问第一存储器+第二存储器的物理地址,或者连续访问第二存储器+第一存储器的物理地址。需要注意的是,第一存储器和第二存储器是可以级联使用的,也可以并行使用。
在本说明书的实施例中,芯片在进行OTA升级之前,地址转换模块SRAM通过获取两个存储器的执行位信息确定处于正在执行状态的为第二存储器。此时,可配置PORT0_ADDR_SEL和PORT1_ADDR_SEL均为01。也就是说无论访问第一逻辑地址Port0还是访问第二逻辑地址Port1,均指向第二存储器的物理地址。因为此时第一存储器相当于备份或者老版本程序文件,是不需要或者不允许被运行的。
在根据执行位信息确定第一存储器为目标存储器后,可以将PORT0_ADDR_SEL和PORT1_ADDR_SEL均配置为对应到目标存储器的物理地址,如第一存储器。那么此时第二存储器的程序文件是无法被访问执行,要求OTA更新程序必须在Boot Code内。Boot Code一般是单独的存储器。
相比上述方式,还可确定第一逻辑地址和第二逻辑地址中的任一个作为对应到目标存储器的物理地址的目标逻辑地址。这种方式相比上述将两个逻辑地址均对应到目标存储器的物理地址的方式,更有优势。这种方式能够保证在对一个存储器的程序文件进行升级的过程中,另一个存储器中的程序文件可以正常被运行。示例性地,可配置其中一个逻辑地址,例如第一逻辑地址Port0,来专门对应两个存储器中程序文件正在被执行的存储器的物理地址。配置另一个逻辑地址,例如第二逻辑地址Port1,来专门对应目标存储器。示例性地,由于此时PORT0_ADDR_SEL和PORT1_ADDR_SEL均为01,均指向第二存储器。因此可将PORT1_ADDR_SEL从01写成00,使第二逻辑地址对应到第一存储器(目标存储器)的物理地址上。则在进行更新时,可通过第二逻辑地址将升级文件写入到第一存储器中,来完成对第一存储器中程序文件的升级。
在本说明书的一些实施例中,在对目标存储器中的程序文件进行升级之后,芯片升级方法还包括:更新第一存储器的执行位信息、第二存储器的执行位信息,以及目标存储器的版本信息。将目标存储器中的升级文件拷贝至除目标存储器外的另一个存储器中。
在对目标存储器的程序文件进行升级之后,还可对另一个存储器中的程序文件进行升级。由于此时目标存储器已更新完成,其存储的升级文件是当前最高版本的程序文件,若还对另一个存储器的程序文件进行升级,则可将目标存储器的执行位信息和另一个存储器的执行位信息互换,将目标存储器的执行位信息改为1,意味着,在芯片重启BOOT Code后会选择执行目标存储器中的升级文件。同样地,在对目标存储器的程序文件升级后,可对目标存储器的版本信息进行同步更改。
在一些实施例中,对目标存储器的程序文件升级后,芯片的OTA升级程序还会对目标存储器中存储的升级文件的代码进行代码完整性校验。若代码完整性校验结果表明目标存储器的代码与上位机提供的升级文件的代码一致,则修改目标存储器的配置信息,更改执行位信息和配置信息。若代码完整性校验结果表明其代码有误,则表明升级未成功,此时可中止后续的操作,并向网关报错。此时可重新向上位机申请新一轮的芯片更新,也可将另一个存储器中的程序文件拷贝至目标存储器中。
在本说明书的一些实施例中,若目标存储器为第一存储器。更新第一存储器的执行位信息、第二存储器的执行位信息,以及目标存储器的版本信息,包括:将第一存储器的执行位信息更新为执行状态,并将第二存储器的执行位信息更新为不执行状态。根据升级文件所对应的版本更新第一存储器的版本信息。
示例性地,若第一存储器为目标存储器,则对第一存储器的程序文件升级之后,将第一存储器的执行位信息更改为执行状态,将第二存储器的执行位信息更改为不执行状态,这样在芯片重启BOOT Code后会选择执行第一存储器中的升级文件。同时将第一存储器的版本信息修改为升级文件所对应的版本。
根据上述实施例,在对第一存储器的程序文件升级之后,会再对第二存储器的程序文件进行升级,使得两个存储器中的升级文件均为当前版本最高的程序文件。此时不管正在执行哪个存储器中的升级文件,在正在执行的存储器出现问题需要进行回滚时,都能保证回滚后执行的程序文件也是当前最高版本的程序文件。减小了功能安全和信息安全的风险。
在本说明书的一些实施例中,芯片升级方法还包括:在芯片根据执行位信息执行第一存储器中的升级文件过程中,若第一存储器中的升级文件出现损毁,则控制芯片执行第二存储器中的升级文件。
在本说明书的一些实施例中,芯片升级方法还包括:获取第二存储器中的升级文件的代码完整性校验结果。在代码完整性校验结果表明第二存储器中的升级文件出现损毁的情况下,将第一存储器中的升级文件拷贝至第二存储器中,或,向网关报错以请求新一轮的芯片升级。
由于在芯片的生命周期中或者进行OTA升级过程中,都会出现面损坏的情况。面损坏可以理解为存储升级文件的存储器出现损坏,其所存储的升级文件不能被正常执行。对于上述面损坏的情况,可通过对存储器中存储的升级文件进行代码完整性校验结果和预期的完整性校验结果不一致来确定出。代码完整性校验结果可以作为配置信息写于存储器的配置向量中。
以第一存储器为目标存储器为例。
在一些情况中,假如执行位信息表示正在执行的第一存储器出现了损坏,在根据代码完整性校验结果确定第一存储器中的升级文件出现损毁,则芯片中运行BOOT Code的Core可通过设备总线告知地址转换模块,控制芯片执行第二存储器中的升级文件。在这种情况下,地址转换模块不管第二存储器的执行位信息表示什么状态,都会使芯片重新运行时执行第二存储器中的升级文件。
可以理解的是,BOOT Code是芯片在执行存储器中的升级文件之前需要执行的程序。包括执行芯片的初始化、认证、上电自检、跳转到某存储器存储的升级文件等一些操作程序,是芯片出场就烧录的,只有BOOT Code正常执行,芯片才能正常工作。
在另一些情况中,执行位信息表示未被执行的第二存储器平时是不上电不运行的,假如第二存储器存储的升级需要被回滚,则芯片可在闲置状态下,定期对第二存储器存储的升级文件进行代码完整性校验。获取第二存储器的升级文件的代码完整性校验结果,在该结果与预期的结果不一致,表明第二存储器的升级文件出现损毁的情况下,至少有以下两种处理方式:其一,将第一存储器中的升级文件拷贝至第二存储器中;其二,向网关报错以请求新一轮的芯片升级。
对应上述实施例,本说明书的实施例还提出了一种芯片。芯片配置有第一存储器、第二存储器、地址转换模块。地址转换模块分别与第一存储器和第二存储器连接。地址转换模块用于在第一存储器和第二存储器中确定需要升级的目标存储器;在针对芯片配置的第一逻辑地址和第二逻辑地址中确定需要对应到目标存储器的物理地址的目标逻辑地址。其中,目标存储器为未被执行的程序文件所处的存储器。目标逻辑地址用于将芯片中存储的升级文件写入到目标存储器,以对目标存储器中的程序文件进行升级。
请参阅图3,该芯片配置有第一存储器310和第二存储器320,地址转换模块330配置在系统总线的交叉开关340和第一存储器310、第二存储器320之间。地址转换模块330配置PORT0_ADDR_SEL寄存器和PORT1_ADDR_SEL寄存器是通过设备总线350访问来实现的。在使用地址转换模块330时,地址转换模块330可读取第一存储器310和第二存储器320的配置向量,来获取两个存储器的配置信息,继而通过PORT0_ADDR_SEL寄存器和PORT1_ADDR_SEL寄存器对两个逻辑地址和两个存储器的物理地址之间的对应关系进行配置。
在芯片进行OTA升级时,地址转换模块330用于在第一存储器310和第二存储器320中确定需要升级的目标存储器;在针对芯片配置的第一逻辑地址和第二逻辑地址中确定需要对应到目标存储器的物理地址的目标逻辑地址,继而将目标逻辑地址配置到对应目标存储器的物理地址。其中,目标存储器为未被执行的程序文件所处的存储器。目标逻辑地址用于将芯片中存储的升级文件写入到目标存储器,以对目标存储器中的程序文件进行升级。
根据本说明书实施例的芯片,将芯片中两个存储器的物理地址转换为逻辑地址,通过逻辑地址对存储器进行访问,以对存储器中的程序文件进行升级。在这种方式下,上位机只需针对固定的逻辑地址生成升级文件即可,且无需在升级过程与芯片通信来判断存储器是否正在运行。本说明书实施例的芯片升级方法,升级逻辑简单,减少了由于存储器地址问题造成的升级失败的情况的发生,降低了出错概率,从而能够保证汽车的安全性。
在本说明书的一些实施例中,第一存储器310和第二存储器320均对应有配置信息;配置信息至少包括版本信息和执行位信息。地址转换模块330用于:根据执行位信息和/或版本信息,在第一存储器310和第二存储器320中确定目标存储器。
在本说明书的一些实施例中,地址转换模块330用于:在第一存储器310和第二存储器320中,确定执行位信息表示未被执行和/或版本信息表示较低版本的存储器,并作为需要升级的目标存储器。
在本说明书的一些实施例中,地址转换模块330用于:将第一逻辑地址和第二逻辑地址均作为目标逻辑地址,对应到目标存储器的物理地址;或者确定第一逻辑地址和第二逻辑地址中的任一个作为对应到目标存储器的物理地址的目标逻辑地址。
关于芯片如何实现升级的具体限定可以参见上文中对于芯片升级方法的限定,在此不再赘述。
结合上述芯片的实施例和芯片升级方法的实施例可以得知,本说明书实施例的芯片能够实现以下至少四种升级策略:
第一种升级策略:使用地址转换模块,配置地址转换模块的SASM_EN=1。芯片在运行过程遇到故障,需要回滚到升级前的版本。
具体地,上位机提供基于地址转换后的固定逻辑地址的升级文件。芯片进行OTA升级时,待升级的芯片会将上位机的升级文件存在SRAM 中,然后通过目标逻辑地址将升级文件写入到目标存储器中。若在此过程中掉电,则芯片重新启动代码,通过地址转换模块选择执行除目标存储器外的另一个存储器中存储的程序文件。在对目标存储器的程序文件升级完成后,会同步修改两个存储器的配置信息。运行BOOT code后跳转到固定地址执行代码,通过地址转换模块确定要执行的程序文件的存储器,例如,执行目标存储器中的升级文件。
在本实施方式中,当芯片遇到故障,如存储在目标存储器内的升级文件的代码损毁,或者在芯片的生命周期中,由于存储介质如Flash的内部电路或者信息比特损坏导致的芯片无法正常工作、卡死的情况。那么运行Boot Code或地址转换模块对两个存储器进行完整性校验时,确定完整性校验未通过的存储器,并对应配置该存储器的配置信息中的故障位信息。继而,SASM会选择执行故障位信息表示完整性校验通过的存储器中的程序文件,以保证芯片的正常运行。其中,若通过Boot Code进行完整性校验,Boot Code的Core会通过设备总线告知地址转换模块SASM完整性校验结果。
若经过完整性校验后,出现完整性校验未通过的存储器,则在执行备份区域(即完整性校验通过的存储器)中的程序文件时,芯片会尝试将备份区域的升级文件拷贝至故障区域(即完整性校验未通过的存储器),实现自我OTA修复。并再次检查故障区域代码完整性。假如完整性校验通过,则更正故障区域的故障位信息,并完成自我OTA修复。假如单次或多次自我OTA修复不通过,则认为是故障区域存在硬故障无法被正常写入,需向驾驶员报告潜在风险并督促其检修或更换芯片。
第二种升级策略:使用地址转换模块,配置地址转换模块的SASM_EN=1。芯片在运行过程遇到故障,需要回滚到升级后的版本。
具体地,上位机提供基于地址转换后的固定逻辑地址的升级文件。芯片进行OTA升级时,待升级的芯片会将上位机的升级文件存在SRAM 中,然后通过目标逻辑地址将升级文件写入到目标存储器中。若在此过程中掉电,则芯片重新启动代码,通过地址转换模块选择执行除目标存储器外的另一个存储器中存储的程序文件。在目标存储器的程序文件升级完成后,将目标存储器作为缓存,继而将目标存储器中的升级文件拷贝至另一个存储器中,继续进行OTA升级。若在此过程中掉电,则芯片重启动代码,通过地址转换模块选择执行目标存储器中的升级文件。在完成两个存储器的程序文件的升级后,运行BOOT code后跳转到固定地址执行代码,通过地址转换模块确定要执行的程序文件的存储器,例如,执行除目标存储器外的另一个存储器中的升级文件。
当芯片遇到故障,如存储在除目标存储器外的另一个存储器内的升级文件的代码损毁,或者在芯片的生命周期中,由于存储介质如Flash的内部电路或者信息比特损坏导致的芯片无法正常工作、卡死的情况。那么运行Boot Code或地址转换模块对两个存储器进行完整性校验时,确定完整性校验未通过的存储器,并对应配置该存储器的配置信息中的故障位信息。继而,SASM会选择执行故障位信息表示完整性校验通过的存储器中的程序文件,以保证芯片的正常运行。在本实施方式中,无论执行哪个存储器中的程序文件,都能保证正在执行的是最新的升级文件,也即最新版本的程序文件。
第三种升级策略:不使用地址转换模块,配置地址转换模块的SASM_EN=0。芯片在运行过程遇到故障,需要回滚到升级前的版本。
具体地,上位机需要根据不同的存储器的链接地址编译不同的升级文件。待升级芯片选择第一存储器或第二存储器对应链接地址的升级文件(如对应第一存储器链接地址的升级文件)。将上位机的升级文件存在SRAM中,然后写入到不使用的那一面存储器(第一存储器)。在此过程中掉电,芯片重启动代码,执行第二存储器中的程序文件。在第一存储器的程序文件升级完成后,运行BOOT code后跳转到固定地址执行代码,通过BOOT code确定要执行的程序文件的存储器,例如第一存储器。当芯片遇到故障,如存储在第一存储器内的升级文件的代码损毁,或者在芯片的生命周期中,由于存储介质如Flash的内部电路或者信息比特损坏导致的芯片无法正常工作、卡死的情况,那么Boot Code会选择执行第二存储器中的程序文件。
第四种升级策略:不使用地址转换模块,配置地址转换模块的SASM_EN=0。芯片在运行过程遇到故障,需要回滚到升级后的版本。
具体地,上位机需要根据不同的存储器的链接地址编译不同的升级文件。待升级芯片选择第一存储器或第二存储器对应链接地址的升级文件(如对应第一存储器链接地址的升级文件)。将上位机的升级文件存在SRAM中,然后写入到不使用的那一面存储器(第一存储器)。在此过程中掉电,芯片重新启动代码,执行第二存储器中的程序文件。在第一存储器的程序文件升级完成后,待升级芯片选择第二存储器对应链接地址的升级文件,将此升级文件存在SRAM中,然后写入到第二存储器。在此过程中掉电,芯片重启动代码,执行第一存储器中的程序文件。在两个存储器的程序文件升级完成后,运行BOOT code后跳转到固定地址执行代码,通过BOOT code确定要执行的程序文件的存储器,例如第二存储器。当芯片遇到故障,如存储在第二存储器内的升级文件的代码损毁,或者在芯片的生命周期中,由于存储介质如Flash的内部电路或者信息比特损坏导致的芯片无法正常工作、卡死的情况,那么Boot Code会选择执行第一存储器中的程序文件。在这种情况下,无论Boot Code选择执行哪个存储器中的程序文件,都能保证正在执行的是最新的升级文件,也即最新版本的程序文件。
需要说明的是,以上四种升级策略,在实际应用时,可通过具体需求进行选择。
本说明书实施例的提供的芯片,除提供使用地址转换模块的升级方法外,在对于两个存储器需要分别被多个总线主设备访问的情况下,还提供了关闭地址转换模块的选择,也即不使用地址转换模块,利用默认的逻辑地址对两个存储器中的程序文件进行升级。示例性地,在不使用地址转换模块时,可默认第一逻辑地址Port0对应第一存储器的物理地址,第二逻辑地址Port1对应第二存储器的地址。同时,也能支持芯片在遇到故障时,回滚到升级后的版本和升级前版本的两种升级策略。
本说明书实施例芯片升级方法,使得芯片的升级的流程的更加灵活。包括有多种选择:其一,使用地址转换模块,不支持版本回滚的升级策略;其二,使用地址转换模块,支持版本回滚的升级策略;其三,不使用地址转换模块,不支持版本回滚的升级策略;其四,不使用地址转换模块,支持版本回滚的升级策略。
并且本说明书实施例的升级方法能够兼容所有的OTA软件升级架构,适用于不同的SOC硬件架构。例如:假如不需要备份区域,可以配置成实现x2的连续存储地址空间,方便软件访问。配置成实现x2的连续存储地址空间,可基于单Port访问硬件(单核或无多主设备Matser并行访问存储器)。配置成实现x2的连续存储地址空间,可基于双Port并行访问硬件(多核或多主设备Master并行访问存储器)。另外,本说明书实施例双Port口访问的机制,可以在正常运行程序的同时,升级目标存储器,而不用停车,保障正常执行另一个存储器的程序文件。
在本说明书提出的升级策略中,若芯片升级过程中遇故障,可切换至备份区域,并尝试修复存储器软故障。若无法修复并判断为存储器硬故障则上报严重潜在错误。若芯片生命周期中遇故障,也可切换至备份区域,并尝试修复存储器软失效。若无法修复并判断为存储器硬失效则上报严重潜在错误。若遇芯片故障报错,其报错信息包含是潜在可修复软故障或硬故障。假如是软故障,可以尝试重新自我OTA升级,若自我升级不成功则变成潜在硬故障,需要上报驾驶员,进行芯片的更换。
对应上述实施例,本说明书实施例还提出了一种芯片升级装置。芯片配置有第一存储器310、第二存储器320。请参阅图4,该升级装置包括:
存储器确定模块410,用于在第一存储器和第二存储器中确定需要升级的目标存储器。
其中,目标存储器为未被执行的程序文件所处的存储器。
逻辑地址转换模块420,用于在针对芯片配置的第一逻辑地址和第二逻辑地址中确定需要对应到目标存储器的目标逻辑地址。
升级模块430,用于通过目标逻辑地址将芯片中存储的升级文件写入到目标存储器,以对目标存储器中未被执行的程序文件进行升级。
根据本说明书实施例的芯片升级装置,将芯片中两个存储器的物理地址转换为逻辑地址,通过逻辑地址对存储器进行访问,以对存储器中的程序文件进行升级。在这种方式下,上位机只需针对固定的逻辑地址生成升级文件即可,且无需在升级过程与芯片通信来判断存储器是否正在运行。本说明书实施例的芯片升级方法,升级逻辑简单,减少了由于存储器地址问题造成的升级失败的情况的发生,降低了出错概率,从而能够保证汽车的安全性。
关于芯片升级装置的具体限定可以参见上文中对于芯片升级方法的限定,在此不再赘述。上述芯片升级装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
对应上述实施例,本说明书的实施例还提供了一种电子设备。
图5是根据本说明书一个实施例的电子设备的结构框图。如图5所示,该电子设备500包括存储器504、处理器502及存储在存储器504上并可在处理器502上运行的芯片升级程序506,处理器502执行芯片升级程序506时,实现上述任一项实施例的芯片升级方法。
根据本说明书实施例的电子设备,在处理器502执行芯片升级程序506时,升级逻辑简单,减少了由于存储器地址问题造成的升级失败的情况的发生,降低了出错概率,从而能够保证汽车的安全性。
对应上述实施例,本说明书实施例还提出了一种计算机可读存储介质,其上存储有芯片升级程序,该芯片升级程序被处理器执行时,实现上述任一项实施例的芯片升级方法。
根据本说明书实施例的计算机可读存储介质,在芯片升级程序被处理器执行时,升级逻辑简单,减少了由于存储器地址问题造成的升级失败的情况的发生,降低了出错概率,从而能够保证汽车的安全性。
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本说明书的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
在本说明书的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本说明书和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本说明书的限制。
此外,本说明书实施例中所使用的“第一”、“第二”等术语,仅用于描述目的,而不可以理解为指示或者暗示相对重要性,或者隐含指明本实施例中所指示的技术特征数量。由此,本说明书实施例中限定有“第一”、“第二”等术语的特征,可以明确或者隐含地表示该实施例中包括至少一个该特征。在本说明书的描述中,词语“多个”的含义是至少两个或者两个及以上,例如两个、三个、四个等,除非实施例中另有明确具体的限定。
在本说明书中,除非实施例中另有明确的相关规定或者限定,否则实施例中出现的术语“安装”、“相连”、“连接”和“固定”等应做广义理解,例如,连接可以是固定连接,也可以是可拆卸连接,或成一体,可以理解的,也可以是机械连接、电连接等;当然,还可以是直接相连,或者通过中间媒介进行间接连接,或者可以是两个元件内部的连通,或者两个元件的相互作用关系。对于本领域的普通技术人员而言,能够根据具体的实施情况理解上述术语在本说明书中的具体含义。
在本说明书中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
尽管上面已经示出和描述了本说明书的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本说明书的限制,本领域的普通技术人员在本说明书的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (13)
1.一种芯片升级方法,其特征在于,所述芯片配置有第一存储器、第二存储器;所述方法包括:
在所述第一存储器和所述第二存储器中确定需要升级的目标存储器;其中,所述目标存储器为未被执行的程序文件所处的存储器;
在针对所述芯片配置的第一逻辑地址和第二逻辑地址中确定需要对应到所述目标存储器的物理地址的目标逻辑地址,以及,基于所述第一逻辑地址、所述第二逻辑地址、所述第一存储器的物理地址、所述第二存储器的物理地址之间的对应关系进行配置,得到逻辑地址对应关系;
通过所述目标逻辑地址将所述芯片中存储的升级文件写入到所述目标存储器,以对所述目标存储器中未被执行的程序文件进行升级;
其中,基于所述第一逻辑地址、所述第二逻辑地址、所述第一存储器的物理地址、所述第二存储器的物理地址之间的对应关系进行配置,包括:将所述第一逻辑地址和所述第二逻辑地址均作为目标逻辑地址,对应到所述目标存储器的物理地址;或者
确定所述第一逻辑地址和所述第二逻辑地址中的任一个作为对应到所述目标存储器的物理地址的所述目标逻辑地址,以在所述芯片升级过程通过所述逻辑地址对应关系实现所述目标逻辑地址对应需要升级的目标存储器的物理地址。
2.根据权利要求1所述的方法,其特征在于,所述第一存储器和所述第二存储器均对应有配置信息;所述配置信息至少包括版本信息和执行位信息;所述在所述第一存储器和所述第二存储器中确定需要升级的目标存储器,包括:
根据所述执行位信息和/或所述版本信息,在所述第一存储器和所述第二存储器中确定所述目标存储器。
3.根据权利要求2所述的方法,其特征在于,所述根据所述执行位信息和/或所述版本信息,在所述第一存储器和所述第二存储器中确定所述目标存储器,包括:
在所述第一存储器和所述第二存储器中,确定所述执行位信息表示未被执行和/或所述版本信息表示较低版本的存储器,并作为所述目标存储器。
4.根据权利要求1所述的方法,其特征在于,在对所述目标存储器中的程序文件进行升级之后,所述方法还包括:
更新所述第一存储器的执行位信息、所述第二存储器的执行位信息,以及所述目标存储器的版本信息;
将所述目标存储器中的升级文件拷贝至除所述目标存储器外的另一个存储器中。
5.根据权利要求4所述的方法,其特征在于,若所述目标存储器为所述第一存储器;所述更新所述第一存储器的执行位信息、所述第二存储器的执行位信息,以及所述目标存储器的版本信息,包括:
将所述第一存储器的执行位信息更新为执行状态,并将所述第二存储器的执行位信息更新为不执行状态;
根据所述升级文件所对应的版本更新所述第一存储器的版本信息。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述芯片根据所述执行位信息执行所述第一存储器中的升级文件过程中,若所述第一存储器中的升级文件出现损毁,则控制所述芯片执行所述第二存储器中的升级文件。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取所述第二存储器中的升级文件的代码完整性校验结果;
在所述代码完整性校验结果表明所述第二存储器中的升级文件出现损毁的情况下,将所述第一存储器中的升级文件拷贝至所述第二存储器中,或,向网关报错以请求新一轮的芯片升级。
8.一种芯片,其特征在于,所述芯片配置有第一存储器、第二存储器、地址转换模块;所述地址转换模块分别与所述第一存储器和所述第二存储器连接;
所述地址转换模块用于在所述第一存储器和所述第二存储器中确定需要升级的目标存储器;在针对所述芯片配置的第一逻辑地址和第二逻辑地址中确定需要对应到所述目标存储器的物理地址的目标逻辑地址,以及,基于所述第一逻辑地址、所述第二逻辑地址、所述第一存储器的物理地址、所述第二存储器的物理地址之间的对应关系进行配置,得到逻辑地址对应关系;
其中,所述目标存储器为未被执行的程序文件所处的存储器;所述目标逻辑地址用于将所述芯片中存储的升级文件写入到所述目标存储器,以对所述目标存储器中的程序文件进行升级;
所述地址转换模块还用于将所述第一逻辑地址和所述第二逻辑地址均作为目标逻辑地址,对应到所述目标存储器的物理地址;或者
确定所述第一逻辑地址和所述第二逻辑地址中的任一个作为对应到所述目标存储器的物理地址的所述目标逻辑地址,以在所述芯片升级过程通过所述逻辑地址对应关系实现所述目标逻辑地址对应需要升级的目标存储器的物理地址。
9.根据权利要求8所述的芯片,其特征在于,所述第一存储器和所述第二存储器均对应有配置信息;所述配置信息至少包括版本信息和执行位信息;所述地址转换模块用于:
根据所述执行位信息和/或所述版本信息,在所述第一存储器和所述第二存储器中确定所述目标存储器。
10.根据权利要求9所述的芯片,其特征在于,所述地址转换模块用于:
在所述第一存储器和所述第二存储器中,确定所述执行位信息表示未被执行和/或所述版本信息表示较低版本的存储器,并作为需要升级的所述目标存储器。
11.一种芯片升级装置,其特征在于,所述芯片配置有第一存储器、第二存储器;所述装置包括:
存储器确定模块,用于在所述第一存储器和所述第二存储器中确定需要升级的目标存储器;其中,所述目标存储器为未被执行的程序文件所处的存储器;
逻辑地址转换模块,用于在针对所述芯片配置的第一逻辑地址和第二逻辑地址中确定需要对应到所述目标存储器的物理地址的目标逻辑地址,以及,基于所述第一逻辑地址、所述第二逻辑地址、所述第一存储器的物理地址、所述第二存储器的物理地址之间的对应关系进行配置,得到逻辑地址对应关系;
升级模块,用于通过所述目标逻辑地址将所述芯片中存储的升级文件写入到所述目标存储器,以对所述目标存储器中未被执行的程序文件进行升级;
其中,所述逻辑地址转换模块,还用于将所述第一逻辑地址和所述第二逻辑地址均作为目标逻辑地址,对应到所述目标存储器的物理地址;或者
确定所述第一逻辑地址和所述第二逻辑地址中的任一个作为对应到所述目标存储器的物理地址的所述目标逻辑地址,以在所述芯片升级过程通过所述逻辑地址对应关系实现所述目标逻辑地址对应需要升级的目标存储器的物理地址。
12.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的芯片升级程序,所述处理器执行所述程序时,实现如权利要求1-7中任意一项所述的芯片升级方法。
13.一种计算机可读存储介质,其特征在于,其上存储有芯片升级程序,所述程序被处理器执行时,实现如权利要求1-7中任意一项所述的芯片升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310529082.8A CN116302005B (zh) | 2023-05-11 | 2023-05-11 | 芯片、芯片升级方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310529082.8A CN116302005B (zh) | 2023-05-11 | 2023-05-11 | 芯片、芯片升级方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116302005A CN116302005A (zh) | 2023-06-23 |
CN116302005B true CN116302005B (zh) | 2023-08-22 |
Family
ID=86790872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310529082.8A Active CN116302005B (zh) | 2023-05-11 | 2023-05-11 | 芯片、芯片升级方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116302005B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117215619B (zh) * | 2023-11-09 | 2024-02-02 | 苏州萨沙迈半导体有限公司 | 应用程序的在线升级方法、芯片及智能设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105637521A (zh) * | 2014-06-30 | 2016-06-01 | 华为技术有限公司 | 一种数据处理方法及智能终端 |
CN108196868A (zh) * | 2018-03-27 | 2018-06-22 | 联想(北京)有限公司 | Bios升级方法和电子设备 |
CN109542495A (zh) * | 2018-11-12 | 2019-03-29 | 青岛海信电器股份有限公司 | 一种软件升级方法及装置 |
CN110175035A (zh) * | 2018-02-20 | 2019-08-27 | 松下电器产业株式会社 | 电子设备、程序更新方法及计算机程序 |
CN110231952A (zh) * | 2019-06-17 | 2019-09-13 | 合肥巨一动力系统有限公司 | 一种ecu程序备份及循环升级控制方法及装置 |
CN111258498A (zh) * | 2019-12-06 | 2020-06-09 | 浙江零跑科技有限公司 | 一种flash存储器管理方法 |
CN111433750A (zh) * | 2017-12-12 | 2020-07-17 | 赛普拉斯半导体公司 | 存储器设备、采用单个存储器设备更新固件的系统和方法 |
CN114860291A (zh) * | 2022-04-06 | 2022-08-05 | 沈阳中科奥维科技股份有限公司 | 一种引导及应用程序灵活储存与升级的方法 |
CN115168250A (zh) * | 2022-09-02 | 2022-10-11 | 苏州浪潮智能科技有限公司 | 一种l2p表更新方法、系统、装置及可读存储介质 |
CN115696266A (zh) * | 2022-10-27 | 2023-02-03 | 重庆长安汽车股份有限公司 | 一种车载控制器升级方法、装置、设备及存储介质 |
-
2023
- 2023-05-11 CN CN202310529082.8A patent/CN116302005B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105637521A (zh) * | 2014-06-30 | 2016-06-01 | 华为技术有限公司 | 一种数据处理方法及智能终端 |
CN111433750A (zh) * | 2017-12-12 | 2020-07-17 | 赛普拉斯半导体公司 | 存储器设备、采用单个存储器设备更新固件的系统和方法 |
CN110175035A (zh) * | 2018-02-20 | 2019-08-27 | 松下电器产业株式会社 | 电子设备、程序更新方法及计算机程序 |
CN108196868A (zh) * | 2018-03-27 | 2018-06-22 | 联想(北京)有限公司 | Bios升级方法和电子设备 |
CN109542495A (zh) * | 2018-11-12 | 2019-03-29 | 青岛海信电器股份有限公司 | 一种软件升级方法及装置 |
CN110231952A (zh) * | 2019-06-17 | 2019-09-13 | 合肥巨一动力系统有限公司 | 一种ecu程序备份及循环升级控制方法及装置 |
CN111258498A (zh) * | 2019-12-06 | 2020-06-09 | 浙江零跑科技有限公司 | 一种flash存储器管理方法 |
CN114860291A (zh) * | 2022-04-06 | 2022-08-05 | 沈阳中科奥维科技股份有限公司 | 一种引导及应用程序灵活储存与升级的方法 |
CN115168250A (zh) * | 2022-09-02 | 2022-10-11 | 苏州浪潮智能科技有限公司 | 一种l2p表更新方法、系统、装置及可读存储介质 |
CN115696266A (zh) * | 2022-10-27 | 2023-02-03 | 重庆长安汽车股份有限公司 | 一种车载控制器升级方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116302005A (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7197613B2 (en) | Nonvolatile memory | |
US6718430B2 (en) | Window-based flash memory storage system and management and access methods thereof | |
CN116302005B (zh) | 芯片、芯片升级方法、装置、电子设备及可读存储介质 | |
US20020039312A1 (en) | Nonvolatile memory and method of writing data thereto | |
US9817600B2 (en) | Configuration information backup in memory systems | |
CN105930236A (zh) | 一种基于BMS Bootloader升级的应用程序版本回退方法 | |
EP1607865B1 (en) | Data control unit capable of correcting boot errors, and corresponding method | |
KR20060012696A (ko) | 불량 블록 관리 기능을 가지는 플레시 메모리 장치 및플레시 메모리 장치의 불량 블록 관리 방법. | |
CN105760165A (zh) | 一种mcu自我备份加载刷新的方法 | |
CN114968066A (zh) | 用于快闪存储器中进行故障区块管理的方法与装置 | |
CN115061713A (zh) | 升级电子设备的方法及装置 | |
CN214376406U (zh) | 集成电路、车载控制器以及车辆 | |
CN105009096A (zh) | 数据存储装置、数据的存储方法以及车载用控制装置 | |
CN102033765A (zh) | 一种bcm程序升级方法和车载电控系统升级方法 | |
CN112394965B (zh) | 电池管理系统升级和运行方法,控制器,电池管理系统及存储介质 | |
CN113176891B (zh) | 一种基于Bootloader带有备份功能的ECU的程序烧写方法 | |
CN110968455B (zh) | 一种非易失性存储器的修复方法及装置 | |
CN110633056B (zh) | 在操作系统层面的Flash芯片的页面管理方法及存储设备 | |
CN114684163A (zh) | 车辆控制器及其程序启动及刷写方法和存储介质 | |
US20220204008A1 (en) | Arithmetic processing device, vehicle control device, and update method | |
CN117215619B (zh) | 应用程序的在线升级方法、芯片及智能设备 | |
KR100575927B1 (ko) | 이동통신 단말기에서 부팅 방법 | |
CN109683803B (zh) | 一种数据处理方法及装置 | |
CN116484327A (zh) | 存储器的操作系统程序写保护方法、装置及电子设备 | |
CN117762049A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |