System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 针对嵌入式Linux系统实现软件升级的方法、装置、处理器及其计算机可读存储介质制造方法及图纸_技高网

针对嵌入式Linux系统实现软件升级的方法、装置、处理器及其计算机可读存储介质制造方法及图纸

技术编号:40834528 阅读:4 留言:0更新日期:2024-04-01 14:58
本发明专利技术涉及一种针对嵌入式Linux系统实现软件升级处理的方法,包括以下步骤:对设备EMMC划分分区,确定地址空间后将软件烧写到EMMC中;烧写完成后系统启动;制作全量包和/或差分包;使用全量包和/或差分包进行升级。本发明专利技术还涉及一种实现嵌入式Linux软件升级的装置、处理器及其计算机可读存储介质。采用了本发明专利技术的针对嵌入式Linux系统实现软件升级处理的方法、装置、处理器及其计算机可读存储介质,提供一种嵌入式Linux软件升级方法,旨在为使用嵌入式Linux系统的设备提供一种稳定、快速、资源占用少且能满足汽车ECU进行OTA升级要求的软件升级方法。

【技术实现步骤摘要】

本专利技术涉及汽车电子和智能网联领域,尤其涉及嵌入式linux系统领域,具体是指一种针对嵌入式linux系统实现软件升级处理的方法、装置、处理器及其计算机可读存储介质。


技术介绍

1、随着汽车智能化、网联化的发展,汽车ecu升级方法已经逐步从传统的诊断仪升级转向了ota升级。诊断仪升级需要客户将汽车开进服务站,再由专业人员利用诊断仪对需要升级的ecu进行升级,若升级中出现异常会有服务站的专业人员对其进行处理,而进行ota升级的场所和时间是由用户自行决定的,汽车厂商在云端服务器进行升级任务的推送后,用户自行选择时间和地点进行软件的升级,所以这便对升级的功能有如下要求:

2、1、升级可靠性要高,升级过程中即使出现异常断电等极端情况导致升级失败,再次启动后也要能够正常运行。

3、2、升级包要足够小,升级包是通过数据流量传输,如果升级包过大不仅会过度消耗用户的数据流量还会导致升级包的传输时间过长,造成用户的不满。

4、3、升级速度要足够快,升级包传输到本地并且用户点击开始升级后,要能够快速的完成升级任务,否则影响用户使用车辆,造车用户升级意愿降低。

5、4、在整个升级过程中需要始终和tbox保持uds连接,所以升级完成之前不允许自行重启。

6、为了满足上述要求,便需要使用ab分区升级技术和差分升级技术,但是当前的ab分区升级和差分升级技术基本都是安卓设备在使用google公司为其提供的配套方案,其他少部分使用了ab分区和差分升级的嵌入式linux设备也仅是简单套用安卓的方案,并不能跟其产品很好的契合且不能满足汽车ecu升级的要求,这些方案往往会存在下面所列问题中部分或全部问题:

7、1、即使改动很小升级包也会比较大,比如仅改动一下版本号差分出来的升级包都会有超过1m的大小。

8、2、需要重启设备进入recovery模式进行b分区的升级。

9、3、若a分区和b分区软件版本不一致则需要先重启设备进行软件版本的同步,然后再进行升级。

10、4、系统应用程序无法独立更新。

11、5、无法从高版本差分升级到低版本。

12、6、升级过程中如果出现异常断电则会导致后续无法使用原先的差分包进行升级,甚至最终还需要使用零差分包来完成该次升级。

13、7、升级速度较慢,即使软件改动很小也需要数分钟才能完成升级。

14、8、差分包需要从专门的差分文件生成而无法从新旧两个版本的全量升级包进行差分得来。


技术实现思路

1、本专利技术的目的是克服了上述现有技术的缺点,提供了一种满足稳定、快速、资源占用少的针对嵌入式linux系统实现软件升级处理的方法、装置、处理器及其计算机可读存储介质。

2、为了实现上述目的,本专利技术的针对嵌入式linux系统实现软件升级处理的方法、装置、处理器及其计算机可读存储介质如下:

3、该针对嵌入式linux系统实现软件升级处理的方法,其主要特点是,所述的方法包括以下步骤:

4、(1)对设备emmc划分分区,确定地址空间后将软件烧写到emmc中;

5、(2)烧写完成后系统启动;

6、(3)制作全量包和/或差分包;

7、(4)使用全量包和/或差分包进行升级。

8、较佳地,所述的步骤(1)中将设备emmc划分为boot分区、rpmb分区、mmcp1分区、mmcp2分区、mmcp3分区、mmcp4分区和mmcp5分区;所述的mmcp1分区存储a内核、b内核和ab启动标志,所述的mmcp2分区存储a-rootfs,所述的mmcp3分区存储b-rootfs,所述的mmcp4分区存储公共的数据或文件,所述的mmcp5分区存储日志。

9、较佳地,所述的mmcp1分区不带文件系统,mmcp1分区的内部通过地址进行划分和隔离。

10、较佳地,所述的步骤(1)的烧写通过自动化脚本实现,烧写完成后a内核和b内核完全一致且a-rootfs和b-rootfs也完全一致,ab标志的值为0,使系统从a槽启动。

11、较佳地,所述的步骤(2)具体包括以下步骤:

12、(2.1)执行uboot;

13、(2.2)uboot读取ab标志的值并判断加载a内核还是b内核,如果加载a内核,则继续步骤(2.3);如果加载b内核,则继续步骤(2.4);

14、(2.3)加载a内核,挂载a-rootfs;

15、(2.4)加载b内核,挂载b-rootfs;

16、(2.5)通过rootfs中的rcs脚本启动相应的应用程序。

17、较佳地,所述的步骤(3)中的制作全量包,具体包括以下步骤:

18、(1-3.1)将完整的rootfs文件系统打包放入rootfs目录;

19、(1-3.2)将完整的内核放入kernel目录;

20、(1-3.3)将所述的rootfs目录和kernel目录打包成内层升级包;

21、(1-3.4)在升级脚本中记录软件版本号、内层升级包md5、内核文件的md5和rootfs压缩包的md5信息;

22、(1-3.5)将内层升级包和升级脚本打包成压缩包并进行加密,生成最终的全量升级包。

23、较佳地,所述的步骤(3)中的制作差分包,具体包括以下步骤:

24、(2-3.1)确定基础版本v1和目标版本v2的全量包,并分别提取出包内的内核和rootfs文件;

25、(2-3.2)遍历基础版本v1和目标版本v2提取出来的所有文件,找出目标版本v2相对于基础版本v1发生了变化的文件,并归类为新增、删除和修改三类;

26、(2-3.3)将新增文件按照其在rootfs中的目录结构存放入升级包中的install目录;

27、(2-3.4)使用bsdiff算法逐个对目标版本v2中相对于基础版本v1中发生了修改的文件进行差分运算得到补丁文件,将得到的补丁文件按照其原始文件在rootfs中的目录结构存放入升级包中的patch目录;

28、(2-3.5)使用bsdiff算法对目标版本v2和基础版本v1中的内核文件进行差分运算得到内核补丁文件,将得到的补丁文件存放入kernel目录;

29、(2-3.6)将所述的install目录、patch目录和kernel目录打包成内层升级包;

30、(2-3.7)在升级脚本中记录软件版本号、基础软件版本号、内层升级包md5、内核文件的md5、每个新增文件在升级包中的目录、每个新增文件升级时应该拷贝到的目标目录、每个新增文件的md5、每个补丁文件在升级包中的目录、每个补丁文件所对应的打补丁对象、每个补丁自身的md5和每个打完补丁生成新文件的md5;

31、(2-3.8)将内层升级包和升级脚本打包成压缩包并进行加密,生成最终的差分升级包。...

【技术保护点】

1.一种针对嵌入式Linux系统实现软件升级处理的方法,其特征在于,所述的方法包括以下步骤:

2.根据权利要求1所述的针对嵌入式Linux系统实现软件升级处理的方法,其特征在于,所述的步骤(1)中将设备EMMC划分为boot分区、RPMB分区、mmcp1分区、mmcp2分区、mmcp3分区、mmcp4分区和mmcp5分区;所述的mmcp1分区存储A内核、B内核和AB启动标志,所述的mmcp2分区存储A-rootfs,所述的mmcp3分区存储B-rootfs,所述的mmcp4分区存储公共的数据或文件,所述的mmcp5分区存储日志。

3.根据权利要求2所述的针对嵌入式Linux系统实现软件升级处理的方法,其特征在于,所述的mmcp1分区不带文件系统,mmcp1分区的内部通过地址进行划分和隔离。

4.根据权利要求1所述的针对嵌入式Linux系统实现软件升级处理的方法,其特征在于,所述的步骤(1)的烧写通过自动化脚本实现,烧写完成后A内核和B内核完全一致且A-rootfs和B-rootfs也完全一致,AB标志的值为0,使系统从A槽启动。

5.根据权利要求1所述的针对嵌入式Linux系统实现软件升级处理的方法,其特征在于,所述的步骤(2)具体包括以下步骤:

6.根据权利要求1所述的针对嵌入式Linux系统实现软件升级处理的方法,其特征在于,所述的步骤(3)中的制作全量包,具体包括以下步骤:

7.根据权利要求1所述的针对嵌入式Linux系统实现软件升级处理的方法,其特征在于,所述的步骤(3)中的制作差分包,具体包括以下步骤:

8.根据权利要求6所述的针对嵌入式Linux系统实现软件升级处理的方法,其特征在于,所述的步骤(4)中的使用全量包进行升级,具体包括以下步骤:

9.根据权利要求6所述的针对嵌入式Linux系统实现软件升级处理的方法,其特征在于,所述的步骤(4)中的使用差分包进行升级,具体包括以下步骤:

10.一种用于实现针对嵌入式Linux系统进行软件升级处理的装置,其特征在于,所述的装置包括:

11.一种实用于实现针对嵌入式Linux系统进行软件升级处理的处理器,其特征在于,所述的处理器被配置成执行计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现权利要求1至9中任一项所述的针对嵌入式Linux系统实现软件升级处理的方法的各个步骤。

12.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述的计算机程序可被处理器执行以实现权利要求1至9中任一项所述的针对嵌入式Linux系统实现软件升级处理的方法的各个步骤。

...

【技术特征摘要】

1.一种针对嵌入式linux系统实现软件升级处理的方法,其特征在于,所述的方法包括以下步骤:

2.根据权利要求1所述的针对嵌入式linux系统实现软件升级处理的方法,其特征在于,所述的步骤(1)中将设备emmc划分为boot分区、rpmb分区、mmcp1分区、mmcp2分区、mmcp3分区、mmcp4分区和mmcp5分区;所述的mmcp1分区存储a内核、b内核和ab启动标志,所述的mmcp2分区存储a-rootfs,所述的mmcp3分区存储b-rootfs,所述的mmcp4分区存储公共的数据或文件,所述的mmcp5分区存储日志。

3.根据权利要求2所述的针对嵌入式linux系统实现软件升级处理的方法,其特征在于,所述的mmcp1分区不带文件系统,mmcp1分区的内部通过地址进行划分和隔离。

4.根据权利要求1所述的针对嵌入式linux系统实现软件升级处理的方法,其特征在于,所述的步骤(1)的烧写通过自动化脚本实现,烧写完成后a内核和b内核完全一致且a-rootfs和b-rootfs也完全一致,ab标志的值为0,使系统从a槽启动。

5.根据权利要求1所述的针对嵌入式linux系统实现软件升级处理的方法,其特征在于,所述的步骤(2)具体包括以下步骤:

6.根据权利要求1所述的针...

【专利技术属性】
技术研发人员:王骥坤刘生昌许峰高东杜川川刘金花侯斐
申请(专利权)人:东风电子科技股份有限公司
类型:发明
国别省市:

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

1