基于低速通讯接口的程序升级方法及系统与流程

文档序号:33399134发布日期:2023-03-08 15:23阅读:31来源:国知局
基于低速通讯接口的程序升级方法及系统与流程

1.本发明涉及数字通信领域,尤其是基于低速通讯接口的程序升级方法及系统。


背景技术:

2.在工程车辆仪表等终端产品使用时,由于客户要求或者软件漏洞等原因需要对产品进行升级。需要通过总线连接t-box至外网,或者通过连接外部总线进行程序升级。
3.在一些通讯接口速率低的使用场景,如低速率串口、can总线等。整个程序可能大到几mb以上,现有的工程车辆仪表的程序更新往往是程序的全部更新,而速率太低会让整个程序更新过程高达数分钟,这是客户难以接受的,并且很容易造成更新失败率的提高。而工程仪表程序升级时,程序的改动往往很小,全部更新显然是不合适的。


技术实现要素:

4.本发明的目的就是为了解决现有技术中存在的上述问题,提供一种基于低速通讯接口的程序升级方法及系统。
5.本发明的目的通过以下技术方案来实现:基于低速通讯接口的程序升级方法,包括如下步骤:s1,获取待更新的新程序;s2,将所述新程序的每个函数及每个资源数据数组存储在flash存储器的一个独立的flash分块中;s3, 将新、旧程序进行比对以确定旧程序对应的flash分块中需要更新内容和/或需要清除内容的flash分块和/或新程序对应的flash分块中需要保留存储内容的flash分块;s4,将所述需要更新内容的flash分块中存储的内容更新为新程序的对应内容和/或将所述需要清除内容的flash分块中存储的内容清除和/或将所述需要保留存储内容的flash分块中存储的内容添加到旧程序中。
6.优选的,所述基于低速通讯接口的程序升级方法中,在s2之后,s3之前,执行如下步骤:创建与所述新程序对应的地址信息数组;所述地址信息数组可以通过索引名进行数组寻址并调用每个函数及资源数据数组以链接形成程序;在创建的地址信息数组中添加新程序的每个函数的索引名及该函数所在的flash分块在flash存储器中的定位地址;在创建的地址信息数组中添加新程序的每个资源数组的索引名及该资源数组所在的flash分块在flash存储器中的定位地址。
7.优选的,所述基于低速通讯接口的程序升级方法中,所述地址信息数组存储在flash存储器的固定flash块中。
8.优选的,所述基于低速通讯接口的程序升级方法中,所述s3包括
s31,对比新程序和旧程序对应的地址信息数组;当确定它们不同时,确定旧程序对应的地址信息数组需要更新并根据新程序对应的地址信息数组进行旧程序对应的地址信息数组的更新;s32,通过对新、旧程序对应的每个flash分块的内容进行比对以确定旧程序对应的flash分块中需要更新内容和/或需要清除内容的flash分块和/或新程序对应的flash分块中需要保留存储内容的flash分块。
9.优选的,所述基于低速通讯接口的程序升级方法中,在所述s31中,若确定一索引名在新程序对应的地址信息数组中存在,而在旧程序对应的地址信息数组中不存时,将该索引名及其对应的flash分块在flash存储器中的定位地址更新到旧程序对应的地址信息数组中;同时,将新程序对应的地址信息数组中与该索引名对应的flash分块确定为所述需要保留存储内容的flash分块;若确定一索引名在新程序对应的地址信息数组中不存在,而在旧程序对应的地址信息数组中存在,将该索引名及其对应的flash分块在flash存储器中的定位地址从旧程序对应的地址信息数组中清除;同时,将该索引名对应的flash分块确定为所述需要清除内容的flash分块;若确定新、旧程序对应的地址信息数组中,相同索引名对应的flash分块在flash存储器中的定位地址所限定的存储空间的大小不同时,则将旧程序对应的地址信息数组中与该索引名对应的定位地址修改为新程序对应的地址信息数中与该索引名对应的定位地址;且在s32过程中,直接将旧程序对应的地址信息数组中与该索引名对应的flash分块确定为所述需要更新存储内容的flash分块。
10.基于低速通讯接口的程序升级系统,包括:程序接受模块,用于获取待升级的新程序;分块存储模块,用于将所述新程序的每个函数及每个资源数据数组存储在flash存储器的一个独立的flash分块中;比对模块,用于将新、旧程序进行比对以确定旧程序对应的flash分块中需要更新内容和/或需要清除内容的flash分块和/或新程序对应的flash分块中需要保留存储内容的flash分块;;更新模块,用于将所述需要更新内容的flash分块中存储的内容更新为新程序的对应内容和/或将所述需要清除内容的flash分块中存储的内容清除和/或将所述需要保留存储内容的flash分块中存储的内容添加到旧程序中。
11.优选的,所述基于低速通讯接口的程序升级系统还包括地址信息数组构建模块,所述地址信息数组构件模块包括:创建单元,用于创建与程序对应的地址信息数组,所述地址信息数组可以通过索引名进行数组寻址并调用每个函数及资源数据数组以链接形成程序;第一信息添加单元,用于在创建的地址信息数组中添加程序的每个函数的索引名及该函数所在的flash分块在flash存储器中的定位地址;第二信息添加单元,用于在创建的地址信息数组中添加程序的每个资源数组的索引名及该资源数组所在的flash分块在flash存储器中的定位地址。
12.本发明技术方案的优点主要体现在:
本发明的方法把程序的所有函数和资源数据数组定位在不同flash分块中,在获得待更新的新程序后,根据新、旧程序的对比,可以标记出需要更新的flash分块,从而只对需要对少量的flash分块中的内容进行更新,可以极大地缩小程序需要更新的内容大小,从而提高更新效率及保证成功率。
13.本发明的方法在实现过程中,通过构建与程序相应的地址信息数组来存储程序的每个函数和资源数据数组所在的flash分块的地址信息,从而通过索引名进行数组寻址调用,能够方便、准确地进行新、旧程序的相对应的flash分块中的内容的调用和比较,能够提高比对的效率和保证准确性。
14.本发明先对新旧程序的地址信息数组进行比对,能够快速地确定部分需要更新的flash分块,可以有效地减少将相同索引名的flash分块中存储的内容进行比较的处理量,有利于提高整体的更新效率。
附图说明
15.图1是本发明的方法的过程示意图;图2是本发明的方法的详细过程示意图。
具体实施方式
16.本发明的目的、优点和特点,将通过下面优选实施例的非限制性说明进行图示和解释。这些实施例仅是应用本发明技术方案的典型范例,凡采取等同替换或者等效变换而形成的技术方案,均落在本发明要求保护的范围之内。
17.在方案的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“前”、“后”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。并且,在方案的描述中,以操作人员为参照,靠近操作者的方向为近端,远离操作者的方向为远端。
18.实施例1下面结合附图对本发明揭示的基于低速通讯接口的程序升级方法,如附图1所示,其包括如下步骤:s1,获取待更新的新程序;s2,将所述新程序的每个函数及每个资源数据数组存储在flash存储器的一个独立的flash分块中;所述资源数据数组包括图片数据、字符串数据等,每个flash分块的大小与每个函数及资源数据数组的大小一致。
19.s3,将新、旧程序进行比对以确定旧程序对应的flash分块中需要更新内容和/或需要清除内容的flash分块和/或新程序对应的flash分块中需要保留存储内容的flash分块。
20.s4,将所述需要更新内容的flash分块中存储的内容更新为新程序的对应内容和/或将所述需要清除内容的flash分块中存储的内容清除和/或将所述需要保留存储内容的flash分块中存储的内容添加到旧程序中。
21.如附图2所示,在s2之后,s3之前,执行如下步骤:创建与所述新程序对应的地址信息数组;所述地址信息数组可以通过索引名进行数组寻址并调用每个函数及资源数据数组以链接形成程序;在创建的地址信息数组中添加新程序的每个函数的索引名及该函数所在的flash分块在flash存储器中的定位地址;在创建的地址信息数组中添加新程序的每个资源数组的索引名及该资源数组所在的flash分块在flash存储器中的定位地址。
22.当然,旧程序安装时,同样会建立旧程序对应的地址信息数组,旧程序对应的地址信息数组中存储有其每个函数及资源数组对应的索引名及每个函数及资源数组所在的flash分块在flash存储器中的定位地址。新、旧程序中相同函数对应的索引名是相同的,相同资源数组对应的索引名是相同的。并且,所述地址信息数组存储在flash存储器的固定flash块中。
23.由于构件了地址信息数组,因此在所述s3中可以通过比较新旧程序对应的地址信息数组来确定如何更新,对应的,如附图2所示,所述s3包括s31,对比新程序和旧程序对应的地址信息数组;当确定它们不同时,确定旧程序对应的地址信息数组需要更新并根据新程序对应的地址信息数组进行旧程序对应的地址信息数组的更新;s32,通过对新、旧程序对应的每个flash分块的内容进行比对以确定旧程序对应的flash分块中需要更新内容和/或需要清除内容的flash分块和/或新程序对应的flash分块中需要保留存储内容的flash分块。
24.在所述s31中,若确定一索引名在新程序对应的地址信息数组中存在,而在旧程序对应的地址信息数组中不存时,表明新旧程序对应的地址信息数组不同,将新程序对应的地址信息数组中存在而旧程序对应的地址信息数组中不存的该索引名及其对应的flash分块在flash存储器中的定位地址添加到旧程序对应的地址信息数组中;同时,将新程序对应的地址信息数组中与该索引名对应的flash分块确定为所述需要保留存储内容的flash分块。
25.若确定一索引名在新程序对应的地址信息数组中不存在,而在旧程序对应的地址信息数组中存在时,表明新旧程序对应的地址信息数组不同,此时,将该索引名及其对应的flash分块在flash存储器中的定位地址从旧程序对应的地址信息数组中清除;同时,将该索引名对应的flash分块确定为所述需要清除内容的flash分块。
26.若确定新、旧程序对应的地址信息数组中,相同索引名对应的flash分块在flash存储器中的定位地址所限定的存储空间的大小不同时,则将旧程序对应的地址信息数组中与该索引名对应的定位地址修改为新程序对应的地址信息数中与该索引名对应的定位地址;且在s32过程中,直接将旧程序对应的地址信息数组中与该索引名对应的flash分块确定为所述需要更新存储内容的flash分块。
27.对于上述s31中已确定的所述需要保留存储内容的flash分块、需要清除内容的flash分块及需要更新存储内容的flash分块,在s32中,无需再对它们对应的索引名进行比对,只需将新、旧程序对应的地址信息数组中剩余的相同索引名对应的flash分块中存储的内容进行比对以确定旧程序对应的flash分块中是否还具有其他需要进行内容更新的
flash分块。
28.所述s4中,对于所述需要更新内容的flash分块,将新程序对应的flash分块中,与该需要更新内容的flash分块具有相同索引名的flash分块中存储的内容更新到所述需要更新内容的flash分块中。
29.对新程序对应的flash分块中需要保留存储内容的flash分块,即新程序相对旧程序新增的部分,则需要将该新增的部分对应的flash分块予以保留,同时将这些需要保留存储内容的flash分块对应的索引名及定位地址添加到旧程序对应的地址信息数组中。
30.对于新程序中未对旧程序进行更新的内容,则将这些内容所在的flash分块中存储的内容清除。
31.实施例2本实施例揭示了一种基于低速通讯接口的程序升级系统,包括:程序接受模块,用于获取待升级的新程序;分块存储模块,用于将所述新程序的每个函数及每个资源数据数组存储在flash存储器的一个独立的flash分块中;比对模块,用于将新、旧程序进行比对以确定旧程序对应的flash分块中需要更新内容和/或需要清除内容的flash分块和/或新程序对应的flash分块中需要保留存储内容的flash分块;;更新模块,用于将所述需要更新内容的flash分块中存储的内容更新为新程序的对应内容和/或将所述需要清除内容的flash分块中存储的内容清除和/或将所述需要保留存储内容的flash分块中存储的内容添加到旧程序中。
32.所述的基于低速通讯接口的程序升级系统还包括地址信息数组构建模块,所述地址信息数组构件模块包括:创建单元,用于创建与程序对应的地址信息数组,所述地址信息数组可以通过索引名进行数组寻址并调用每个函数及资源数据数组以链接形成程序;第一信息添加单元,用于在创建的地址信息数组中添加程序的每个函数的索引名及该函数所在的flash分块在flash存储器中的定位地址;第二信息添加单元,用于在创建的地址信息数组中添加程序的每个资源数组的索引名及该资源数组所在的flash分块在flash存储器中的定位地址。
33.本发明尚有多种实施方式,凡采用等同变换或者等效变换而形成的所有技术方案,均落在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1