CN110795129B - 一种数据刷写方法、装置和设备 - Google Patents

一种数据刷写方法、装置和设备 Download PDF

Info

Publication number
CN110795129B
CN110795129B CN201911066090.3A CN201911066090A CN110795129B CN 110795129 B CN110795129 B CN 110795129B CN 201911066090 A CN201911066090 A CN 201911066090A CN 110795129 B CN110795129 B CN 110795129B
Authority
CN
China
Prior art keywords
sector
refreshed
application program
target
refreshing
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
Application number
CN201911066090.3A
Other languages
English (en)
Other versions
CN110795129A (zh
Inventor
张明龙
宋程楠
陈文杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sungrow Power Supply Co Ltd
Original Assignee
Sungrow Power Supply Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sungrow Power Supply Co Ltd filed Critical Sungrow Power Supply Co Ltd
Priority to CN201911066090.3A priority Critical patent/CN110795129B/zh
Publication of CN110795129A publication Critical patent/CN110795129A/zh
Application granted granted Critical
Publication of CN110795129B publication Critical patent/CN110795129B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种数据刷写方法、装置和设备,方法包括:获取所述目标应用程序所对应的各个扇区的校验码,记为目标校验码;获取待刷写应用程序所对应的各个扇区的校验码,记为待刷写校验码;遍历各个扇区并比较属于同一扇区的所述目标校验码和所述待刷写校验码,得到所述目标校验码和所述待刷写校验码不同的扇区,记为待刷写扇区;获取所述目标应用程序中属于所述待刷写扇区的空间数据,记为刷写数据;依据所述刷写数据刷写所述待刷写应用程序中隶属于所述待刷写扇区的空间数据,本申请提供的数据刷写过程中,无需对所述待刷写应用程序进行整体刷写,因此刷写过程用时较短,刷写效率高、速度快。

Description

一种数据刷写方法、装置和设备
技术领域
本发明涉及数据处理技术领域,具体涉及一种数据刷写方法、装置和设备。
背景技术
在向目标器件更新程序时,需要对该程序更新的过程即为数据刷写的过程,数据刷写速度通常受波特率、负载率以及进行数据交互的网关的吞吐量限制,刷写过程中,数据交互速率较慢,刷写时间较长,如何提升数据刷写效率为本领域技术人员亟待解决的技术问题之一。
发明内容
有鉴于此,本发明实施例提供一种数据刷写方法、装置和设备,以提交在更新应用软件时,数据刷写的效率。
为实现上述目的,本发明实施例提供如下技术方案:
一种数据刷写方法,包括:
获取目标应用程序所对应的各个扇区的校验码,记为目标校验码;
获取待刷写应用程序所对应的各个扇区的校验码,记为待刷写校验码;
遍历各个扇区并比较属于同一扇区的所述目标校验码和所述待刷写校验码,得到所述目标校验码和所述待刷写校验码不同的扇区,记为待刷写扇区;
获取所述目标应用程序中属于所述待刷写扇区的空间数据,记为刷写数据;
依据所述刷写数据刷写所述待刷写应用程序中隶属于所述待刷写扇区的空间数据。
可选的,上述数据刷写方法中,所述获取所述目标应用程序所对应的各个扇区的校验码之前,还包括:
获取所述目标应用程序的烧录文件;
依据所述烧录文件生成与所述目标应用程序相匹配的各个扇区的校验码。
可选的,上述数据刷写方法中,所述获取目标应用程序所对应的各个扇区的校验码具体包括:
获取所述待刷写应用程序的版本标识;
判断所述待刷写应用程序的版本标识是否属于有效标识;
当所述待刷写应用程序的版本标识属于无效标识时,依据所述目标应用程序对所述待刷写应用程序进行整体刷写;
当判断所述待刷写应用程序的版本标识属于有效标识时,获取要进行数据刷写的所述目标应用程序对应的各个扇区的校验码。
可选的,上述数据刷写方法中,依据所述刷写数据刷写所述待刷写应用程序中隶属于所述待刷写扇区的空间数据,包括:
由待刷写扇区标识集合中,提取一个待刷写扇区标识,将与提取的待刷写扇区标识所对应的扇区记为目标刷写扇区;
获取所述目标应用程序中隶属于所述目标刷写扇区的空间数据,依据所述隶属于所述目标刷写扇区的空间数据对所述待刷写应用程序对应的目标刷写扇区中的空间数据进行刷写;
判断所述目标刷写扇区是否刷写完成,如果未完成,继续等待,如果完成,继续由待刷写扇区标识集合中,提取另一个待刷写扇区标识,直至所述所有的待刷写扇区标识所对应的待刷写扇区全部刷写完成。
可选的,上述数据刷写方法中,所述判定所述目标刷写扇区是否刷写完成之后,继续由待刷写扇区标识集合中,提取另一个待刷写扇区标识之前,还包括:
对刷写完成的目标刷写扇区的扇区数据进行一致性校验,当校验通过时,继续执行,当校验未通过时,再次获取所述目标应用程序中隶属于所述目标刷写扇区的空间数据,依据所述隶属于所述目标刷写扇区的空间数据对所述待刷写应用程序对应的目标刷写扇区中的空间数据进行刷写。
可选的,上述数据刷写方法中,依据所述刷写数据刷写所述待刷写应用程序中隶属于所述待刷写扇区的空间数据之后,还包括:
对刷写完成后的待刷写应用程序进行完整性校验,并输出完整性校验的校验结果。
一种数据刷写装置,包括:
校验码采集单元,用于获取目标应用程序所对应的各个扇区的校验码,记为目标校验码;获取待刷写应用程序所对应的各个扇区的校验码,记为待刷写校验码;
待刷写扇区识别单元,用于遍历各个扇区并比较属于同一扇区的所述目标校验码和所述待刷写校验码,得到所述目标校验码和所述待刷写校验码不同的扇区,记为待刷写扇区;
刷写单元,用于获取所述目标应用程序中属于所述待刷写扇区的空间数据,记为刷写数据;依据所述刷写数据刷写所述待刷写应用程序中隶属于所述待刷写扇区的空间数据。
可选的,上述数据刷写装置中,还包括:
程序预存单元,用于获取所述目标应用程序的烧录文件;依据所述烧录文件生成与所述目标应用程序相匹配的各个扇区的校验码。
可选的,上述数据刷写装置中,还包括:
所述校验码采集单元,具体用于:
用于获取所述待刷写应用程序的版本标识;判断所述待刷写应用程序的版本标识是否属于有效标识;当所述待刷写应用程序的版本标识属于无效标识时,依据所述目标应用程序对所述待刷写应用程序进行整体刷写当所述校验码采集单元判断所述待刷写应用程序的版本标识属于有效标识时,获取要进行数据刷写的所述目标应用程序对应的各个扇区的校验码。
可选的,上述数据刷写装置中,所述刷写单元依据所述刷写数据刷写所述待刷写应用程序中隶属于所述待刷写扇区的空间数据时,具体用于:
由待刷写扇区标识集合中,提取一个待刷写扇区标识,将与提取的待刷写扇区标识所对应的扇区记为目标刷写扇区;
获取所述目标应用程序中隶属于所述目标刷写扇区的空间数据,依据所述隶属于所述目标刷写扇区的空间数据对所述待刷写应用程序对应的目标刷写扇区中的空间数据进行刷写;
判断所述目标刷写扇区是否刷写完成,如果未完成,继续等待,如果完成,继续由待刷写扇区标识集合中,提取另一个待刷写扇区标识,直至所述所有的待刷写扇区标识所对应的待刷写扇区全部刷写完成。
可选的,上述数据刷写装置中,所述刷写单元判定所述目标刷写扇区刷写完成之后,继续由待刷写扇区标识集合中,提取另一个待刷写扇区标识之前,还用于:
对刷写完成的目标刷写扇区的扇区数据进行一致性校验,当校验通过时,继续执行,当校验未通过时,再次获取所述目标应用程序中隶属于所述目标刷写扇区的空间数据,依据所述隶属于所述目标刷写扇区的空间数据对所述待刷写应用程序对应的目标刷写扇区中的空间数据进行刷写。
可选的,上述数据刷写装置中,所述刷写单元依据所述刷写数据刷写所述待刷写应用程序中隶属于所述待刷写扇区的空间数据之后,所述刷写单元还用于:
对刷写完成后的待刷写应用程序进行完整性校验,并输出完整性校验的校验结果。
一种数据刷写设备,应用有上述任意一项所述的数据刷写装置。
基于上述技术方案,本发明实施例提供的上述方案,在刷写应用程序时,预先获取目标应用程序以及待刷写应用程序所对应的各个扇区的校验码,遍历各个扇区并比较属于同一扇区的所述目标校验码和所述待刷写校验码,将所述目标校验码和所述待刷写校验码不同的扇区记为待刷写扇区,依据所述目标应用程序对应的待刷写扇区中的空间数据对所述待刷写应用程序所对应的待刷写扇区中的空间数据进行刷写,可见,本申请实施例提供的数据刷写过程中,无需对所述待刷写应用程序进行整体刷写,因此刷写过程用时较短,刷写效率高、速度快。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例公开的一种数据刷写方法的流程示意图;
图2为本申请实施例公开的一种数据刷写方法中待刷写应用程序的版本标识的有效性判断方法流程示意图;
图3为本申请实施例公开的一种数据刷写方法中对每个待刷写扇区进行数据刷写的流程示意图;
图4为本申请另一实施例公开的一种数据刷写方法中对每个待刷写扇区进行数据刷写的流程示意图;
图5为本申请实施例公开的一种数据刷写装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中,所需要刷写的应用程序通常存储在控制器芯片的FLASH(闪存)中,所述控制器芯片的FLASH的扇区大小通常为由256个大小为2K的扇区组成的512K的存储空间。
所述控制芯片内存储的应用数据,以程序类型划分,可划分为引导加载程序和应用程序,所述引导加载程序负责执行刷写时的“扇区擦除-下载-校验”系列流程,刷写更新应用程序。所述引导加载程序和所述应用程序在所述FLASH中都具有特定的扇区,即,一些特定的扇区用于存储所述引导加载程序,一些特定的扇区用于存储所述用程序,例如,设定FLASH中0-19扇区存储所述引导加载程序,20-255扇区用于存储所述应用程序,进一步的,还可以继续对所述20-255扇区内的应用程序依据类型进行进一步划分,将其划分为启动程序、常量及代码以及配置数据,将在将所述启动程序、所述常量及代码以及所述配置数据分别配置到20-255扇区中的特定扇区中,例如,所述20-255扇区中的20扇区作为启动区用于存储所述启动程序,所述20-255扇区中的21-200扇区作为常量及代码区用于存储所述常量及代码,所述20-255扇区中的201-255扇区作为配置数据区用于存储所述配置数据,假设,所述FLASH内存储的应用程序需要由1.0版本升级到2.0版本,而2.0版本相比于1.0版本,优化了常量及代码区中的若干函数,导致了其中的181-200扇区中的空间数据发生了变化。此时,可以仅对所述181-200扇区中的空间数据进行刷写,而无需对所述FLASH内存储的所有数据进行刷写,由于数据刷写量较小,因此能够快速完成目标程序的版本升级,刷写速度快。
为了更直观的比较本申请公开的技术方案的刷写速度与现有技术中公开的技术方案的刷写速度,申请人仍以上述举例为例,对两者的刷写速度进行对比,具体请参见表1。
表1
在表1中,正常刷写过程指的是现有技术中的刷写过程,所述增量刷写过程为本申请实施例公开的对特定扇区进行刷写的刷写过程,由表1可见,正常刷写过程需要刷写扇区20-扇区255,共计236个扇区,数据刷写总量为472Kbytes,整个过程估计耗时为90秒(当然,所述90秒为一个特定的刷写环境下所用的时间,而非是任意一个刷写环境下所用的刷写时间),而本申请提供的增量刷写过程需要刷写扇区181-扇区200,共计20个扇区,数据刷写总量为40Kbytes,整个过程估计耗时为15秒,明显可见,本申请提供的技术方案的刷写过程的耗时明显低于现有技术中刷写过程的耗时。
下面,对本申请所提供的数据刷写方法的刷写过程进行具体介绍,参见图1,本方法包括:
步骤S101:获取目标应用程序所对应的各个扇区的校验码,记为目标校验码;
在本步骤中,所述目标应用程序,指的是所要向目标控制芯片所加载的新的应用程序。在本方案中,可以先将所述目标应用程序的烧录文件加载到刷写设备中,所述烧录文件指的是所述目标应用程序的文本内容,所述烧录文件的类型可以为HEX文件、S19文件、bin文件等,其由下发所述目标应用程序的设备输出的数据类型而定,在获取所述目标应用程序的烧录文件时,可以通过有线方式获取,例如以太网、USB口U盘等多种方式导入等,也可以通过无线方式获取,如4G网络、无线wifi等导入等。所述刷写设备对烧录文件中的数据内容进行分类后,得到所述目标应用程序的应用程序,将这些数据加载到所述刷写设备的RAM中,当所述些数据加载到所述刷写设备的RAM中以后,所述刷写设备可自动对这些数据进行分析得到这些数据各个对应的各个扇区以及各个扇区对应的校验码。
所述校验码为基于新的应用程序所对应的各个扇区的内容生成的校验码,该扇区存储的空间数据不同,所生成的该扇区的校验码也就不同,因此,可以通过判断各个扇区所对应的校验码是否相同的方式,来判断对应扇区的数据是否发生变化,具体的,在计算扇区的校验码时,可以通过计算各个扇区的循环冗余校验码(Cyclic Redundancy Check,简称CRC)的方式,循环冗余校验是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误,它是利用除法及余数的原理来作错误侦测的,因此,在本方案中,可以直接将各个扇区所对应的循环冗余校验码作为该扇区的校验码,在本方案中,可以将计算得到的目标应用程序所对应的各个扇区的校验码存储在特定文件中,具体的,在存储所述校验码时,可以将所述校验码与所述目标程序的版本信息仪器存储在特定文件中,以便下一次进行应用程序刷写时直接调用。
步骤S102:获取待刷写应用程序所对应的各个扇区的校验码,记为待刷写校验码;
在本步骤中,所述待刷写应用程序指的是需要进行数据刷写的存储设备中存储的已由的需要更新的应用程序,所述存储设备可以指的是现有技术中任意一种存储设备,例如,其可以为车载控制器,或者是其他设备的控制器。
在本步骤中,在获取所述各个扇区的校验码时,可以直接基于待刷写应用程序所对应的各个扇区的空间数据计算得到每个扇区的扇区校验码,也可以直接调取预存的该待刷写应用程序对应的各个扇区的校验码。
步骤S103:遍历各个扇区并比较属于同一扇区的所述目标校验码和所述待刷写校验码,得到所述目标校验码和所述待刷写校验码不同的扇区,记为待刷写扇区;
本步骤中,遍历所述目标应用程序所对应的各个扇区的校验码以及待刷写应用程序所对应的各个扇区的校验码,将属于同一扇区的两个校验码进行比较,判断两者是否相同,如果相同,则表明,所述待刷写应用程序中该扇区内的空间数据与所述目标应用程序中属于该扇区的空间数据相同,该扇区不需要进行数据刷写,如果,上述遍历过程中,属于同一扇区的两个校验码不同,则表明所述待刷写应用程序所对应的该部分扇区内容需要进行刷写,此时,将该扇区标记为待刷写扇区,遍历各个扇区校验码得到所有的待刷写扇区。
步骤S104:获取所述目标应用程序中属于所述待刷写扇区的空间数据,记为刷写数据;
在本步骤中,所述待刷写扇区确定以后,获取所述目标应用程序的隶属于该待刷写扇区的空间数据,这些输入需要由刷写设备导入被刷写的存储设备中,将这些数据标记为刷写数据;
步骤S105:依据所述刷写数据刷写所述待刷写应用程序中隶属于所述待刷写扇区的空间数据;
本步骤在获取到所述待刷写扇区对应的刷写数据时,通过所述刷写设备将各个扇区对应的刷写数据刷写进所述存储设备中对应的各个扇区中,从而实现待刷写程序的增量更新,其中,在刷写过程中,可以每得到一个待刷写扇区的刷写数据时,直接对该待刷写扇区进行数据刷写,也可以在获取到所有的待刷写扇区的刷写数据时,再统一对所有的待刷写扇区进行数据刷写;
具体的,以通过实际场景对本步骤进行说明:
刷写设备向存储设备(例如,可以为车载控制器)发起差异扇区k(某一个待刷写扇区)擦除-扇区数据下载请求,所述存储设备执行下载过程,该过程可以在UDS协议(UDS协议即ISO14229,即,Unified Diagnostic Services,统一诊断服务)中以诊断设备与存储设备的众多的服务请求-服务响应完成的,存储设备的类型不同,其请求相应的服务请求的服务编号也就不同,例如,以车载控制器为例,包括$31服务请求-响应、$34服务请求-响应、多组$36服务请求-响应、$37服务请求-响应等多个服务按照特定序列执行完成的,各个服务请求的具体内容以及其执行过程均为现有技术方案,在此不再进行过多说明。
由上述方案可见,需要刷写程序时,预先获取目标应用程序以及待刷写应用程序所对应的各个扇区的校验码,遍历各个扇区并比较属于同一扇区的所述目标校验码和所述待刷写校验码,将所述目标校验码和所述待刷写校验码不同的扇区记为待刷写扇区,依据所述目标应用程序对应的待刷写扇区中的空间数据对所述待刷写应用程序所对应的待刷写扇区中的空间数据进行刷写,可见,本申请实施例提供的数据刷写过程中,无需对所述待刷写应用程序进行整体刷写,因此刷写过程用时较短,刷写效率高、速度快。
进一步的,在本申请上述实施例公开的技术方案中,所述获取目标应用程序所对应的各个扇区的校验码时,可以预先对所述待刷写应用程序的版本号进行分析,判断所述待刷写应用程序的版本号是否有效,当有效时,执行本申请实施例公开的后续方案,如果版本号无效,则可直接采用现有技术中整体刷写的方式对所述待刷写应用程序进行刷写。对此,本申请上述实施例公开的技术方案中,所述获取目标应用程序所对应的各个扇区的校验码时,具体可以包括:
步骤S201:获取所述待刷写应用程序的版本标识;
在本步骤中,刷写设备读取待刷写存储设备中存储的待刷写应用程序的应用程序软件版本号m,所述软件版本号记为所述版本标识,具体可以通过UDS协议(UnifiedDiagnostic Services,即统一诊断服务,目前最新标准见ISO14229-1:2013)中的$22服务-DID_0xF195读取所述存储设备中待刷写应用程序的软件版本号。倘若所述存储设备中没有对应的目标应用程序,则由预设的引导加载程序响应相应$22服务,此时,所述目标应用程序的软件版本号默认为全0x00。
步骤S202:判断所述待刷写应用程序的版本标识是否属于有效标识,当所述待刷写应用程序的版本标识属于无效标识时,执行步骤S203,当所述待刷写应用程序的版本标识属于有效标识时,执行步骤S204;
在本步骤中,通过分析已读取的所述待刷写程序的软件版本号,判断该软件版本号是否有效,若所述软件版本号有效则必须要满足以下条件:①、软件版本号m不为全0x00,由上文描述可知,全0x00表示车载控制器中无有效的目标应用程序,②、软件版本号m在所述存储设备中对应有详细的扇区校验码数据,即,所述待刷写应用程序所对应的各个扇区的扇区校验码是已知的。因为如果刷写设备中没有所述待刷写的软件版本号m的烧录文件,则,所述刷写设备中也就没有与所述待刷写程序所对应的扇区校验码,需要采用现有技术中的整体刷写的方式进行刷写。
步骤S203:依据所述目标应用程序对所述待刷写应用程序进行整体刷写,当所述版本标识属于有效标识时,执行步骤S101;
步骤S204:获取要进行数据刷写的所述目标应用程序对应的各个扇区的校验码。
当然,在本申请公开的技术方案中依据所述目标应用程序对所述待刷写应用程序进行整体刷写时,可以将所述目标应用程序所对应的各个扇区的扇区校验码和版本信息写入所述待刷写设备或存储设备中,优选的,将所述扇区校验码和版本信息写入所述待刷写设备中,以便于下一次刷写时采用本申请实施例公开的增量刷写的方式进行数据刷写。
由上述方案可知,在本申请上述实施例公开的技术方案中,在对所述待刷写程序进行刷写时,先判断所述待刷写程序的版本标识是否有效,如果有效,则执行本申请实施例公开的增量刷写的刷写过程,否则,执行现有技术中整体刷写的刷写过程,从而能够依据具体情况选择合适的数据刷写方式。
参见图3,在本申请实施例公开的技术方案中,依据所述刷写数据刷写所述待刷写应用程序中隶属于所述待刷写扇区的空间数据的具体过程可以包括:
步骤S301:将所述待刷写扇区标识导入待刷写扇区标识集合中;
在本步骤中,可以预先建立一个集合,每确定一个待刷写扇区,则将所述待刷写扇区对应的待刷写扇区标识导入该集合中;
步骤S302:提取一个待刷写扇区标识,将与提取的待刷写扇区标识所对应的扇区记为目标刷写扇区;
在本步骤中,当扇区遍历完成且将所有待刷写扇区的待刷写扇区标识导入所述待刷写扇区标识集合以后,依据预设规则,由所述待刷写扇区标识集合中调取一个待刷写扇区标识,将与提取的待刷写扇区标识所对应的扇区记为本次要进行数据刷写的目标刷写扇区;其中,所述预设规则可以依据用户需求自行设定,例如,在本申请实施例公开的技术方案中,可以选择待刷写扇区标识集合中数值最小的待刷写扇区标识所对应的扇区作为所述目标刷写扇区;
步骤S303:获取所述目标应用程序中隶属于所述目标刷写扇区的空间数据,依据所述隶属于所述目标刷写扇区的空间数据对所述待刷写应用程序对应的目标刷写扇区中的空间数据进行刷写;
步骤S304:判断所述目标刷写扇区是否刷写完成,如果是,执行步骤S305;
步骤S305:判断所述待刷写扇区标识集合中是否存在剩余待刷写扇区标识,如果判断结果为是,返回步骤S302,继续由待刷写扇区标识集合中,提取另一个待刷写扇区标识,并执行后续步骤S303-S304,直至所述所有的待刷写扇区标识所对应的待刷写扇区全部刷写完成,否则表明刷写完成。
进一步的,在本申请实施例公开的技术方案中,当所有待刷写扇区均刷写完成以后,可以将所述待刷写应用程序的版本标识配置为所述目标应用程序的版本标识。
在本申请实施例公开的技术方案中,为了保证每次刷写的刷写数据的可靠性,在对每一个扇区完成刷写以后,可以直接对该扇区的扇区数据进行一次数据校验,具体的,参见图4,上述方法中,判定所述目标刷写扇区刷写完成之后,继续由待刷写扇区标识集合中,提取另一个待刷写扇区标识之前,还包括:
步骤S401:对刷写完成的目标刷写扇区的扇区数据进行一致性校验,当校验通过时,继续执行步骤S305,当校验未通过时,再次执行步骤S303,获取所述目标应用程序中隶属于所述目标刷写扇区的空间数据,依据所述隶属于所述目标刷写扇区的空间数据对所述待刷写应用程序对应的目标刷写扇区中的空间数据重新进行刷写。该过程可以称之为扇区数据一致性校验过程,在具体实施时,当所述刷写设备检测到一次扇区刷写动作完成以后,向所述存储设备发起$31服务请求,存储设备执行该请求。具体的$31服务请求的示例可以为:0x31+0x01+0x****RoutineId+0x44+MemoryStartAddress+MemorySize+Crc32_0x********,其中,所述0x31用于表示服务ID,所述0x01用于表示启动例程子功能码,所述0x****用于标识一致性校验例程ID,不同整车厂的0x****的定义各不相同,但都为16位数据,所述0x44用于表示长度及地址格式,所述0x********用于表示校验码,示例为32位数据,可定义为8位或16位或32位数据。上述举例中,服务ID、子功能码、例程ID之外均可以由UDS协议查找得到,当然,也可以依据用户需求自行设置所述服务ID、子功能码、例程ID的格式。总之,本过程的重点在于对比刷写设备中存储的待刷写扇区对应的扇区校验码,与所述存储设备依据于已经完成下载的相应扇区数据计算出的扇区校验码,是否一致,进而判断扇区数据是否一致,在执行本步骤时,所述存储设备在每完成一次待刷写扇区的刷写动作以后,可以基于刷写完成后的对应扇区中的空间数据进行计算得到对应的扇区校验码,此时,该扇区校验码并非直接由所述刷写设备获取的扇区校验码。
进一步的,为了防止在一致性校验时由于校验不通过而导致刷写过程锁死,上述方案中,当某个刷写完成的目标刷写扇区的扇区数据一致性校验未通过时,执行以下动作:
步骤S402:与进行校验的目标刷写扇区相匹配的校验计数值加1,执行步骤S403;
步骤S403:判断与所述目标刷写扇区相匹配的校验计数值是否达到预设校验值,当所述校验计数值达到预设校验值时,执行步骤S404,当所述校验计数值没有达到预设校验值时,执行步骤S303;
步骤S404:输出用于表征刷写失败的提示信息,结束刷写流程。其中,所述预设校验值的大小可以依据用户需求自行设定,例如,所述校验计数值的初始值为0,所述预设校验值可以为3或4等正整数值。
进一步的,为了保证所述存储设备中刷写后的应用程序的完整性,本申请上述实施例公开的技术方案中,还可以对所述待刷写扇区全部刷写完成后的待刷写应用程序进行数据完整性校验,判断校验是否通过,当校验通过时,则表明所述待刷写应用程序中的待刷写扇区已经被全部正确刷写,如果校验成功,则结束流程,当校验未通过时,可直接对故障原因进行分析,输出分析结果,当然,也可以再次尝试对对所述待刷写应用程序的数据进行重新刷写,即,重新执行步骤S105,对所述待刷写应用程序对应的待刷写扇区中的空间数据进行刷写,如果重新刷写后,再次进行数据完整性校验时,校验结果仍然表示失败,则对故障原因进行分析,输出分析结果。具体的,在数据完整性校验时,该过程可以是刷写设备向所述存储设备发起$31服务请求,存储设备在执行该服务请求,以用于检查所述存储设备刚完成刷写的应用程序是否所有的扇区数据都正确更新了。
综上,由上述实施例公开的数据刷写方法可见,本申请实施例公开的技术方案,仅会对待刷写数据中部分扇区的数据进行刷写,在相同网络通讯速度的基础上,本申请实施例公开的技术方案的数据刷写速度明显要高于现有技术中对所述待刷写程序进行整体刷写的技术方案。并且在对所述存储设备中存储的数据进行升级时,仅刷写存储设备中部分扇区的数据,因此,降低了所述存储设备中各个扇区的整体擦除-刷写的次数,节省了flash擦写寿命,使得所述存储设备的使用寿命得到了延长。
本实施例中公开了一种数据刷写装置,该数据刷写装置中各个单元的具体工作内容,请参见上述方法实施例的内容,下面对本发明实施例提供的数据刷写装置进行描述,下文描述的数据刷写装置与上文描述的数据刷写装置可相互对应参照。
参见图5,本申请实施例公开的数据刷写装置,可以包括:
校验码采集单元100,其与上述方法中步骤S101-步骤S102相对应,用于获取所述目标应用程序所对应的各个扇区的校验码,记为目标校验码;获取待刷写应用程序所对应的各个扇区的校验码,记为待刷写校验码;
待刷写扇区识别单元200,其与上述方法中步骤S103相对应,用于遍历各个扇区并比较属于同一扇区的所述目标校验码和所述待刷写校验码,得到所述目标校验码和所述待刷写校验码不同的扇区,记为待刷写扇区;
刷写单元300,其与上述方法中步骤S104-步骤S105相对应,用于获取所述目标应用程序中属于所述待刷写扇区的空间数据,记为刷写数据;依据所述刷写数据刷写所述待刷写应用程序中隶属于所述待刷写扇区的空间数据。
本申请上述各个单元中各个动作的具体执行过程请参见对应步骤的方法介绍,在此不再进行过多的说明。
本申请实施例提供的上述装置,在对存储设备进行数据刷写时,由校验码采集单元100预先获取目标应用程序以及待刷写应用程序所对应的各个扇区的校验码,再由待刷写扇区识别单元200遍历各个扇区并比较属于同一扇区的所述目标校验码和所述待刷写校验码,将所述目标校验码和所述待刷写校验码不同的扇区记为待刷写扇区,最后由刷写单元300依据所述目标应用程序对应的待刷写扇区中的空间数据对所述待刷写应用程序所对应的待刷写扇区中的空间数据进行刷写,可见,本申请实施例提供的数据刷写过程中,数据刷写量较少,无需对所述待刷写应用程序进行整体刷写,因此刷写过程用时较短,刷写效率高、速度快。
与上述方法相对应,上述装置中还包括:
程序预存单元,用于获取所述目标应用程序的烧录文件;依据所述烧录文件生成与所述目标应用程序相匹配的各个扇区的校验码。
与上述方法中图2对应的实施例相对应,所述校验码采集单元具体用于:获取所述待刷写应用程序的版本标识;判断所述待刷写应用程序的版本标识是否属于有效标识;当所述待刷写应用程序的版本标识属于无效标识时,依据所述目标应用程序对所述待刷写应用程序进行整体刷写;当所述校验码采集单元判断所述待刷写应用程序的版本标识属于有效标识时,获取要进行数据刷写的所述目标应用程序对应的各个扇区的校验码。
与上述方法中图3对应的实施例相对应,所述刷写单元依据所述刷写数据刷写所述待刷写应用程序中隶属于所述待刷写扇区的空间数据时,具体用于:
由待刷写扇区标识集合中,提取一个待刷写扇区标识,将与提取的待刷写扇区标识所对应的扇区记为目标刷写扇区;
获取所述目标应用程序中隶属于所述目标刷写扇区的空间数据,依据所述隶属于所述目标刷写扇区的空间数据对所述待刷写应用程序对应的目标刷写扇区中的空间数据进行刷写;
判断所述目标刷写扇区是否刷写完成,如果是,继续由待刷写扇区标识集合中,提取另一个待刷写扇区标识,直至所述所有的待刷写扇区标识所对应的待刷写扇区全部刷写完成。
与上述方法相对应,所述刷写单元所述刷写单元在判定所述目标刷写扇区刷写完成之后,继续由待刷写扇区标识集合中,提取另一个待刷写扇区标识之前,还用于:
对刷写完成的目标刷写扇区的扇区数据进行一致性校验,当校验通过时,继续执行,当校验未通过时,再次获取所述目标应用程序中隶属于所述目标刷写扇区的空间数据,依据所述隶属于所述目标刷写扇区的空间数据对所述待刷写应用程序对应的目标刷写扇区中的空间数据进行刷写。
为了保证所述存储设备中刷写后的应用程序的完整性,本申请上述实施例公开的技术方案中,所述刷写单元还可以对所述待刷写扇区全部刷写完成后的待刷写应用程序进行数据完整性校验,如果校验成功,则结束流程,当校验未通过时,可直接对故障原因进行分析,输出分析结果,当然,也可以再次尝试对对所述待刷写应用程序的数据进行重新刷写,即,所述刷写单元重新执行动作“依据所述刷写数据刷写所述待刷写应用程序中隶属于所述待刷写扇区的空间数据”如果重新刷写后,再次进行数据完整性校验时,校验结果仍然表示失败,则对故障原因进行分析,输出分析结果。对应于上述方法,本申请还公开了一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本申请上述任意一项实施例所述的数据刷写方法中的步骤。
对应于上述刷写装置,本申请还公开了一种数据刷写设备,所述数据刷写设备应用有本申请上述任意一项实施例所述的数据刷写装置,具体的,所述数据刷写装置为用于对车载控制器进行刷写的数据刷写装置。
为了描述的方便,描述以上系统时以功能分为各种模块分别描述。当然,在实施本发明时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (13)

1.一种数据刷写方法,其特征在于,包括:
获取目标应用程序所对应的各个扇区的校验码,记为目标校验码;
获取待刷写应用程序所对应的各个扇区的校验码,记为待刷写校验码;
遍历各个扇区并比较属于同一扇区的所述目标校验码和所述待刷写校验码,得到所述目标校验码和所述待刷写校验码不同的扇区,记为待刷写扇区;
获取所述目标应用程序中属于所述待刷写扇区的空间数据,记为刷写数据;
依据所述刷写数据刷写所述待刷写应用程序中隶属于所述待刷写扇区的空间数据。
2.根据权利要求1所述的数据刷写方法,其特征在于,所述获取目标应用程序所对应的各个扇区的校验码之前,还包括:
获取所述目标应用程序的烧录文件;
依据所述烧录文件生成与所述目标应用程序相匹配的各个扇区的校验码。
3.根据权利要求1所述的数据刷写方法,其特征在于,所述获取目标应用程序所对应的各个扇区的校验码具体包括:
获取所述待刷写应用程序的版本标识;
判断所述待刷写应用程序的版本标识是否属于有效标识;
当所述待刷写应用程序的版本标识属于无效标识时,依据所述目标应用程序对所述待刷写应用程序进行整体刷写;
当判断所述待刷写应用程序的版本标识属于有效标识时,获取要进行数据刷写的所述目标应用程序对应的各个扇区的校验码。
4.根据权利要求1所述的数据刷写方法,其特征在于,依据所述刷写数据刷写所述待刷写应用程序中隶属于所述待刷写扇区的空间数据,包括:
由待刷写扇区标识集合中,提取一个待刷写扇区标识,将与提取的待刷写扇区标识所对应的扇区记为目标刷写扇区,所述目标刷写扇区即为本次要刷写的待刷写扇区;
获取所述目标应用程序中隶属于所述目标刷写扇区的空间数据,依据所述隶属于所述目标刷写扇区的空间数据对所述待刷写应用程序对应的目标刷写扇区中的空间数据进行刷写;
判断所述目标刷写扇区是否刷写完成,如果未完成,继续等待,如果完成,继续由待刷写扇区标识集合中,提取另一个待刷写扇区标识,直至所有的待刷写扇区标识所对应的待刷写扇区全部刷写完成。
5.根据权利要求4所述的数据刷写方法,其特征在于,所述判定所述目标刷写扇区刷写完成之后,继续由待刷写扇区标识集合中,提取另一个待刷写扇区标识之前,还包括:
对刷写完成的目标刷写扇区的扇区数据进行一致性校验,当校验通过时,继续执行,当校验未通过时,再次获取所述目标应用程序中隶属于所述目标刷写扇区的空间数据,依据所述隶属于所述目标刷写扇区的空间数据对所述待刷写应用程序对应的目标刷写扇区中的空间数据进行刷写。
6.根据权利要求4所述的数据刷写方法,其特征在于,依据所述刷写数据刷写所述待刷写应用程序中隶属于所述待刷写扇区的空间数据之后,还包括:
对刷写完成后的待刷写应用程序进行完整性校验,并输出完整性校验的校验结果。
7.一种数据刷写装置,其特征在于,包括:
校验码采集单元,用于获取目标应用程序所对应的各个扇区的校验码,记为目标校验码;获取待刷写应用程序所对应的各个扇区的校验码,记为待刷写校验码;
待刷写扇区识别单元,用于遍历各个扇区并比较属于同一扇区的所述目标校验码和所述待刷写校验码,得到所述目标校验码和所述待刷写校验码不同的扇区,记为待刷写扇区;
刷写单元,用于获取所述目标应用程序中属于所述待刷写扇区的空间数据,记为刷写数据;依据所述刷写数据刷写所述待刷写应用程序中隶属于所述待刷写扇区的空间数据。
8.根据权利要求7所述的数据刷写装置,其特征在于,还包括:
程序预存单元,用于获取所述目标应用程序的烧录文件;依据所述烧录文件生成与所述目标应用程序相匹配的各个扇区的校验码。
9.根据权利要求7所述的数据刷写装置,其特征在于,
所述校验码采集单元,具体用于:
获取所述待刷写应用程序的版本标识;判断所述待刷写应用程序的版本标识是否属于有效标识;当所述待刷写应用程序的版本标识属于无效标识时,依据所述目标应用程序对所述待刷写应用程序进行整体刷写;
当所述校验码采集单元判断所述待刷写应用程序的版本标识属于有效标识时,获取要进行数据刷写的所述目标应用程序对应的各个扇区的校验码。
10.根据权利要求7所述的数据刷写装置,其特征在于,所述刷写单元依据所述刷写数据刷写所述待刷写应用程序中隶属于所述待刷写扇区的空间数据时,具体用于:
由待刷写扇区标识集合中,提取一个待刷写扇区标识,将与提取的待刷写扇区标识所对应的扇区记为目标刷写扇区;
获取所述目标应用程序中隶属于所述目标刷写扇区的空间数据,依据所述隶属于所述目标刷写扇区的空间数据对所述待刷写应用程序对应的目标刷写扇区中的空间数据进行刷写;
判断所述目标刷写扇区是否刷写完成,如果未完成,继续等待,如果完成,继续由待刷写扇区标识集合中,提取另一个待刷写扇区标识,直至所有的待刷写扇区标识所对应的待刷写扇区全部刷写完成。
11.根据权利要求10所述的数据刷写装置,其特征在于,所述刷写单元在判定所述目标刷写扇区刷写完成之后,继续由待刷写扇区标识集合中,提取另一个待刷写扇区标识之前,还用于:
对刷写完成的目标刷写扇区的扇区数据进行一致性校验,当校验通过时,继续执行,当校验未通过时,再次获取所述目标应用程序中隶属于所述目标刷写扇区的空间数据,依据所述隶属于所述目标刷写扇区的空间数据对所述待刷写应用程序对应的目标刷写扇区中的空间数据进行刷写。
12.根据权利要求10所述的数据刷写装置,其特征在于,所述刷写单元依据所述刷写数据刷写所述待刷写应用程序中隶属于所述待刷写扇区的空间数据之后,所述刷写单元还用于:
对刷写完成后的待刷写应用程序进行完整性校验,并输出完整性校验的校验结果。
13.一种数据刷写设备,其特征在于,应用有权利要求7至12任意一项所述的数据刷写装置。
CN201911066090.3A 2019-11-04 2019-11-04 一种数据刷写方法、装置和设备 Active CN110795129B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911066090.3A CN110795129B (zh) 2019-11-04 2019-11-04 一种数据刷写方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911066090.3A CN110795129B (zh) 2019-11-04 2019-11-04 一种数据刷写方法、装置和设备

Publications (2)

Publication Number Publication Date
CN110795129A CN110795129A (zh) 2020-02-14
CN110795129B true CN110795129B (zh) 2023-11-07

Family

ID=69442532

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911066090.3A Active CN110795129B (zh) 2019-11-04 2019-11-04 一种数据刷写方法、装置和设备

Country Status (1)

Country Link
CN (1) CN110795129B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111580844B (zh) * 2020-05-09 2024-02-02 上海航天电子通讯设备研究所 支持在轨动态更新的软硬件协同的应用程序维护方法
CN114398914A (zh) * 2021-12-27 2022-04-26 北京万集科技股份有限公司 一种用于检测电子标签的故障的方法和相关产品

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018076569A1 (zh) * 2016-10-27 2018-05-03 深圳市元征科技股份有限公司 基于行车电脑的程序刷写方法及装置
CN109684236A (zh) * 2018-12-25 2019-04-26 广东浪潮大数据研究有限公司 一种数据写缓存控制方法、装置、电子设备和存储介质
CN110244972A (zh) * 2019-06-20 2019-09-17 阳光电源股份有限公司 一种控制器刷新方法及诊断设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018076569A1 (zh) * 2016-10-27 2018-05-03 深圳市元征科技股份有限公司 基于行车电脑的程序刷写方法及装置
CN109684236A (zh) * 2018-12-25 2019-04-26 广东浪潮大数据研究有限公司 一种数据写缓存控制方法、装置、电子设备和存储介质
CN110244972A (zh) * 2019-06-20 2019-09-17 阳光电源股份有限公司 一种控制器刷新方法及诊断设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
吴进军 ; 方继根 ; 王西峰 ; 赵锦涛 ; 李晨风 ; 谢志鹏 ; .基于CAN总线的新能源汽车ECU控制器程序刷写系统设计.机电产品开发与创新.2018,(第02期),全文. *

Also Published As

Publication number Publication date
CN110795129A (zh) 2020-02-14

Similar Documents

Publication Publication Date Title
CN108829593B (zh) 代码覆盖率计算分析方法、装置、设备及存储介质
CN103646208B (zh) 一种eMMC的监控方法及装置
CN108491321B (zh) 测试用例范围确定方法、装置及存储介质
CN110795129B (zh) 一种数据刷写方法、装置和设备
CN110543420B (zh) 一种软件测试方法、系统、终端及存储介质
CN106033322B (zh) 一种数据存储方法及装置
CN110750434A (zh) 接口测试方法、装置、电子设备和计算机可读存储介质
CN114356218B (zh) Flash存储器的数据纠错方法、设备以及介质
CN114047968B (zh) 一种硬件自动适配的方法、系统、存储介质及设备
CN108196975B (zh) 基于多校验和的数据验证方法、装置及存储介质
JP2014026347A (ja) 監視装置、コンピュータプログラム及び監視方法
CN114816832B (zh) 一种单片机的数据管理方法、装置以及系统
CN112052032A (zh) 电子控制单元的刷写方法及装置
CN111459496A (zh) 一种防篡改的程序文件的生成方法、设备的升级方法
CN107783778B (zh) 一种基于特征值查表法的增量升级方法
CN116383021A (zh) 软件包性能的测试方法、系统、计算设备及可读存储介质
CN113326046B (zh) 获取编译时长的方法和装置
CN114428700A (zh) 一种内存自检方法及装置
CN114077545A (zh) 验证数据的获取方法、装置、设备及可读存储介质
CN111352825B (zh) 数据接口的测试方法、装置及服务器
CN108200060B (zh) 基于web子系统的单点登录验证方法、服务器及存储介质
CN113820649A (zh) 一种电能表固件的寿命可靠性测试方法和装置
CN110990265B (zh) 一种覆盖率确定方法、装置及存储介质
CN110471829A (zh) 软件代码测试覆盖率的检查方法及装置
CN111310172B (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