本技术涉及通信,特别是涉及一种固件升级方法及架构。
背景技术:
1、随着互联网和物联网产业的蓬勃发展,各类消费电子智能终端设备层出不穷,令人耳目一新,而在消费电子产品市场中,mcu(微控制单元)牢牢占据了极大一部分市场份额,但随着日益变化的市场导向,与之带来的是复杂多变的用户需求,这使得产品开发人员需要不定时的对产品功能进行迭代,缺陷修复,这就要求对产品上的mcu的固件进行升级。
2、目前mcu的主流固件升级方式主要是:一、采用专用的烧录器进行固件烧录,存在较多的使用限制,不利于大规模拓展,如要求使用者熟悉烧录器的操作及使用流程,存在一定程度上的学习门槛,其次需要专用的烧录器硬件,增加了产品开发成本;二、通过mcu的串口等外设在线升级固件,要求mcu不能离线,且在升级过程中出现异常断电等情况,会导致固件升级失败,影响用户体验,其次在固件在线升级过程中,用户无法使用产品功能,进一步影响了用户体验。
3、在实现过程中,发明人发现传统技术中至少存在如下问题:现有的mcu固件升级方式中,处理过程繁琐,成本高,固件升级效率低及可靠性低。
技术实现思路
1、基于此,有必要针对上述现有的mcu固件升级方式中存在的问题,提供一种能够简化固件升级过程,拓展了固件升级方式,成本低,提高了固件升级效率及可靠性的固件升级方法及架构。
2、第一方面,本技术提供一种固件升级方法,包括以下步骤:
3、运行引导加载程序,并基于引导加载程序,获取启动引导标志位;
4、在启动引导标志位为预设枚举标志位时,执行对应启动引导标志位的固件升级动作;
5、在启动引导标志位为非预设枚举标志位时,检测片内固件运行区、片外固件更新区和片外固件备份区的固件状态,根据检测的结果,修改启动引导标志位,并复位重新运行引导加载程序。
6、可选的,预设枚举标志位包括更新固件标志位和跳转app运行标志位;
7、在启动引导标志位为预设枚举标志位时,执行对应启动引导标志位的固件升级动作的步骤包括:
8、在启动引导标志位为更新固件标志位,且检测到片内固件运行区存储有固件时,将片内固件运行区存储的固件传输至片外固件备份区;
9、将片外固件更新区存储的固件传输至片内固件运行区,修改启动引导标志位为跳转app运行标志位,并复位重新运行引导加载程序。
10、可选的,在启动引导标志位为预设枚举标志位时,执行对应启动引导标志位的固件升级动作的步骤还包括:
11、在启动引导标志位为更新固件标志位、检测到片内固件运行区无固件且检测到片外固件备份区存储有固件时,将片外固件更新区存储的固件传输至片内固件运行区,修改启动引导标志位为跳转app运行标志位,并复位重新运行引导加载程序。
12、可选的,在启动引导标志位为预设枚举标志位时,执行对应启动引导标志位的固件升级动作的步骤还包括:
13、在启动引导标志位为更新固件标志位、检测到片内固件运行区无固件且检测到片外固件备份区无固件时,将片外固件更新区存储的固件传输至片外固件备份区;
14、将片外固件更新区存储的固件传输至片内固件运行区,修改启动引导标志位为跳转app运行标志位,并复位重新运行引导加载程序。
15、可选的,预设枚举标志位包括恢复固件标志位和跳转app运行标志位;
16、在启动引导标志位为预设枚举标志位时,执行对应启动引导标志位的固件升级动作的步骤还包括:
17、在启动引导标志位为恢复固件标志位,且检测到片外固件备份区存储有固件时,将片外固件备份区存储的固件传输至片内固件运行区;
18、修改启动引导标志位为跳转app运行标志位,并复位重新运行引导加载程序。
19、可选的,预设枚举标志位包括备份固件标志位和跳转app运行标志位;
20、在启动引导标志位为预设枚举标志位时,执行对应启动引导标志位的固件升级动作的步骤还包括:
21、在启动引导标志位为备份固件标志位,且检测到片内固件运行区存储有固件时,将片内固件运行区存储的固件传输至片外固件备份区;
22、修改启动引导标志位为跳转app运行标志位,并复位重新运行引导加载程序。
23、可选的,修改启动引导标志位为跳转app运行标志位的步骤之前包括:
24、对固件进行校验;
25、修改启动引导标志位为跳转app运行标志位的步骤包括:
26、在固件校验成功时,修改启动引导标志位为跳转app运行标志位;
27、对固件进行校验的步骤之后还包括:
28、在固件校验失败时,生成错误提示信息。
29、可选的,预设枚举标志位包括下载固件标志位和更新固件标志位;
30、在启动引导标志位为预设枚举标志位时,执行对应启动引导标志位的固件升级动作的步骤还包括:
31、在启动引导标志位为下载固件标志位时,获取外部输入固件,并将外部输入固件传输至片外固件更新区;
32、修改启动引导标志位为更新固件标志位,并复位重新运行引导加载程序。
33、可选的,修改启动引导标志位为更新固件标志位的步骤之前包括:
34、对外部输入固件进行校验;
35、修改启动引导标志位为更新固件标志位的步骤包括:
36、在外部输入固件校验成功时,修改启动引导标志位为更新固件标志位;
37、对固件进行校验的步骤之后还包括:
38、在固件校验失败时,生成错误提示信息。
39、可选的,在启动引导标志位为非预设枚举标志位时,检测片内固件运行区、片外固件更新区和片外固件备份区的固件状态,根据检测的结果,修改启动引导标志位的步骤包括:
40、在启动引导标志位为非预设枚举标志位、检测到片内固件运行区存储有固件且检测到片外固件备份区存储有固件时,修改启动引导标志位为跳转app运行标志位;
41、在启动引导标志位为非预设枚举标志位、检测到片内固件运行区存储有固件且检测到片外固件备份区无固件时,修改启动引导标志位为备份固件标志位;
42、在启动引导标志位为非预设枚举标志位、检测到片内固件运行区无固件且检测到片外固件备份区存储有固件时,修改启动引导标志位为恢复固件标志位;
43、在启动引导标志位为非预设枚举标志位、检测到片内固件运行区无固件、检测到片外固件备份区无固件且检测到片外固件更新区存储有固件时,修改启动引导标志位为更新固件标志位;
44、在启动引导标志位为非预设枚举标志位、检测到片内固件运行区无固件、检测到片外固件备份区无固件且检测到片外固件更新区无固件时,修改启动引导标志位为下载固件标志位。
45、第二方面,本技术提供一种固件升级架构,包括:
46、处理器,处理器包括处理单元和片内存储单元,处理单元连接片内存储单元;片内存储单元包括第一片内存储区、第二片内存储区和片内固件运行区;第一片内存储区用于存储引导加载程序,第二片内存储区用于存储启动引导标志位;
47、片外存储器,片外存储器连接处理单元,片外存储器包括片外固件更新区和片外固件备份区;
48、处理单元用于执行如上述任意一项的固件升级方法的步骤。
49、可选的,固件升级架构还包括外部输入设备,外部输入设备连接处理单元,外部输入设备被配置为向处理单元传输外部输入固件。
50、上述技术方案中的一个技术方案具有如下优点和有益效果:
51、上述的固件升级方法中,通过运行引导加载程序,并基于引导加载程序,获取启动引导标志位;在启动引导标志位为预设枚举标志位时,执行对应启动引导标志位的固件升级动作;在启动引导标志位为非预设枚举标志位时,检测片内固件运行区、片外固件更新区和片外固件备份区的固件状态,根据检测的结果,修改启动引导标志位,并复位重新运行引导加载程序,实现高效可靠的固件升级操作。本技术利用低成本的片外存储资源形成片外固件更新区和片外固件备份区,由片内固件运行区、片外固件更新区和片外固件备份区组成固件的三分区设计,分隔开固件下载与固件更新、备份的流程;通过判断和调整启动引导标志位,利用重入引导加载程序将固件下载与固件升级两个动作分隔开,进而在恶劣极端环境下,固件升级失败、出错也不会导致整个系统宕机,同时拓展了固件升级方式,简化固件升级过程,降低了硬件成本,提高了固件升级效率及可靠性。