CN105302475B - 高效的闪存编程 - Google Patents
高效的闪存编程 Download PDFInfo
- Publication number
- CN105302475B CN105302475B CN201510432886.1A CN201510432886A CN105302475B CN 105302475 B CN105302475 B CN 105302475B CN 201510432886 A CN201510432886 A CN 201510432886A CN 105302475 B CN105302475 B CN 105302475B
- Authority
- CN
- China
- Prior art keywords
- group
- sector
- software module
- delta
- programmed
- 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
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
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- 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
- G06F8/658—Incremental updates; Differential 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
公开了高效的闪存编程。在此呈现一种重新编程计算设备的闪速存储器的方法。具有多个软件模块的软件内容可以通过从软件模块识别有待通过德尔塔编程来编程的第一组软件模块和有待通过非德尔塔编程来编程的第二组软件模块来重新编程。将闪速存储器的第一组扇区分配用于编程第一组软件模块,并且将第二组扇区分配用于编程第二组软件模块。将第二组扇区中的至少一些指定为临时备份存储空间。使用德尔塔编程和指定的临时备份存储空间来用第一组软件模块编程第一组扇区。在编程第一组扇区之后,使用非德尔塔编程用第二组软件模块来编程第二组扇区。
Description
技术领域
本文描述的主题的实施例一般涉及用于车辆中的类型的电子控制系统和电子控制单元(ECU)。更具体来说,主题的实施例涉及重新编程ECU的闪速存储器的编程技术。
背景技术
现代机动车辆提供许多软件控制的特征或功能来适应驾驶者和乘客的需要和需求,并且遵守政府机构的管理。这些特征通常由编程到位于车辆内的不同位置处的各个模块或电子控制单元(ECU)中的软件来控制。ECU以及来往于ECU和它们控制的硬件设备的信号路径可以被认为是形成包括在车辆内的高速计算机网络。每个ECU包括用于其特定车辆系统的软件,诸如执行各种控制功能的应用软件以及配置应用软件的相关校准软件。有时,ECU软件被更新以反映软件改进、启用或禁用用户偏好和/或修补或校正现有软件。更新ECU软件通常涉及刷新存储在闪速存储器中的程序码以便用新的软件模块替代现有的软件模块。
鉴于各种原因,对于ECU供应商来说预编程ECU以适应车辆制造商的需要和规范可能是有负担的。因此,一些ECU供应商现在为车辆制造商提供一般编程的ECU,所述ECU以后可以由车辆制造商用车辆特有的ECU软件来重新编程。此重新编程可能需要刷新由ECU供应商提供的先存的程序码。
ECU的越来越多的使用和ECU所使用的软件程序的数量已经促使ECU出售商和车辆制造商研究高效且经济的闪存编程技术的使用。尽管如此,存在对具有用于重新编程车辆中的ECU的改进的方法的需要和需求。此外,其他所需特征和特性将从结合附图和以上技术领域和背景技术进行的随后详细描述和随附权利要求变得显而易见。
发明内容
本文披露一种用软件内容来重新编程计算设备的闪速存储器的方法。软件内容包括多个软件模块,并且方法的示例性实施例通过从软件模块识别有待通过德尔塔编程来编程的第一组软件模块和有待通过非德尔塔编程来编程的第二组软件模块开始。方法通过将闪速存储器的第一组扇区分配用于编程第一组软件模块并且将闪速存储器的第二组扇区分配用于编程第二组软件模块来继续。方法通过将第二组扇区中的至少一些指定为临时备份存储空间并且通过使用德尔塔编程和指定的临时备份存储空间来用第一组软件模块编程第一组扇区来继续。在编程第一组扇区之后,使用非德尔塔编程用第二组软件模块来编程第二组扇区。
本文还披露一种有形且永久的计算机可读介质,所述计算机可读介质具有存储在其上并且在由处理器执行时能够执行方法的计算机可执行指令。由指令执行的方法从多个软件模块识别有待通过德尔塔编程来编程到闪速存储器中的第一组软件模块和有待通过非德尔塔编程来编程到闪速存储器中的第二组软件模块。闪速存储器的第一组扇区被分配用于编程第一组软件模块,并且闪速存储器的第二组扇区被分配用于编程第二组软件模块。第二组扇区中的至少一些被指定为临时备份存储空间。使用德尔塔编程和指定的临时备份存储空间来用第一组软件模块编程第一组扇区。在编程第一组扇区之后,使用非德尔塔编程用第二组软件模块来编程第二组扇区。
还披露一种用于车辆的电子控制单元。电子控制单元的示例性实施例包括具有至少一个处理器设备的处理器架构、存储代表多个软件模块的程序码的闪速存储器以及计算机可读介质,所述计算机可读介质具有存储在其上的计算机可执行指令。在由处理器架构执行时,指令使得电子控制单元:用第一软件模块和第二软件模块来开始闪速存储器的重新编程;获得与第一软件模块相关的德尔塔程序文件;使用德尔塔程序文件并且使用分配给第二软件模块作为临时备份存储空间的第二组扇区用第一软件模块来德尔塔编程闪速存储器的第一组扇区;以及在德尔塔编程第一组扇区之后,使用非德尔塔编程用第二组软件模块来编程第二组扇区。
本发明包括以下方案:
1. 一种用软件内容来重新编程计算设备的闪速存储器的方法,所述软件内容包括多个软件模块,所述方法包括:
从所述多个软件模块识别有待通过德尔塔编程来编程的第一组软件模块和有待通过非德尔塔编程来编程的第二组软件模块;
将闪速存储器的第一组扇区分配用于编程第一组软件模块,并且将闪速存储器的第二组扇区分配用于编程第二组软件模块;
将第二组扇区中的至少一些指定为临时备份存储空间;
使用德尔塔编程和指定的临时备份存储空间以用第一组软件模块编程第一组扇区;以及
在编程第一组扇区之后,使用非德尔塔编程用第二组软件模块来编程第二组扇区。
2. 如方案1所述的方法,其进一步包括:
获得德尔塔程序文件,德尔塔程序文件代表第一组扇区中的现有组的软件模块与第一组软件模块之间的差异,其中编程第一组扇区使用德尔塔程序文件。
3. 如方案1所述的方法,其中编程第一组扇区包括:
将第一组扇区中的现有组的软件模块的至少一些程序码保存到指定的临时备份存储空间。
4. 如方案1所述的方法,其中:
计算设备是车辆的电子控制单元;以及
多个软件模块包括应用软件模块和与应用软件模块相关的程序校准模块。
5. 如方案1所述的方法,其中指定步骤包括:
确定第一组扇区的最大扇区尺寸;以及
将至少最大扇区尺寸分配给指定的临时备份存储空间。
6. 如方案1所述的方法,其中编程第二组扇区包括:
用代表第二组软件模块的新程序码来替代第二组扇区中的现有程序码。
7. 一种有形且永久的计算机可读介质,所述计算机可读介质具有存储在其上并且在由处理器执行时能够执行方法的计算机可执行指令,所述方法包括:
从多个软件模块识别有待通过德尔塔编程来编程到闪速存储器中的第一组软件模块和有待通过非德尔塔编程来编程到闪速存储器中的第二组软件模块;
将闪速存储器的第一组扇区分配用于编程第一组软件模块,并且将闪速存储器的第二组扇区分配用于编程第二组软件模块;
将第二组扇区中的至少一些指定为临时备份存储空间;
使用德尔塔编程和指定的临时备份存储空间以用第一组软件模块编程第一组扇区;以及
在编程第一组扇区之后,使用非德尔塔编程用第二组软件模块来编程第二组扇区。
8. 如方案7所述的计算机可读介质,其中由计算机可执行指令执行的方法进一步包括:
获得德尔塔程序文件,德尔塔程序文件代表第一组扇区中的现有组的软件模块与第一组软件模块之间的差异,其中编程第一组扇区使用德尔塔程序文件。
9. 如方案7所述的计算机可读介质,其中编程第一组扇区包括:
将第一组扇区中的现有组的软件模块的至少一些程序码保存到指定的临时备份存储空间。
10. 如方案7所述的计算机可读介质,其中多个软件模块包括应用软件模块和与应用软件模块相关的程序校准模块。
11. 如方案7所述的计算机可读介质,其中指定步骤包括:
确定第一组扇区的最大扇区尺寸;以及
将至少最大扇区尺寸分配给指定的临时备份存储空间。
12. 如方案7所述的计算机可读介质,其中编程第二组扇区包括:
用代表第二组软件模块的新程序码来替代第二组扇区中的现有程序码。
13. 一种用于车辆的电子控制单元,所述电子控制单元包括:
具有至少一个处理器设备的处理器架构;
存储代表多个软件模块的程序码的闪速存储器;以及
计算机可读介质,计算机可读介质具有存储在其上的计算机可执行指令,在由处理器架构执行时,指令使得电子控制单元:
用第一软件模块和第二软件模块来开始闪速存储器的重新编程;
获得与第一软件模块相关的德尔塔程序文件;
使用德尔塔程序文件并且使用分配给第二软件模块作为临时备份存储空间的第二组扇区用第一软件模块来德尔塔编程闪速存储器的第一组扇区;以及
在德尔塔编程第一组扇区之后,使用非德尔塔编程用第二组软件模块来编程第二组扇区。
14. 如方案13所述的电子控制单元,其中:
第一软件模块包括应用软件模块;以及
第二软件模块包括与应用软件模块相关的校准模块。
15. 如方案13所述的电子控制模块,其中德尔塔程序文件是从外部源获得以更新闪速存储器的现有软件图像。
16. 如方案15所述的电子控制模块,其中德尔塔程序文件代表现有软件图像与第一软件模块之间的差异。
17. 如方案13所述的电子控制模块,其中德尔塔编程第一组扇区包括:
将闪速存储器的现有软件图像的至少一些程序码复制到临时备份存储空间。
18. 如方案13所述的电子控制模块,其中计算机可执行指令使得电子控制单元:
确定第一组扇区的最大扇区尺寸;以及
将至少最大扇区尺寸分配给临时备份存储空间。
19. 如方案13所述的电子控制模块,其中计算机可执行指令使得电子控制单元:
获得以其整体代表第二软件模块的程序码,其中在非德尔塔编程期间使用程序码。
20. 如方案19所述的电子控制模块,其中获得的程序码包括压缩图像。
提供此概述来用简化的形式介绍以下在详细描述中进一步描述的概念的选择。此概述既不意欲识别所要求的主题的关键特征或必要特征,也不意欲用作帮助确定所要求的主题的范围。
附图说明
主题的更完整理解可以通过参照结合以下附图考虑时的详细描述和权利要求来获得,其中相同参考数字在所有图中指代类似元件:
图1是适用于车辆中的ECU的简化示意性表示;
图2是用现有软件模块编程的闪速存储器元件的图;
图3是在刷新操作期间的状态下描绘的图2中所示的闪速存储器元件的图;
图4是在刷新操作接近结束的状态下描绘的图2中所示的闪速存储器元件的图;
图5是在完成刷新操作之后的图2中所示的闪速存储器元件的图;
图6是示出与闪存重新编程操作相关的开始过程的示例性实施例的流程图;以及
图7是示出闪存重新编程过程的示例性实施例的流程图。
具体实施方式
以下详细描述实质上仅是说明性的,而并不意欲限制主题的实施例或这些实施例的应用和使用。如本文所使用,词语“示例性”意味着“用作实例、示例或说明”。本文描述为示例性的任何实施方式不必解释为比其他实施方式优选或有利。此外,并不意欲由前面的技术领域、背景技术、简要概述或以下详细描述中呈现的明确或暗示的理论限制。
本文根据功能和/或逻辑方框部件并且参照可以由各种计算部件或设备执行的操作、处理任务和功能的符号表示来描述技术和工艺。这些操作、任务和功能有时称为计算机执行的、计算机化的、处理器执行的、软件实施的或计算机实施的。应了解,图中所示的各种方框部件可以通过配置成执行指定功能的任何数量的硬件、软件和/或固件部件来实现。例如,系统或部件的实施例可以使用各种集成电路部件,例如存储器元件、数字信号处理元件、逻辑元件、查找表等,所述部件可以在一个或多个微处理器或其他控制设备的控制下执行多种功能。
当实施在软件或固件中时,本文描述的系统的各个元件基本上是代码段或可执行指令,其在由一个或处理器设备执行时导致主机计算系统执行各种任务。在某些实施例中,程序或代码段存储在有形的处理器可读介质中,所述处理器可读介质可以包括可以存储或传递信息的任何介质。适合的形式的永久的且处理器可读的介质的实例包括电子电路、半导体存储器设备、ROM、闪速存储器、可擦ROM(EROM)、软盘、CD-ROM、光盘、硬盘等。
本文描述的技术和工艺可以用于任何车辆,包括而不限于:道路车辆、诸如汽车、公共汽车、卡车和摩托车;飞机;船只;航天器;火车;地铁;特种设备(例如,建筑设备、工厂设备等);有轨电车;等等。以下描述的具体实施例涉及车辆应用;然而,主题并不受限或受约束于这些车辆应用。
在此描述的主题涉及高效且节省成本的闪存编程技术,所述技术利用德尔塔编程来将程序码存储在车辆的ECU的闪速存储器元件中。德尔塔编程可以在不会显著地增加ECU成本或复杂性的情况下以故障安全的方式来执行。如熟悉软件编程和闪速存储器架构的人所很好理解,德尔塔编程是更新、改变或修订现有软件内容的有效方式,所述软件内容可以代表程序码、校准数据等。就此而言,德尔塔编程集中于现有(预编程的)软件内容与打算安装的新软件内容之间的差异。根据德尔塔编程技术,可以产生代表两个软件版本之间的差异的德尔塔程序文件。因此,不需要将全部新软件内容发送到目标ECU。因此,如果仅需要小改变,则德尔塔编程可以产生较少费用,并且可以快速安装。
德尔塔编程可以用故障安全方式来执行以确保编程中断不会产生不可恢复的状态。为此目的,常规德尔塔编程技术可以利用额外的非易失性存储器(例如,闪速存储器),所述存储器仅在编程期间使用(即,在刷新之后的ECU的正常操作期间不使用额外的存储器)。取决于更新策略,可以将额外的存储器用作存储软件内容的先前版本中的一些的备份区域、作为存储当前重建的闪存扇区的暂存器或者作为在将新版本写入到闪速存储器时存储更新和状态信息的临时区域。因此,如果需要,则可以恢复软件内容的先前版本。尽管此方法有效,但是其增加ECU的成本和复杂性。
在此呈现的技术利用在不会显著增加ECU成本或复杂性的情况下以故障安全方式的德尔塔编程。如以下更详细描述,将所需的软件内容划分成可识别的软件模块。使用德尔塔编程来重新编程软件模块中的一些。随后,使用传统或非德尔塔方法来重新编程一个或多个剩余软件模块。在德尔塔编程阶段期间,在构建用于在此阶段期间更新的模块的最终图像时,预订用于非德尔塔编程模块的闪速存储器的一部分被用作临时缓存。在非德尔塔编程阶段期间,使用传统技术(例如,原始的二进制、压缩图像等)用剩余的软件模块来写入预订的闪存扇区。
图1是适用于车辆中的ECU 100的简化示意性表示。现代车辆可以包括多个ECU100,每个ECU被适当地配置成执行车载的某些指定功能和操作。ECU 100的所示实施例通常包括而不限于:具有至少一个处理器设备(诸如微处理器102)的处理器架构;只读存储器104;随机访问存储器106;闪速存储器108;输入/输出模块110;以及通信模块112。实际上,ECU 100可以包括合作以实现所需功能性的额外的元件、设备和功能模块。
ECU 100的处理器架构能够执行程序码指令,所述指令使得ECU 100执行多种技术、操作和功能,包括以下更详细描述的那些。尽管图1描绘微处理器102(其是优选的实施方式),但是ECU 100可以使用任何数量的离散处理器设备、内容可定址存储器、数字信号处理器、特定应用集成电路、场可编程门阵列、任何适合的可编程逻辑设备、离散门或晶体管逻辑、离散硬件部件或者设计成执行在此描述的功能的任何组合。此外,ECU 100所使用的处理器设备可以被实施为设备的组合,例如数字信号处理器与微处理器的组合、多个微处理器、一个或多个微处理器结合数字信号处理器磁芯或者任何其他此类配置。
可以使用ROM 104和闪速存储器108来存储代表或定义用于ECU 100的各种软件模块的计算机可执行程序码。ROM104可以用于不需要更新或修订存储在其中的软件模块的一些实施例中。例如,可以使用ROM 104来存储定义用于ECU 100的操作系统、引导装载程序或BIOS的程序码。相比之下,存储在闪速存储器108中的软件模块根据需要经受重新编程(刷新)。事实上,可以执行以下描述的重新编程方法来将新软件模块写入到闪速存储器108。RAM 106用作用于微处理器102的临时数据存储器。就此而言,微处理器102可以根据需要写入RAM 106和从其读取以支持ECU 100的操作。
输入/输出模块110可以通过软件、固件、硬件、处理逻辑或其任何组合来实现。输入/输出模块110可以负责收集传感器数据、发出控制命令或指令等。通信模块112也可以使用软件、固件、硬件、处理逻辑或其任何组合来实现。在某些示例性实施例中,通信模块112被适当地配置成支持ECU 100与其他模块、ECU或主车辆的车载设备之间的数据通信。通信模块112还可以被设计成支持与外部设备或源的数据通信。例如,通信模块112可以包括端口或接口或者与其合作,所述端口或接口适应与外部计算设备(诸如膝上型电脑或车辆诊断系统)的有线或无线连接。作为另一个实例,通信模块112可以支持蜂窝数据通信、卫星数据通信等。
如以上所提及,可以使用高效且快速重新编程方法来刷新ECU的闪速存储器元件。就此而言,图2是已经用现有的软件模块编程的闪速存储器元件200的图。对于此特定实例而言,将闪速存储器元件200划分成九个闪存扇区(描绘为水平布置的矩形),然而闪速存储器元件200的实施例在适用于特定应用、平台和ECU功能性的情况下可以包括任何数量的闪存扇区。图2中的浓阴影指示所有九个闪存扇区已经用程序码写入。如本文所使用,“闪存扇区”代表存储器的可擦部分。根据常规的闪速存储器技术,基于逐个扇区擦除数据;必须一起擦除闪存扇区中的所有存储器单元。在某些实施例中,将闪速存储器元件200划分成相同尺寸的闪存扇区(例如,每扇区8 kB、64 kB或256 kB)。在其他实施例中,可以将闪速存储器元件200划分成多于一个尺寸的闪存扇区。
取决于闪速存储器元件200的总容量、软件模块的个别尺寸以及可能的其他因素,可以用任何数量的软件模块(即,多段计算机可执行程序码)来编程闪速存储器元件200。在此描述的非限制性且简单的实例假定使用闪速存储器元件200来存储应用软件模块202、与应用软件模块202相关的第一程序校准模块204以及也与应用软件模块202相关的第二程序校准模块206。如图2中所描绘,应用软件模块202占据九个闪存扇区中的四个,第一程序校准模块204占据九个闪存扇区中的三个,并且第二程序校准模块206占据九个闪存扇区中的剩余两个。图2中所示的闪存扇区的特定布置和分配仅意欲用作一个简单实例。实际上,分配给每个软件模块的闪存扇区的数量可以根据需要改变,以适应模块的实际尺寸。因此,可以使用一个或多个闪存扇区来存储用于ECU的每个软件模块的程序码。
图3是在刷新操作期间的闪速存储器元件200的图,图4是在刷新操作接近结束时的闪速存储器元件200的图,并且图5是在刷新操作完成之后的闪速存储器元件200的图。以下将参照图7来更详细解释图2至5中所描绘的进程。
图6是示出与闪存重新编程操作相关的开始过程600的示例性实施例的流程图。结合过程600执行的各种任务可以由软件、硬件、固件或其任何组合来执行。过程600(或其部分)可以由ECU(例如,由引导装载程序)和/或由主车辆车载的另一个子系统或设备来执行。替代地,过程600中的一些或全部可以由主车辆外部的子系统或服务来执行,诸如外部计算设备、诊断设备或基于云的软件更新服务。应了解,过程600可以包括任何数量的额外或替代的任务,图6中所示的任务无需以所示次序执行,并且过程600可以被并入到具有本文未详细描述的额外功能性的更综合的程序或过程中。此外,可以从过程600的实施例省略图6中所示的任务中的一个或多个,只要预期的总功能性保持完整。
过程600假定闪速存储器已经被编程且因此具有存在于其闪存扇区的至少一些中的现有软件模块。根据此实例,过程600获得用于ECU的软件更新包(任务602)。更新包可以从任何授权的源获得,并且可以将其以任何实用的格式传递到ECU。例如,可以用无线电从外部源获得更新包以更新闪速存储器的现有软件图像。软件更新包含有以本文指定的方式重新编程闪速存储器所需的信息和数据。就此而言,软件更新包可以包括而不限于:目标ECU的标识符或地址;有待在一个或多个软件模块的德尔塔编程期间使用的至少一个德尔塔程序文件;以及有待在一个或多个软件模块的非德尔塔编程期间使用的新程序码。德尔塔程序文件(或多个德尔塔程序文件)代表当前存在虽闪速存储器中的现有组的软件模块(即,一个或多个模块)与那个组的软件模块的“更新的”或“新”版本之间的差异。特别地,(多个)德尔塔程序文件仅指代有待使用德尔塔编程技术来重新编程的那些软件模块。相比之下,额外的新程序码代表有待使用传统(非德尔塔)编程方法来重新编程的一组软件模块的“更新的”或“新”版本。因此,新程序码可以以其整体代表更新的软件模块,如压缩或非压缩图像。
应了解,为了更新应用软件和/或校准数据的目的,可以提供多个德尔塔程序文件。此外,可以使用传统的非德尔塔编程技术来编程任何数量的软件模块。例如,参照图2,可以使用单个德尔塔程序文件来更新应用软件模块202,并且可以使用多个德尔塔程序文件来更新(用于程序校准模块204的)闪存扇区220、222、224。类似地,可以使用一个或多个德尔塔程序文件来更新(用于校准模块206的)闪存扇区210、212。这些实例并非意欲限制或者以其他方式约束在此描述的技术。相反,可以灵活地设计过程600以便与传递机构无关地处理更新的软件内容。
过程600识别有待由德尔塔编程来编程的软件模块组(任务604)并且识别有待由非德尔塔编程来编程的软件模块组(任务606)。再次参照图2,在此描述的实例假定应用软件模块202和第一程序校准模块204将由德尔塔编程技术来刷新,并且第二程序校准模块206将由非德尔塔(传统)编程技术来刷新。过程600将闪速存储器的第一组扇区(即,一个或多个)分配用于德尔塔编程的目的,并且将闪速存储器的第二组扇区(即,一个或多个)分配用于非德尔塔编程(任务606)的目的。对于图2中所示的实例,将上面四个闪存扇区分配用于应用软件模块202的德尔塔编程;将第五、第六和第七个闪存扇区分配用于第一程序校准模块204的德尔塔编程;以及将下面两个闪存扇区分配用于第二程序校准模块206的非德尔塔编程。
结合扇区的分配(任务608),过程600还可以确定有待使用德尔塔编程技术来编程的最大扇区尺寸(任务610)。此确定对于使得过程600能够分配等于至少最大扇区尺寸的闪速存储器的量来用作临时备份存储空间而言是重要的。如果在闪速存储器中使用不同的扇区尺寸,则可能需要指定多于一个扇区来用作临时备份存储空间。此实际要求确保可以将最大扇区的现有(旧)内容保存在临时备份存储空间中作为德尔塔编程期间的故障安全措施。
以此方式,过程600分配并指定有待在非德尔塔编程期间使用的扇区中的至少一些作为临时备份存储空间(任务612)。对于图2中描绘的闪速存储器元件200而言,此实例将下面两个闪存扇区预订用作临时备份存储空间。换言之,将用于第二程序校准模块206的现有版本的扇区指定用作应用软件模块202和第一程序校准模块204的德尔塔编程期间的缓冲存储器。应理解,以上针对开始过程600所描述的任务中的一些或全部可以“自动地”或者以其他方式结合闪速存储器的重新编程来执行。在此为了便于理解和解释分配和利用闪存扇区的方式来描述过程600。
图7是示出闪存重新编程过程700的示例性实施例的流程图。结合过程700执行的各种任务可以由软件、硬件、固件或其任何组合来执行。过程700(或其部分)可以由ECU(例如,由引导装载程序)来执行以便用更新的或新的程序码替代现有程序码。应了解,过程700可以包括任何数量的额外或替代的任务,图7中所示的任务无需以所示次序执行,并且过程700可以被并入到具有本文未详细描述的额外功能性的更综合的程序或过程中。此外,可以从过程700的实施例省略图7中所示的任务中的一个或多个,只要预期的总功能性保持完整。
此实例假定需要用至少两个软件模块来刷新闪速存储器元件,从而使得可以使用德尔塔编程技术来刷新第一模块并且可以用传统的“完整程序码”方式来刷新第二模块。因此,过程700可以通过获得实现德尔塔编程阶段所需的德尔塔程序文件来开始(任务702)。如以上所提及,德尔塔程序文件可以用无线电下载、从外部计算设备获得等等。过程700可以通过开始第一软件模块的德尔塔编程来继续(任务704)。尽管用于编程第一软件模块的闪存扇区的特定位置在各实施例之间可以不同,但是图2至5中所示的实例为此目的使用上面四个闪存扇区。
为了支持故障安全编程操作,过程700将第一软件模块的现有版本的程序码中的至少一些保存或复制到已经被指定用作临时备份存储空间的闪存扇区(任务706)。此外,使用德尔塔程序文件来重新编程分配给第一软件模块的扇区(任务708)。参照图3,在德尔塔编程阶段期间将两个闪存扇区210、212用作临时备份存储空间。因此,从闪存扇区210、212擦除第二程序校准模块206的原始版本。根据在此描述的示例性实施例,德尔塔编程是以逐扇区为基础执行。因此,一个闪存扇区中的现有内容(用于被刷新的软件模块的程序码)在那个闪存扇区被擦除并用新程序码重新编程之前,被复制到临时备份存储空间。此故障安全技术确保以可恢复形式保存用于每个闪存扇区的旧程序码。在成功地刷新扇区之后,可以根据需要擦除临时备份存储空间的内容。
图3是在已经将应用软件模块202成功地重新编程为应用软件模块202'(撇符号指示刷新后的版本)的新版本之后的闪速存储器元件200的图。如以上所提及,根据需要使用德尔塔程序文件和临时备份存储空间将应用软件模块202每次重新编程一个扇区。图3描绘当第一程序校准模块204的现有版本仍存在于三个闪存扇区220、222、224中时的时间瞬间。
返回参照图7,如果完成德尔塔编程阶段(即,询问任务710的“是”分支),则过程700继续到非德尔塔编程阶段。然而,如果更多软件模块有待使用德尔塔编程技术来刷新(即,询问任务710的“否”分支),则过程700可以返回到任务704以便用以上描述的方式来开始和执行对下一个软件模块的德尔塔编程。此实例假定根据需要重复德尔塔编程直到已经刷新指定用于德尔塔编程的所有软件模块。就此而言,图4示出在第一程序校准模块204已经被成功地重新编程为第一程序校准模块204'的新版本之后的闪速存储器元件200。在图4中描绘的时间点,两个闪存扇区210、212可以没有内容(即,被擦除)或者它们可以含有在上一次德尔塔编程迭代期间保存的备份程序码。换言之,闪存扇区210、212尚未由所需的新程序码来重新编程。
在完成德尔塔编程阶段之后,过程700获得用于刷新一个或多个最终软件模块的新程序码(例如,压缩文件或非压缩文件)(任务712)。此实例假定仅一个软件模块保持用于非德尔塔编程,即,第二程序校准模块206(参见图2)。与用于德尔塔编程的德尔塔程序文件相比,所获得的程序码文件是完整地定义(多个)最终软件模块所需的软件的全版本。过程700可以通过开始上一个软件模块的非德尔塔编程来继续(任务714)。尽管用于编程上一个软件模块的闪存扇区的特定位置在各实施例之间可以不同,但是图2至5中所示的实例为此目的使用最下面的闪存扇区。
根据非德尔塔刷新技术,用实施上一个软件模块的新的程序码来编程已经用作临时备份存储空间的闪存扇区(任务716)。不需要为了故障安全目的复制新的程序码,因为使用传统的非德尔塔方法来将新的程序码写入到闪速存储器中。对于在此呈现的实例而言,现有或旧的程序码(先前存储在闪存扇区210、212中)由用于第二程序校准模块的程序码替代。图5示出在第二程序校准模块206已经被成功地重新编程为第二程序校准模块206'的新版本之后的闪速存储器元件200。图5描绘在成功刷新之后的闪速存储器元件200。特别地,下面两个闪存扇区不再需要或用作临时备份存储器,因为已经执行了德尔塔编程阶段。因此,下面两个闪存扇区现在含有与第二程序校准模块相关的程序码。
以上呈现的实例假定在非德尔塔编程阶段之前执行和完成德尔塔编程阶段。然而,在某些实施例中,可以用不同的方式来重新编程闪速存储器元件。例如,在一些情况下可能需要在开始德尔塔编程阶段之前用传统方式刷新一个或多个模块。作为另一个实例,可能需要在多个德尔塔和非德尔塔编程阶段之间进行交替,以非德尔塔编程阶段结束。本公开预期这些和其他变体。
虽然在以上详细描述中呈现至少一个示例性实施例,但是应了解,存在大量变体。还应了解,本文描述的示例性实施例或多个示例性实施例并不意欲以任何方式限制所要求的主题的范围、适用性或配置。相反,以上详细描述将为本领域技术人员提供用于实施所描述的实施例或多个实施例的方便的指导说明。应理解,在不脱离由权利要求定义的范围的情况下,可以对元件的功能和布置进行各种改变,权利要求定义的范围包括在提交此专利申请时已知的等效物和可预见的等效物。
Claims (12)
1.一种用软件内容来重新编程计算设备的闪速存储器的方法,所述软件内容包括多个软件模块,所述方法包括:
从所述多个软件模块识别有待通过德尔塔编程来编程的第一组软件模块和有待通过非德尔塔编程来编程的第二组软件模块;
将闪速存储器的第一组扇区分配用于通过德尔塔编程用第一组软件模块重新编程,并且将闪速存储器的第二组扇区分配用于通过非德尔塔编程用第二组软件模块重新编程,其中,所述第一组扇区和所述第二组扇区中的每一者均已编程有现有软件模块;
确定第一组扇区的最大扇区尺寸;以及将第二组扇区中的至少一些指定为临时备份存储空间,其中所述指定包括将等于至少最大扇区尺寸的闪速存储器的量用作临时备份存储空间;
将第一组扇区中的现有软件模块的至少一些程序码保存到指定的临时备份存储空间;
在复制之后,使用德尔塔编程和使用指定的临时备份存储空间以用第一组软件模块重新编程第一组扇区,从而在第一组扇区的重新编程期间以可恢复形式保存现有软件模块的复制的程序码;以及
在重新编程第一组扇区之后,使用非德尔塔编程用第二组软件模块来重新编程第二组扇区,其中,重新编程第二组扇区用代表第二组软件模块的新程序码来替代第二组扇区中的现有程序码。
2.如权利要求1所述的方法,其进一步包括:
获得德尔塔程序文件,德尔塔程序文件代表第一组扇区中的现有组的软件模块与第一组软件模块之间的差异,其中重新编程第一组扇区使用德尔塔程序文件。
3.如权利要求1所述的方法,其中:
计算设备是车辆的电子控制单元;以及
多个软件模块包括应用软件模块和与应用软件模块相关的程序校准模块。
4.一种有形且永久的计算机可读介质,所述计算机可读介质具有存储在其上并且在由处理器执行时能够执行方法的计算机可执行指令,所述方法包括:
从多个软件模块识别有待通过德尔塔编程来编程到闪速存储器中的第一组软件模块和有待通过非德尔塔编程来编程到闪速存储器中的第二组软件模块;
将闪速存储器的第一组扇区分配用于通过德尔塔编程用第一组软件模块重新编程,并且将闪速存储器的第二组扇区分配用于通过非德尔塔编程用第二组软件模块重新编程,其中,所述第一组扇区和所述第二组扇区中的每一者均已编程有现有软件模块;
确定第一组扇区的最大扇区尺寸;以及
将第二组扇区中的至少一些指定为临时备份存储空间,其中所述指定包括将等于至少最大扇区尺寸的闪速存储器的量用作临时备份存储空间;
将第一组扇区中的现有软件模块的至少一些程序码保存到指定的临时备份存储空间;
在复制之后,使用德尔塔编程和使用指定的临时备份存储空间以用第一组软件模块编程第一组扇区,从而在第一组扇区的重新编程期间以可恢复形式保存现有软件模块的复制的程序码;以及
在重新编程第一组扇区之后,使用非德尔塔编程用第二组软件模块来重新编程第二组扇区,其中,重新编程第二组扇区用代表第二组软件模块的新程序码来替代第二组扇区中的现有程序码。
5.如权利要求4所述的计算机可读介质,其中由计算机可执行指令执行的方法进一步包括:
获得德尔塔程序文件,德尔塔程序文件代表第一组扇区中的现有组的软件模块与第一组软件模块之间的差异,其中重新编程第一组扇区使用德尔塔程序文件。
6.如权利要求4所述的计算机可读介质,其中多个软件模块包括应用软件模块和与应用软件模块相关的程序校准模块。
7.一种用于车辆的电子控制单元,所述电子控制单元包括:
具有至少一个处理器设备的处理器架构;
存储代表多个软件模块的程序码的闪速存储器;以及
计算机可读介质,计算机可读介质具有存储在其上的计算机可执行指令,在由处理器架构执行时,指令使得电子控制单元:
用第一软件模块和第二软件模块来开始闪速存储器的重新编程;
获得与第一软件模块相关的德尔塔程序文件;
将闪速存储器的第一组扇区分配用于通过德尔塔编程用第一软件模块重新编程,并且将闪速存储器的第二组扇区分配用于通过非德尔塔编程用第二软件模块重新编程,其中,所述第一组扇区和所述第二组扇区中的每一者均已编程有现有软件模块;
确定第一组扇区的最大扇区尺寸;以及
将第二组扇区中的至少一些指定为临时备份存储空间,其中所述指定包括将等于至少最大扇区尺寸的闪速存储器的量用作临时备份存储空间;
将第一组扇区中的现有软件模块的程序码复制到临时备份存储空间;
在复制之后,使用德尔塔程序文件并且使用作为临时备份存储空间的第二组扇区用第一软件模块来德尔塔编程闪速存储器的第一组扇区,从而在第一组扇区的重新编程期间以可恢复形式保存现有软件模块的复制的程序码;以及
在德尔塔编程第一组扇区之后,使用非德尔塔编程用第二组软件模块来编程第二组扇区,其中,重新编程第二组扇区用代表第二软件模块的新程序码来替代现有软件模块的程序码。
8.如权利要求7所述的电子控制单元,其中:
第一软件模块包括应用软件模块;以及
第二软件模块包括与应用软件模块相关的校准模块。
9.如权利要求7所述的电子控制单元,其中德尔塔程序文件是从外部源获得以更新闪速存储器的现有软件图像。
10.如权利要求9所述的电子控制单元,其中德尔塔程序文件代表现有软件图像与第一软件模块之间的差异。
11.如权利要求7所述的电子控制单元,其中计算机可执行指令使得电子控制单元:
获得以其整体代表第二软件模块的程序码,其中在非德尔塔编程期间使用程序码。
12.如权利要求11所述的电子控制单元,其中获得的程序码包括压缩图像区。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/338,193 US9430220B2 (en) | 2014-07-22 | 2014-07-22 | Method, medium, and apparatus for re-programming flash memory of a computing device |
US14/338193 | 2014-07-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105302475A CN105302475A (zh) | 2016-02-03 |
CN105302475B true CN105302475B (zh) | 2018-11-09 |
Family
ID=55065646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510432886.1A Active CN105302475B (zh) | 2014-07-22 | 2015-07-22 | 高效的闪存编程 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9430220B2 (zh) |
CN (1) | CN105302475B (zh) |
DE (1) | DE102015110710A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170286082A1 (en) * | 2016-03-31 | 2017-10-05 | Microsoft Technology Licensing, Llc | De-duplication during flashing of mobile devices |
JP2017204227A (ja) * | 2016-05-13 | 2017-11-16 | 住友電気工業株式会社 | 車載制御装置、制御方法及びコンピュータプログラム |
DE102016115792A1 (de) | 2016-08-25 | 2018-03-01 | Visteon Global Technologies, Inc. | Verfahren zur Übertragung einer Differenz-Datei |
KR20180086907A (ko) * | 2017-01-24 | 2018-08-01 | 삼성전기주식회사 | 차량용 블랙박스의 펌웨어 업데이트 시스템 및 방법 |
US11263001B2 (en) * | 2017-03-24 | 2022-03-01 | Hitachi Astemo, Ltd. | Car onboard control device and program updating software |
US10353696B2 (en) | 2017-04-13 | 2019-07-16 | Blackberry Limited | Program release packages including program updates |
DE102017209104A1 (de) * | 2017-05-31 | 2018-12-06 | Robert Bosch Gmbh | Verfahren zum Verwalten einer Steuerungssoftware eines Bremssystems eines Fahrzeugs, Hydrauliksystem für ein Bremssystem eines Fahrzeugs und Verfahren zum Herstellen desselben |
WO2019021064A1 (en) | 2017-07-25 | 2019-01-31 | Aurora Labs Ltd | CONSTRUCTION OF SOFTWARE DELTA UPDATES FOR VEHICLE ECU SOFTWARE AND TOOL-BASED ANOMALY DETECTION |
CN111052075B (zh) * | 2017-08-30 | 2021-10-01 | 华为技术有限公司 | 提高在位固件更新稳健性的方法及装置 |
US10834207B2 (en) * | 2018-02-27 | 2020-11-10 | Excelfore Corporation | System and method for updating software in an electronic device |
EP3908947A1 (en) | 2019-03-25 | 2021-11-17 | Aurora Labs Ltd | Generating and signing a line-of-code behavior and relation model |
KR20220028879A (ko) * | 2020-08-31 | 2022-03-08 | 현대자동차주식회사 | 차량의 ecu 업데이트 관리 장치 및 그 방법 |
CN113867210B (zh) * | 2021-09-29 | 2024-04-05 | 中国科学院长春光学精密机械与物理研究所 | 多路星载嵌入式系统软件在轨重构控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1878366A (zh) * | 2005-06-09 | 2006-12-13 | 乐金电子(中国)研究开发中心有限公司 | 移动电话的固件升级方法 |
US7877562B2 (en) * | 2005-06-13 | 2011-01-25 | Tdk Corporation | Memory controller, flash memory system, and control method of flash memory |
US8296535B2 (en) * | 2005-12-20 | 2012-10-23 | Telefonaktiebolaget L M Ericsson (Publ) | Generating incremental program updates |
WO2014062869A1 (en) * | 2012-10-17 | 2014-04-24 | Movimento Group | Module updating device |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4956777A (en) * | 1988-06-09 | 1990-09-11 | R. J. Reynolds Tobacco Company | Automatic vehicle control system |
US5901330A (en) * | 1997-03-13 | 1999-05-04 | Macronix International Co., Ltd. | In-circuit programming architecture with ROM and flash memory |
JP3932654B2 (ja) * | 1998-03-10 | 2007-06-20 | 株式会社デンソー | 車両用制御装置及び車両制御システム |
TW368626B (en) * | 1998-04-17 | 1999-09-01 | Winbond Electronics Corp | Microprocessor with self-programmed embedded flash memory and programming method |
SE0000533D0 (sv) * | 2000-02-18 | 2000-02-18 | Ericsson Telefon Ab L M | Static cache |
US6775423B2 (en) * | 2000-05-03 | 2004-08-10 | Microsoft Corporation | Systems and methods for incrementally updating an image in flash memory |
US6505105B2 (en) * | 2001-01-05 | 2003-01-07 | Delphi Technologies, Inc. | Electronic control unit calibration |
US7058788B2 (en) * | 2001-02-23 | 2006-06-06 | Falconstor Software, Inc. | Dynamic allocation of computer memory |
US6772276B2 (en) * | 2002-01-04 | 2004-08-03 | Intel Corporation | Flash memory command abstraction |
WO2004031961A1 (en) * | 2002-09-30 | 2004-04-15 | Insignia Solutions Plc | Efficient system and method for updating a memory device |
US7096311B2 (en) * | 2002-09-30 | 2006-08-22 | Innopath Software, Inc. | Updating electronic files using byte-level file differencing and updating algorithms |
US7047128B2 (en) | 2002-12-12 | 2006-05-16 | Rtk Technologies Limited | Chipped engine control unit system having copy protected and selectable multiple control programs |
US7155324B2 (en) | 2003-06-10 | 2006-12-26 | General Motors Corporation | Apparatus and method for programming motor vehicle electronic control units |
US7536536B1 (en) * | 2003-12-15 | 2009-05-19 | American Megatrends, Inc. | Method, system, and computer readable medium for updating and utilizing the contents of a non-essential region of a memory device |
US7366589B2 (en) | 2004-05-13 | 2008-04-29 | General Motors Corporation | Method and system for remote reflash |
US7979404B2 (en) * | 2004-09-17 | 2011-07-12 | Quest Software, Inc. | Extracting data changes and storing data history to allow for instantaneous access to and reconstruction of any point-in-time data |
DE102005001430A1 (de) * | 2004-09-30 | 2006-04-13 | Robert Bosch Gmbh | Verfahren zur Beschreibung von Speicherinhalten und zur Beschreibung des Transfers von Speicherinhalten |
DE102004050882A1 (de) * | 2004-10-19 | 2006-05-04 | Siemens Ag | Adapter zum Nachflashen von Steuergerätesoftware |
EP1679573B1 (en) * | 2005-01-07 | 2007-06-27 | Telefonaktiebolaget LM Ericsson (publ) | Updating memory contents of a processing device |
EP1755034B1 (en) * | 2005-08-18 | 2017-01-18 | Telefonaktiebolaget LM Ericsson (publ) | Object code generation for increasing the performance of delta files |
WO2007026393A1 (ja) * | 2005-08-30 | 2007-03-08 | Spansion Llc | 半導体装置およびその制御方法 |
JP4240496B2 (ja) * | 2005-10-04 | 2009-03-18 | インターナショナル・ビジネス・マシーンズ・コーポレーション | アクセス制御のための装置および方法 |
US7631162B2 (en) * | 2005-10-27 | 2009-12-08 | Sandisck Corporation | Non-volatile memory with adaptive handling of data writes |
US20070185624A1 (en) * | 2006-02-07 | 2007-08-09 | General Motors Corporation | Method for remote reprogramming of vehicle flash memory |
US8001385B2 (en) * | 2006-06-21 | 2011-08-16 | Intel Corporation | Method and apparatus for flash updates with secure flash |
US8656040B1 (en) * | 2007-05-21 | 2014-02-18 | Amazon Technologies, Inc. | Providing user-supplied items to a user device |
US7818403B2 (en) | 2007-09-17 | 2010-10-19 | Gm Global Technology Operations, Inc. | System for using non-standard transfer protocol from software received at client device for exchanging data with in-vehicle communications gateway |
US7886141B2 (en) * | 2007-10-27 | 2011-02-08 | Asix Electronics Corporation | Method and systems for advanced reprogrammable boot codes and in-application programming of embedded microprocessor systems |
US20090113166A1 (en) * | 2007-10-31 | 2009-04-30 | Agere Systems Inc. | Hashing method for nand flash memory |
US8339865B2 (en) * | 2007-11-01 | 2012-12-25 | Spansion Israel Ltd | Non binary flash array architecture and method of operation |
JP2009230407A (ja) * | 2008-03-21 | 2009-10-08 | Toshiba Corp | データの更新方法、メモリシステムおよびメモリデバイス |
US8688313B2 (en) * | 2010-12-23 | 2014-04-01 | Aes Technologies, Llc. | Remote vehicle programming system and method |
US8683206B2 (en) | 2011-09-19 | 2014-03-25 | GM Global Technology Operations LLC | System and method of authenticating multiple files using a detached digital signature |
KR101360705B1 (ko) * | 2011-09-22 | 2014-02-07 | 기아자동차주식회사 | 차량 업그레이드 시스템 및 그 방법 |
US8930710B2 (en) * | 2011-10-28 | 2015-01-06 | GM Global Technology Operations LLC | Using a manifest to record presence of valid software and calibration |
US20130111212A1 (en) | 2011-10-28 | 2013-05-02 | GM Global Technology Operations LLC | Methods to provide digital signature to secure flash programming function |
US8856538B2 (en) | 2012-07-27 | 2014-10-07 | GM Global Technology Operations LLC | Secured flash programming of secondary processor |
US8978160B2 (en) | 2012-09-12 | 2015-03-10 | GM Global Technology Operations LLC | Method for selective software rollback |
US20140075517A1 (en) | 2012-09-12 | 2014-03-13 | GM Global Technology Operations LLC | Authorization scheme to enable special privilege mode in a secure electronic control unit |
US20140075094A1 (en) | 2012-09-12 | 2014-03-13 | GM Global Technology Operations LLC | Method to implement a binary flag in flash memory |
US9727453B2 (en) * | 2013-03-14 | 2017-08-08 | Sandisk Technologies Llc | Multi-level table deltas |
US9371792B2 (en) * | 2013-06-27 | 2016-06-21 | Hondata, Inc. | Active tuning system for engine control unit |
US9274900B2 (en) * | 2013-12-03 | 2016-03-01 | Samsung Electronics Co., Ltd. | Method and apparatus for updating firmware |
-
2014
- 2014-07-22 US US14/338,193 patent/US9430220B2/en active Active
-
2015
- 2015-07-02 DE DE102015110710.4A patent/DE102015110710A1/de active Pending
- 2015-07-22 CN CN201510432886.1A patent/CN105302475B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1878366A (zh) * | 2005-06-09 | 2006-12-13 | 乐金电子(中国)研究开发中心有限公司 | 移动电话的固件升级方法 |
US7877562B2 (en) * | 2005-06-13 | 2011-01-25 | Tdk Corporation | Memory controller, flash memory system, and control method of flash memory |
US8296535B2 (en) * | 2005-12-20 | 2012-10-23 | Telefonaktiebolaget L M Ericsson (Publ) | Generating incremental program updates |
WO2014062869A1 (en) * | 2012-10-17 | 2014-04-24 | Movimento Group | Module updating device |
Also Published As
Publication number | Publication date |
---|---|
CN105302475A (zh) | 2016-02-03 |
DE102015110710A1 (de) | 2016-01-28 |
US20160026458A1 (en) | 2016-01-28 |
US9430220B2 (en) | 2016-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105302475B (zh) | 高效的闪存编程 | |
US8726262B2 (en) | Firmware update system and information apparatus, and program | |
JP6832374B2 (ja) | ソフトウェア更新装置、車両及びソフトウェア更新方法 | |
CN110244958B (zh) | 用于更新车辆的标定数据的方法和装置 | |
CN100538658C (zh) | 存储器系统和系统控制模块 | |
EP3200077A1 (en) | Vehicle control device, reprogramming system | |
US8229892B2 (en) | Storage apparatus and data restoring method used therein | |
CN103999059B (zh) | 将存储在非易失性可重写存储器和机动车辆的计算器中的信息擦除的方法 | |
US11263001B2 (en) | Car onboard control device and program updating software | |
CN105009096A (zh) | 数据存储装置、数据的存储方法以及车载用控制装置 | |
US11449329B2 (en) | Vehicle control device and program update system | |
JP2018160207A (ja) | 車載制御装置、及び、プログラム更新ソフトウェア | |
CN103339603B (zh) | 计算机重新编程方法、数据存储介质和机动车辆计算机 | |
CN112052032A (zh) | 电子控制单元的刷写方法及装置 | |
CN103680626A (zh) | 用于在闪存中实现二进制标志的方法 | |
CN115658389A (zh) | 一种航空软件启动时的非易失存储区访问处理方法和装置 | |
CN108664355B (zh) | 备份系统及其备份方法 | |
CN111241008B (zh) | 用于校正eeprom变量与地址的方法、装置和控制器 | |
US9240243B2 (en) | Managing of the erasing of operative pages of a flash memory device through service pages | |
US20060156297A1 (en) | Method and device for modifying software in a control unit and corresponding control unit | |
WO2020241473A1 (ja) | 演算処理装置、車両制御装置及び更新方法 | |
WO2023175752A1 (ja) | 車載プログラム更新システム、車載プログラム更新方法 | |
US9390005B2 (en) | Method for reading a data block of a nonvolatile memory of a control unit | |
US8010737B2 (en) | Method and device for reorganizing data in a memory system, in particular for control devices in motor vehicles | |
JP2023070929A (ja) | 電子制御システム、ソフトウェアパッケージのデータ構造及びコンピュータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |