一种具备向前兼容boot功能的机器程序系统及应用与升级方法与流程

未命名 07-14 阅读:85 评论:0


1.本发明涉及一种具备向前兼容boot功能的机器程序系统及应用与升级方法,属于机器程序升级技术领域。


背景技术:

2.随着机器智能化程度的不断提高,现在自行走设备、机器人产品等,都需要搭载相应的程序,来满足使用需求。机器在出厂后,可能会因为功能升级的需要或者程序bug修复等因素进行程序更新。目前主流的程序设计主要采用分区设计,一个boot区+app区,且boot区的固件无法被修改。随着设计需求的变更,有时需要更改boot区固件,而前后不同批次的app固件需要实现对新老boot的兼容。传统方法是在app区读取boot区版本号,然后在app区实现兼容处理。但此方法对芯片资源,尤其是ram资源要求较高,可能会导致无法实现兼容。


技术实现要素:

3.本发明所要解决的技术问题是提供一种具备向前兼容boot功能的机器程序系统,针对app区兼容boot时因资源限制的不足之处,采用全新程序划分结构设计,易于实现app对不同boot版本的兼容。
4.本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种具备向前兼容boot功能的机器程序系统,包括内部flash存储模块,设置于机器处理器内部;外部flash存储模块,设置于机器处理器外部;所述内部flash存储模块包括固件信息存储区,用于存储外部flash存储模块中待升级固件所适用对象、以及该待升级固件对应预设各信息类型的信息;app区,用于存储实现机器运行及完成相应功能的app程序;boot区,用于存储机器的boot程序;机器处理器分别与外部flash存储模块、以及内部flash存储模块中固件信息存储区、app区、各boot区相连通信;还包括app跳转区,用于读取boot区内运行的boot程序的比对信息,所读取的boot程序的比对信息包括boot程序版本号信息、长度、校验值中的一个或多个;所述app区至少有两个,每个app区用于存储对应不同boot版本号的app程序。
5.作为本发明的一种优选技术方案:所述app区依次存储对应最新版本boot的app程序,以及其他以boot版本号大小进行排序的对应相邻版本号boot的app程序。
6.作为本发明的一种优选技术方案:所述app区依次存储对应最新版本boot的app程序,以及其他按照app更新顺序,包含在外部flash存储模块中的与最新版本boot版本号不相同的其他版本号boot所对应的app程序。
7.作为本发明的一种优选技术方案:所述app区包括第一app区和第二app区。
8.作为本发明的一种优选技术方案:所述外部flash存储模块所接机器上的外部接口包括有线通信接口、无线通信接口中的任意一种或多种。
9.与上述相对应,本发明还要解决的技术问题是提供一种基于具备向前兼容boot功能的机器程序系统的应用方法,包括如下步骤:步骤a. 机器程序开始运行,运行boot区的boot程序;步骤b.进入app跳转区,读取所运行的boot程序的比对信息;步骤c.根据比对信息,跳转与比对信息相对应的app区执行app程序。
10.与上述相对应,本发明还要解决的技术问题是提供一种基于具备向前兼容boot功能的机器程序系统的升级方法,包括如下步骤:s1、所述机器初始程序安装时,app程序存储至第一app区,第二app区为空;s2、所述机器在进行固件升级时,读取待升级固件数据中boot程序的比对信息,如果比对信息与机器原始固件中boot程序的比对信息相同,完成boot程序更新后,进入步骤s3;否则,完成boot程序更新后,进入s4;s3、检测待升级固件数据中是否存在app程序,若存在,将待升级固件数据中app程序覆盖第一app区内数据,完成升级;若不存在,升级完成;s4、检测待升级固件数据中是否存在app程序,若存在,将第一app区内app程序覆盖第二app区内数据,之后将待升级固件数据中app程序覆盖第一app区内数据,完成升级;若不存在,升级完成。
11.作为本发明的一种优选技术方案:所述第一flash存储模块中还包括base区,基于存储在base区、并可在所述机器处理器上运行的计算机程序,由机器处理器执行该计算机程序实现所述的升级方法。
12.与上述相对应,本发明还要解决的技术问题是提供一种基于具备向前兼容boot功能的机器程序系统及升级方法的应用,基于机器升级系统的划分结构设计,以及彼此间通信逻辑的设计,应用多种外部通信方式,提高机器程序升级过程的工作效率。
13.本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种基于具备向前兼容boot功能的机器程序系统及升级方法的应用,包括分别与机器通信连接的移动终端、pc终端、网络服务器,其中,移动终端、pc终端、网络服务器分别经机器上的外部接口连接机器,并与第二flash存储模块相通信,实现将待升级固件发送至第二flash存储模块进行存储。
14.一种基于具备向前兼容boot功能的机器程序系统的升级方法,包括如下步骤:s1、所述机器进行程序安装或者固件更新,所述数据包包括多个版本boot所对应的app程序;s2、朝app跳转区开始写入固件数据,固件数据包括三部分内容,app跳转区、与旧boot对应app区即第二app区、与新boot对应app区即第一app区。
15.本发明所述一种具备向前兼容boot功能的机器程序系统及应用与升级方法,采用以上技术方案与现有技术相比,具有以下技术效果:(1)本发明所设计一种具备向前兼容boot功能的机器程序系统,合理对内部 flash进行分区,利用两个app区分别存储不同版本号boot所对应的app程序,使得机器内程
序可以兼容不同boot,解决了因在同一个app区实现兼容导致的ram资源不足的缺陷。
16.(2)在一种方法下,机器固件升级过程中,自动保存最新版本号boot所对应的app程序已经与其相邻版本号boot所对应的app程序,在对新旧版本机器的调试过程中,可以单独更换相邻版本的boot,对新旧版本的boot进行调试,无需调整更换不同版本boot所对应的app程序,减小了工作量。
17.(3)在另一种方法下,待升级固件直接包含三部分内容。app跳转区、与旧boot对应app区、与新boot对应app区。升级时,直接写入这三部分,解决了因在同一个app区实现兼容导致的ram资源不足的缺陷。
附图说明
18.图1是本发明所设计具备向前兼容boot功能的机器程序系统结构示意图;图2是本发明所设计具备向前兼容boot功能的机器程序系统中内部flash模块结构示意图3是本发明所设计具备向前兼容boot功能的机器程序系统的应用方法流程示意图。
具体实施方式
19.下面结合说明书附图对本发明的具体实施方式作进一步详细的说明。
20.如图1所示,本发明设计了一种具备向前兼容boot功能的机器程序系统及应用与升级方法,在实际应用当中,具体针对割草机器人机器进行设计应用,其中,针对割草机器人上搭载外部接口,包括有线通信接口、无线通信接口,并且在具体的通信方式上,可以应用蓝牙、wifi、lte、usb等方式。
21.配合外部接口的搭载设计,在实际应用中,针对割草机器人,可以进一步应用加入移动终端、pc终端、网络服务器,应用中,移动终端、pc终端、网络服务器分别经割草机器人上的外部接口即可实现与割草机器人的连接通信。
22.在针对割草机器人的机器程序系统的具体设计中,包括割草机器人内部设置于机器处理器内部的内部flash存储模块、以及设置于机器处理器外部的外部flash存储模块;应用中,外部flash存储模块基于其所接割草机器人上的外部接口、接收用于升级机器程序的待升级固件进行存储,其中待升级固件具体包括boot程序升级固件或app程序升级固件,即在实际应用中,可以针对割草机器人实现boot程序的升级、app程序升级或两者的升级。
23.内部flash存储模块的设计中,如图2所示,其中包括base区、固件信息存储区、两个app区、boot区,其中,基于存储在base区、并可在所述机器处理器上运行的计算机程序,由机器处理器执行该计算机程序实现分别与外部flash存储模块、以及内部flash存储模块中固件信息存储区、app区、各boot区相连通信;基于机器处理器与外部flash存储模块通信,由固件信息存储区存储外部flash存储模块中所存储待升级固件所适用对象、以及该待升级固件对应预设各信息类型的信息,并且在实际的具体实施中,固件信息存储区中设计存储升级标志,由升级标志表示外部flash存储模块中待升级固件所适用对象,并且升级标志设计具体包括升级标志位、升级boot区标志位、升级app区标志位,其中,升级标志位用于表示外部flash存储模块中是否存在待升级固件,升级boot区标志位用于表示待升级固件所适用对象是否为boot程序,升级app区标志位用于表示待升级固件所适用对象是否为app
程序。
24.关于上述升级标志位、升级boot区标志位、升级app区标志位在实际应用当中的设计,诸如定义升级标志位=1,即表示外部flash存储模块中存在待升级固件,定义升级标志位=0,即表示外部flash存储模块中不存在待升级固件;定义升级boot区标志位=1,即表示待升级固件所适用对象为boot程序,定义升级boot区标志位=0,即表示待升级固件所适用对象不是boot程序;定义升级app区标志位=1,即表示待升级固件所适用对象为app程序,定义升级app区标志位=0,即表示待升级固件所适用对象不是app程序。
25.而且对于固件信息存储区所存储待升级固件对应的预设各信息类型的信息来说,实际具体实施应用中,设计所存储待升级固件对应的预设各信息类型包括待升级固件在外部flash存储模块中的存储地址、待升级固件的长度、待升级固件的校验值,其中,待升级固件的校验值用于实现对待升级固件的校验操作。
26.内部flash存储模块中所设计的boot区用于存储机器所适用的boot程序;各个app区用于存储对应不同版本号boot程序的app程序。
27.基于机器处理器与固件信息存储区之间的通信,在存在待升级固件的情况下,由机器处理器根据待升级固件所适用对象、以及该待升级固件对应预设各信息类型的信息,确定app区或boot区作为待升级地址,并写入待升级固件实现更新,再通过对最新boot程序、最新app程序的依次加载,完成对机器的升级。
28.在实际应用中,基于移动终端、pc终端、网络服务器分别可经割草机器人上外部接口实现与割草机器人连接通信的基础上,进而具体实现与割草机器人内部、位于机器处理器外部的外部flash存储模块相通信,即在实际固件升级操作中,可由移动终端、pc终端、网络服务器的任意一处将待升级固件发送至内部flash存储模块进行存储。
29.基于上述,本发明进一步设计了基于具备向前兼容boot功能的机器程序系统的应用方法,实际应用当中,如图3所示,具体设计执行如下步骤。
30.步骤a. 机器程序开始运行,运行boot区的boot程序;步骤b.进入app跳转区,读取所运行的boot程序的比对信息;步骤c.根据比对信息,跳转与比对信息相对应的app区执行app程序。
31.将常规单一app区设计,更改为app三区分离设计。程序在运行时,首先运行在boot区,boot区执行完所需操作后跳转到app跳转区。app跳转区会读取当前boot区版本号,如果为旧boot区,则进一步跳转到与旧boot区对应的app区,如果为新boot区,则跳转到与新boot对应的app区。app区实行三区分离设计,彼此完全独立,从而三区均可完整使用芯片的ram资源,解决了因在同一个app区实现兼容导致的ram资源不足的缺陷。
32.本发明还进一步设计了基于具备向前兼容boot功能的机器程序系统的升级方法,实际应用当中,具体设计执行如下步骤。
33.s1、所述机器初始程序安装时,app程序存储至第一app区,第二app区为空;s2、所述机器在进行固件升级时,读取待升级固件数据中boot程序的比对信息,如果比对信息与机器原始固件中boot程序的比对信息相同,完成boot程序更新后,进入步骤s3;否则,完成boot程序更新后,进入s4;s3、检测待升级固件数据中是否存在app程序,若存在,将待升级固件数据中app程序覆盖第一app区内数据,完成升级;若不存在,升级完成;
s4、检测待升级固件数据中是否存在app程序,若存在,将第一app区内app程序覆盖第二app区内数据,之后将待升级固件数据中app程序覆盖第一app区内数据,完成升级;若不存在,升级完成。
34.具体的,第一app区内存储对应新版本boot的app程序,第二app区内存储对应旧版本boot的app程序,当进行固件升级时,通常新版本boot和与其对应的新版本app同时进行更新,在更新过程中,会自动在机器内部flash模块的两个app区中存储两个相邻次序更新的对应不同版本boot的app程序,保证可以兼容相邻版本的boot。一般来说,机器程序在进行使用,调试等过程中,只会涉及到相邻版本的boot,当然,在实际设计过程中,也可以设计超过2个的app区,用来对更多版本的boot进行兼容。
35.对于上述所设计的升级方法来说,在实际应用中,即基于存储在所述第一flash存储模块中base区、并可在所述机器处理器上运行的计算机程序,由机器处理器执行该计算机程序实现上述所设计的升级方法。
36.在另一种实现方式下,一种基于具备向前兼容boot功能的机器程序系统的升级方法,包括如下步骤:s1、所述机器进行程序安装或者固件更新,所述数据包包括多个版本boot所对应的app程序;s2、朝app跳转区开始写入固件数据,固件数据包括三部分内容,app跳转区、与旧boot对应app区即第二app区、与新boot对应app区即第一app区。
37.上述方法不会在线更新boot程序区。升级时也不会比对信息,直接按照常规方法升级即可。即朝某个地址写入数据,本方法是朝add_app跳转区开始写入固件数据,固件数据包括三部分内容。app跳转区、与旧boot对应app区、与新boot对应app区。app区实行三区分离设计,彼此完全独立,从而三区均可完整使用芯片的ram资源,解决了因在同一个app区实现兼容导致的ram资源不足的缺陷。
38.下面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

