一种单片机固件升级方法技术

技术编号:28295052 阅读:25 留言:0更新日期:2021-04-30 16:18
本发明专利技术提供一种单片机固件升级方法,该方法包括:按源文件中程序功能将源文件拆分为多个独立文件;对拆分后新旧版本源文件进行差分比对,抽取有差异文件打包成升级文件;根据升级文件信息依次对单片机上存在差异文件部分进行差分升级。通过该方案可以缩短单片机固件升级时间,提高升级效率,实现可靠高效的单片机软件升级。

【技术实现步骤摘要】
一种单片机固件升级方法
本专利技术涉及单片机领域,尤其涉及一种单片机固件升级方法。
技术介绍
随着技术的发展,单片机等电子产品具有更多的可变性和扩展性。为满足单片机等产品不但升级更新需求,需要对单片机固件进行软件升级。传统的升级方法是将源文件重新写入到固件中,实现单片机升级,然而这样单片机固件升级时间较长,对于复杂软件或大批量单片机升级而言尤为明显。
技术实现思路
有鉴于此,本专利技术实施例提供了一种的单片机固件升级方法,以解决现有单片机升级时间较长的问题。在本专利技术实施例的第一方面,提供了一种单片机固件升级方法,包括:按源文件中程序功能将源文件拆分为多个独立文件;其中,文件大小根据单片机所支持Flash最小擦除大小及代码段、数据段的规划大小确定,拆分文件数量根据软件功能模块数量确定;对拆分后新旧版本源文件进行差分比对,抽取有差异文件打包成升级文件;根据升级文件信息依次对单片机上存在差异文件部分进行差分升级。在一个实施例中,按源文件中程序功能将程序划分到一个或多个段中,每个段为单片机所支持Flash最小擦除大小的整数倍。在一个实施例中,在片外ROM整体最后一个段中或每个段中预留CRCCODE区域,用于对片外ROM整体或每个段中数据进行校验检查。在一个实施例中,获取升级文件信息,所述升级文件信息至少包括升级文件中BlOCK数量、各BLOCK起始地址、各BLOCK空间大小和数据是否加密;根据各BLOCK起始地址和空间大小、源文件是否为空文件,判断升级文件是否有效;擦除各BLOCK对应的存储区域,并请求差异文件写入;单片机将接收到的差异文件数据写入对应的ROM地址,并退出数据传输进程,通知单片机传输完成;检查传输的差异文件是否有误,若没有错误则将CRCCODE写入到预留的CRCCODE区域,若有错误则将进行重试或执行异常流程;判断差异文件是否全部升级完成,若未完成则继续进行差异文件对应存储区域的擦除写入及写入文件检查。本专利技术实施例中,通过将源文件按功能拆分为多个独立文件,抽取有差异文件打包成升级文件,根据升级文件信息依次对单片机上有差异文件部分进行差分升级。从而解决了传统单片机固件升级方法升级时间较长的问题,可以有效缩短单片机固件升级时间,提高升级效率。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见地,下面描述的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获取其他附图。图1为本专利技术的一个实施例提供的一种单片机固件升级方法的流程示意图;图2为本专利技术的一个实施例提供的片外ROM数据规划示意图;图3为本专利技术的一个实施例提供的差分源文件提取示意图;图4为本专利技术的一个实施例提供的单片机源文件差分升级流程示意图。具体实施方式为使得本专利技术的专利技术目的、特征、优点能够更加的明显和易懂,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本专利技术一部分实施例,而非全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。本专利技术的说明书或权利要求书及上述附图中的术语“包括”以及其他相近意思表述,意指覆盖不排他的包含,如包含一系列步骤或单元的过程、方法或系统、设备没有限定于已列出的步骤或单元。请参阅图1,图1为本专利技术实施例提供的一种单片机固件升级方法的流程示意图,包括:S101、按源文件中程序功能将源文件拆分为多个独立文件;具体的,对程序的代码段、数据段等进行规划,按照程序功能进行划分,将不同功能划分到不同段中,从而保障程序某一功能变化后,编译得到的源文件数据变化限定在某一个段或某几个段内,不会引起整体段数据的变化。其中,文件大小根据单片机所支持Flash最小擦除大小及代码段、数据段的规划大小确定,拆分文件数量根据软件功能模块数量确定。需要说明的是,段分配空间的大小由程序功能的复杂程度决定,功能越复杂,段空间越大,即按源文件中程序功能将程序划分到一个或多个段中,每个段为单片机所支持Flash最小擦除(写入)大小的整数倍。优选的,为每个段空间或特定的段空间预留一定大小的余量(即空余存储空间),便于软件后期的功能扩展。优选的,在片外ROM整体最后一个段中或每个段中预留CRCCODE区域,用于对片外ROM整体或每个段中数据进行校验检查。CRC用于对一块物理存储区内的数据进行校验检查。在附图2中片外ROM整体的CRCCODE存储在最后一个段中,也可以设计成每个段都预留各自独立的CRCCODE空间。在一个实施例中,如图2所示,提供了片外ROM的规划示意图,当片外ROM空间大小为128MB,则依据程序的不同功能,将其划分为如图2中所示的若干段,其中,SOFT_VER_AREA段用于存放CRCCODE、软件版本等特殊信息。S102、对拆分后新旧版本源文件进行差分比对,抽取有差异文件打包成升级文件;对拆分后的新、旧版本的源文件进行差分确认(可使用差分工具),抽取有差异的源文件打包成升级文件。对于不同的升级平台,采用的打包方法可能相同或不同。在一个实施例汇总,对于源文件中差分文件的提取打包如图3所示,通过新旧版本源文件的差分比对,确认有变化的差异文件(即BLOCK),抽取有差异文件打包。得到升级文件,以对单片机固件进行升级。S103、根据升级文件信息依次对单片机上存在差异文件部分进行差分升级。具体的,在一个实施例中,如图4所示,差分升级过程如下:S1031、获取升级文件信息,信息包括升级文件中BLOCK数量、各BLOCK的起始地址,各BLOCK的空间大小,数据是否加密等。S1032、判断升级文件的信息是否有效,具体根据BLOCK的起始地址是否是在合适的范围之内,通过起始地址+大小判断结束地址是否在合适的范围之内,以及起始地址和大小是否是单片机所支持的最小擦除(写入)大小的整数倍、源文件是否为空文件等判断。S1033、擦除BLOCK对应的空间,S1032中判定BLOCK的起始地址和大小满足条件之后,则擦除该区域。S1034、请求开始数据传输,S1033正常结束之后,通知单片机准备开始数据传输,将传输的起始地址和大小,以及数据是否加密等信息传递给单片机。S1035、数据传输/写入,单片机将接收到的数据写入到对应的ROM地址。如果数据是加密传输的,接收到的数据解密之后再进行写入。S1036、请求退出数据传输,通知单片机数据已传输完成。S1037、基于CRCCheck检查传输的数据是否有错误,如果没本文档来自技高网...

【技术保护点】
1.一种单片机固件升级方法,其特征在于,包括:/n按源文件中程序功能将源文件拆分为多个独立文件;/n其中,文件大小根据单片机所支持Flash最小擦除大小及代码段、数据段的规划大小确定,拆分文件数量根据软件功能模块数量确定;/n对拆分后新旧版本源文件进行差分比对,抽取有差异文件打包成升级文件;/n根据升级文件信息依次对单片机上存在差异文件部分进行差分升级。/n

【技术特征摘要】
1.一种单片机固件升级方法,其特征在于,包括:
按源文件中程序功能将源文件拆分为多个独立文件;
其中,文件大小根据单片机所支持Flash最小擦除大小及代码段、数据段的规划大小确定,拆分文件数量根据软件功能模块数量确定;
对拆分后新旧版本源文件进行差分比对,抽取有差异文件打包成升级文件;
根据升级文件信息依次对单片机上存在差异文件部分进行差分升级。


2.根据权利要求1所述的方法,其特征在于,所述按源文件中程序功能将源文件拆分为多个独立文件包括:
按源文件中程序功能将程序划分到一个或多个段中,每个段为单片机所支持Flash最小擦除大小的整数倍。


3.根据权利要求2所述的方法,其特征在于,所述按源文件中程序功能将程序划分到一个或多个段中还包括:
在片外ROM整体最后一个段中或每个段中预留CRCCODE区域,用...

【专利技术属性】
技术研发人员:王军德杨锐刘高强郑斌
申请(专利权)人:武汉光庭信息技术股份有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1