技术特征:
1.一种具备向前兼容boot功能的机器程序系统,包括内部flash存储模块,设置于机器处理器内部;外部flash存储模块,设置于机器处理器外部;所述内部flash存储模块包括固件信息存储区,用于存储外部flash存储模块中待升级固件所适用对象、以及该待升级固件对应预设各信息类型的信息;app区,用于存储实现机器运行及完成相应功能的app程序;boot区,用于存储机器的boot程序;机器处理器分别与外部flash存储模块、以及内部flash存储模块中固件信息存储区、app区、各boot区相连通信;其特征在于,还包括app跳转区,用于读取boot区内运行的boot程序的比对信息,所读取的boot程序的比对信息包括boot程序版本号信息、长度、校验值中的一个或多个;所述app区至少有两个,每个app区用于存储对应不同boot版本号的app程序。2.根据权利要求1所述一种具备向前兼容boot功能的机器程序系统,其特征在于:所述app区依次存储对应最新版本boot的app程序,以及其他以boot版本号大小进行排序的对应相邻版本号boot的app程序。3.根据权利要求1所述一种具备向前兼容boot功能的机器程序系统,其特征在于:所述app区依次存储对应最新版本boot的app程序,以及其他按照app更新顺序,包含在外部flash存储模块中的与最新版本boot版本号不相同的其他版本号boot所对应的app程序。4.根据权利要求1-3任意所述一种具备向前兼容boot功能的机器程序系统,其特征在于:所述app区包括第一app区和第二app区。5.根据权利要求1所述一种具备向前兼容boot功能的机器程序系统,其特征在于:所述外部flash存储模块所接机器上的外部接口包括有线通信接口、无线通信接口中的任意一种或多种。6.一种基于权利要求1-5任意一项所述一种具备向前兼容boot功能的机器程序系统的应用方法,其特征在于,包括如下步骤:步骤a. 机器程序开始运行,运行boot区的boot程序;步骤b.进入app跳转区,读取所运行的boot程序的比对信息;步骤c.根据比对信息,跳转与比对信息相对应的app区执行app程序。7.根据权利要求4所述一种基于具备向前兼容boot功能的机器程序系统的升级方法,其特征在于,包括如下步骤:s1、所述机器初始程序安装时,app程序存储至第一app区,第二app区为空;s2、所述机器在进行固件升级时,读取待升级固件数据中boot程序的比对信息,如果比对信息与机器原始固件中boot程序的比对信息相同,完成boot程序更新后,进入步骤s3;否则,完成boot程序更新后,进入s4;s3、检测待升级固件数据中是否存在app程序,若存在,将待升级固件数据中app程序覆盖第一app区内数据,完成升级;若不存在,升级完成;s4、检测待升级固件数据中是否存在app程序,若存在,将第一app区内app程序覆盖第
二app区内数据,之后将待升级固件数据中app程序覆盖第一app区内数据,完成升级;若不存在,升级完成。8.根据权利要求7所述一种基于具备向前兼容boot功能的机器程序系统的升级方法所述内部flash存储模块中还包括base区,基于存储在base区、并可在所述机器处理器上运行的计算机程序,由机器处理器执行该计算机程序实现权利要求7所述的升级方法。9.一种基于权利要求1至8中任意一项所述一种具备向前兼容boot功能的机器程序系统及升级方法的应用,其特征在于:包括分别与机器通信连接的移动终端、pc终端、网络服务器,其中,移动终端、pc终端、网络服务器分别经机器上的外部接口连接机器,并与外部flash存储模块相通信,实现将待升级固件发送至外部flash存储模块进行存储。10.根据权利要求4所述一种基于具备向前兼容boot功能的机器程序系统的升级方法,其特征在于,包括如下步骤:s1、所述机器进行程序安装或者固件更新,所述数据包包括多个版本boot所对应的app程序;s2、朝app跳转区开始写入固件数据,固件数据包括三部分内容,app跳转区、与旧boot对应app区即第二app区、与新boot对应app区即第一app区。

技术总结
本发明所设计一种具备向前兼容boot功能的机器程序系统,合理对内部flash进行分区,利用两个APP区分别存储不同版本号boot所对应的app程序,使得机器内程序可以兼容不同boot,解决了因在同一个APP区实现兼容导致的RAM资源不足的缺陷。不足的缺陷。不足的缺陷。


技术研发人员:梁凤涛 刘楷
受保护的技术使用者:南京苏美达智能技术有限公司
技术研发日:2021.12.31
技术公布日:2023/7/13
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