单片机固件升级方法、装置及计算机可读存储介质与流程

文档序号:14175026阅读:460来源:国知局
单片机固件升级方法、装置及计算机可读存储介质与流程

本发明涉及智能控制技术领域,尤其涉及一种单片机固件升级方法、装置及计算机可读存储介质。



背景技术:

当前在智能家电领域,基本采用“家电控制板+iot物联网芯片”的方案,所谓的在线升级也主要集中在iot物联网芯片本身固件。究其原因,主要是iot物联网芯片厂家基本都有提供较为成熟的在线升级方案,但是家电板mcu,长期以来都没有在线升级固件的需求。导致,目前非常多的mcu都没有完善成熟的在线升级固件的方案。当上电时,mcu首先会从flash分区中的bootloader分区开始执行一段bootloader程序,bootloader基本就是按照一定的逻辑策略加载指定的版本的固件文件来运行,其中不同固件以image的形式存放在不同的flash分区。因此对现有技术的单片机升级时,至少需要mcu芯片厂家提供:flash分区的接口及分区切换的方法;提供bootloader程序的方案。如果默认的bootloader方案无法满足需求,那么用户必须进行定制开发。由于bootloader与硬件关系密切,即使有芯片厂家技术支持也还是难度很大,时间周期投入很长。况且,mcu芯片方案发生改变时,又必须重新进行针对性的开发,基本没有重用性可言。综上,在现有技术中,对单片机固件进行更新升级时需要供应商提供技术支持,升级难度大。



技术实现要素:

本发明的主要目的在于提供一种单片机固件升级方法、装置及计算机可读存储介质,旨在解决现有技术中,对单片机固件进行更新升级时需要供应商提供技术支持,升级难度大的问题。

为实现上述目的,本发明提供一种单片机固件升级方法,所述单片机固件升级方法包括:

获取云端脚本固件的第一版本信息和当前运行脚本固件的第二版本信息;

将所述第一版本信息和第二版本信息进行对比,判断云端脚本固件的版本是否高于当前运行脚本固件的版本;

当云端脚本固件的版本高于当前运行脚本固件的版本时,下载云端对应的脚本固件的脚本文件至预设脚本分区。

优选地,所述将所述第一版本信息和第二版本信息进行对比,判断云端脚本固件的版本是否高于当前运行脚本固件的版本的步骤之后还包括:

当云端脚本固件的版本均不高于当前运行脚本固件的版本时,从最后一条第一版本信息对比完成时开始进行计时;

判断计时时间值是否等于预设时间值;

当计时时间值等所述预设时间值时,执行步骤:获取云端脚本固件的第一版本信息和当前运行脚本固件的第二版本信息。

优选地,所述预设脚本分区至少为两个,所述获取云端脚本固件的第一版本信息和当前运行脚本固件的第二版本信息的步骤之前包括:

获取各个预设脚本分区的脚本固件的版本信息;

将获取的版本信息进行对比,确定版本最高的脚本固件;

将版本最高的脚本固件对应的脚本文件导入脚本引擎,以使得所述脚本引擎对所述脚本文件进行解析执行。

优选地,所述下载云端对应的脚本固件的脚本文件至预设脚本分区的步骤之前还包括:

当云端脚本固件的版本高于当前运行脚本固件的版本时,确定当前运行脚本固件的脚本文件所在的第一预设脚本分区;

所述下载云端对应的脚本固件的脚本文件至预设脚本分区包括:

下载云端对应的脚本固件的脚本文件至所述预设脚本分区中除了第一预设脚本分区之外的第二预设脚本分区。

优选地,所述获取各个预设脚本分区的脚本固件的版本信息的步骤之前包括:

初始化相关软硬件资源,并注册脚本与预置编程语言接口层。

优选地,所述相关软硬件资源至少包括嵌入式操作系统、硬件驱动层、固件版本维护支持模块及脚本引擎。

优选地,所述下载云端对应的脚本固件的脚本文件至预设脚本分区的步骤之后包括:

接收重新启动固件指令,并根据所述重新启动固件指令执行步骤:初始化相关软硬件资源,并注册脚本与预置编程语言接口层。

优选地,所述下载云端对应的脚本固件的脚本文件至预设脚本分区的步骤之后还包括:

根据下载的脚本文件设置新的版本信息。

此外,为实现上述目的,本发明还提供一种单片机固件升级装置,所述单片机固件升级装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的单片机固件升级程序,所述单片机固件升级程序被所述处理器执行时实现如上所述单片机固件升级方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有单片机固件升级程序,所述单片机固件升级程序被处理器执行时实现如上所述的单片机固件升级方法的步骤。

本发明提供一种单片机固件升级方法、装置及计算机可读存储介质,所述单片机固件升级方法包括:获取云端脚本固件的第一版本信息和当前运行脚本固件的第二版本信息;将所述第一版本信息和第二版本信息进行对比,判断云端脚本固件的版本是否高于当前运行脚本固件的版本;当云端脚本固件的版本高于当前运行脚本固件的版本时,下载云端对应的脚本固件的脚本文件至预设脚本分区。通过上述方式,引入脚本技术,将升级固件通过升级数据脚本文件的方式实现,避免通过开发bootloader的方式来升级固件,简化了固件升级过程。

附图说明

图1为本发明实施例方案涉及的硬件运行环境的终端结构示意图;

图2为本发明单片机固件升级方法第一实施例的流程示意图;

图3为本发明单片机固件升级方法第二实施例的流程示意图;

图4为本发明单片机固件升级方法第三实施例的流程示意图;

图5为本发明单片机固件升级方法第四实施例的流程示意图;

图6为本发明单片机固件升级方法第五实施例的流程示意图;

图7为本发明单片机固件升级方法第六实施例的流程示意图;

图8为本发明单片机固件升级方法第七实施例的流程示意图。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

现有技术的单片机升级时,至少需要厂家提供flash分区的接口及分区切换的方法和bootloader程序的方案等技术支持,升级难度大。

为了解决上述技术问题,本发明提供一种单片机固件升级方法,在本方法中,先获取云端脚本固件的第一版本信息和当前运行脚本固件的第二版本信息,再将所述第一版本信息和第二版本信息进行对比,判断云端脚本固件的版本是否高于当前运行脚本固件的版本,当云端脚本固件的版本高于当前运行脚本固件的版本时,下载云端对应的脚本固件的脚本文件至预设脚本分区。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境中单片机固件升级装置所属终端的结构示意图。

本发明实施例终端可以是pc,也可以是智能手机、平板电脑、电子书阅读器、mp3(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)播放器、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、便携计算机等具有显示功能的可移动式终端设备。

如图1所示,该终端可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

可选地,终端还可以包括摄像头、rf(radiofrequency,射频)电路,传感器、音频电路、wifi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在移动终端移动到耳边时,关闭显示屏和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;当然,移动终端还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及单片机固件升级程序。

在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的单片机固件升级程序,并执行以下操作:

获取云端脚本固件的第一版本信息和当前运行脚本固件的第二版本信息;

将所述第一版本信息和第二版本信息进行对比,判断云端脚本固件的版本是否高于当前运行脚本固件的版本;

当云端脚本固件的版本高于当前运行脚本固件的版本时,下载云端对应的脚本固件的脚本文件至预设脚本分区。

进一步地,处理器1001可以调用存储器1005中存储的单片机固件升级程序,还执行以下操作:

当云端脚本固件的版本均不高于当前运行脚本固件的版本时,从最后一条第一版本信息对比完成时开始进行计时;

判断计时时间值是否等于预设时间值;

当计时时间值等所述预设时间值时,执行步骤:获取云端脚本固件的第一版本信息和当前运行脚本固件的第二版本信息。

进一步地,处理器1001可以调用存储器1005中存储的单片机固件升级程序,还执行以下操作:

获取各个预设脚本分区的脚本固件的版本信息;

将获取的版本信息进行对比,确定版本最高的脚本固件;

将版本最高的脚本固件对应的脚本文件导入脚本引擎,以使得所述脚本引擎对所述脚本文件进行解析执行。

进一步地,处理器1001可以调用存储器1005中存储的单片机固件升级程序,还执行以下操作:

当云端脚本固件的版本高于当前运行脚本固件的版本时,确定当前运行脚本固件的脚本文件所在的第一预设脚本分区;

所述下载云端对应的脚本固件的脚本文件至预设脚本分区包括:

下载云端对应的脚本固件的脚本文件至所述预设脚本分区中除了第一预设脚本分区之外的第二预设脚本分区。

进一步地,处理器1001可以调用存储器1005中存储的单片机固件升级程序,还执行以下操作:

初始化相关软硬件资源,并注册脚本与预置编程语言接口层。

进一步地,处理器1001可以调用存储器1005中存储的单片机固件升级程序,还执行以下操作:

接收重新启动固件指令,并根据所述重新启动固件指令执行步骤:初始化相关软硬件资源,并注册脚本与预置编程语言接口层。

进一步地,处理器1001可以调用存储器1005中存储的单片机固件升级程序,还执行以下操作:

根据下载的脚本文件设置新的版本信息。

基于上述硬件结构,提出本发明单片机固件升级方法的实施例。

参照图2,本发明第一实施例提供一种单片机固件升级方法,所述单片机固件升级方法包括:

步骤s10,获取云端脚本固件的第一版本信息和当前运行脚本固件的第二版本信息;

本实施例应用于智能控制技术领域。当前在智能家电领域,基本采用“家电控制板+iot物联网芯片”的方案,所谓的在线升级也主要集中在iot物联网芯片本身固件。究其原因,主要是iot物联网芯片厂家基本都有提供较为成熟的在线升级方案,但是家电板mcu,长期以来都没有在线升级固件的需求。导致,目前非常多的mcu都没有完善成熟的在线升级固件的方案。当上电时,mcu首先会从flash分区中的bootloader分区开始执行一段bootloader程序,bootloader基本就是按照一定的逻辑策略加载指定的版本的固件文件来运行,其中不同固件以image的形式存放在不同的flash分区。因此对现有技术的单片机升级时,至少需要mcu芯片厂家提供:flash分区的接口及分区切换的方法;提供bootloader程序的方案。如果默认的bootloader方案无法满足需求,那么用户必须进行定制开发。由于bootloader与硬件关系密切,即使有芯片厂家技术支持也还是难度很大,时间周期投入很长。况且,mcu芯片方案发生改变时,又必须重新进行针对性的开发,基本没有重用性可言。综上,在现有技术中,对单片机固件进行更新升级时需要供应商提供技术支持,升级难度大。本发明引入脚本技术,将升级固件变更为升级数据脚本文件,从而避免通过开发bootloader的方式来升级固件,简化了固件升级过程。

在本实施例中,系统上电后,运行bootloader加载起用户固件程序,先初始化mcu硬件资源,从flash中加载image,移动pc指针运行固件程序。在用户固件运行起来后,执行用户固件流程。在执行用户固件流程的过程中,先初始化相关软硬件资源并注册脚本与预置编程语言接口层。其中相关软硬件资源至少包括嵌入式操作系统、硬件驱动层、固件版本维护支持模块及脚本引擎。嵌入式操作系统和硬件驱动层用于提供mcu对硬件的操控接口和多任务实时操作系统功能;固件版本维护支持模块用于实现用户产品功能版本的管理和切换,实现用户固件流程和通用在线升级流程。脚本引擎负责解释执行用户产品功能的脚本程序。在本实施例中,用户产品功能的业务逻辑由脚本语言开发。脚本和预置编程语言接口层可以是脚本与c语言接口层,是按照脚本调用标准抽象封装的c语言函数库,封装了脚本操作硬件驱动层的接口。本实施例的flash分区保持bootloader分区和默认的bootloader程序不变,将mcu用户固件image分区缩减为一个;剩余flash全部作为用户数据空间使用。这个用户数据空间根据需要划分成一个或多个脚本分区,用来保存不同的用户产品功能脚本固件。初始化后从脚本分区中确定最高版本的脚本固件并导入脚本引擎中执行。然后创建在线升级线程,根据创建的在线升级线程进入在线升级流程。在在先升级流程中,先获取获取云端脚本固件的第一版本信息和当前运行脚本固件的第二版本信息。其中云端的脚本固件由脚本固件开发者上传,并按照统一的编辑方法设置版本信息,例如可以根据字符编码的形式来设置版本信息,对于某个脚本固件x,可以将脚本固件的版本信息设置为x.k.y的形式,其中k、y为根据固件版本发布的先后设置的数字编码。例如该脚本固件的初始版本信息可以设置为x.1.0,后续发布的脚本固件的版本信息分别设置为x.1.1、x.1.2……在本实施例中,第二版本信息为当前运行的脚本固件的版本信息,其版本信息的编辑方法与云端脚本固件的版本信息的编辑方法一致。在本实施例中,云端可以保存脚本固件所有的脚本固件文件及版本信息,也可以根据需要只保存满足预设条件的脚本固件文件及版本信息,如最新发布的脚本固件的脚本固件文件及版本信息。

步骤s20,将所述第一版本信息和第二版本信息进行对比,判断云端脚本固件的版本是否高于当前运行脚本固件的版本;

基于上述步骤,在获取云端脚本固件的第一版本信息和当前运行脚本固件的第二版本信息后,将第一版本信息和第二版本信息进行对比,判断云端脚本固件的版本是否高于当前运行脚本固件的版本。在本实施例中,一个脚本固件b的发布时间在另一个脚本固件a的发布时间之后时,判定脚本固件b的版本高于脚本固件a的版本。在本实施例中判定版本高低时结合版本信息的编辑规则来判断。基于上述实施例,当第一版本信息为x.1.1时,若第二版本信息为x.1.0时,判定云端脚本固件版本高于当前运行脚本固件版本;若第二版本信息为x.1.2时,判定云端固件版本低于当前运行脚本固件版本。基于上述步骤,云端可能存在多个脚本固件及对应多个的版本信息,当云端存在多个版本信息时,逐一获取云端中的版本信息并与当前运行的脚本固件版本信息对比,判断是否存在版本高于当期运行脚本固件的版本。当云端存在多个版本的脚本固件时,还可以先确定在云端获取的版本信息中确定版本最高的版本信息,再获取版本最高的版本信息与第二版本信息进行对比。

步骤s30,当云端脚本固件的版本高于当前运行脚本固件的版本时,下载云端对应的脚本固件的脚本文件至预设脚本分区。

基于上述步骤,将第一版本信息和第二版本信息进行对比判定云端脚本固件的版本高于当前运行脚本固件的版本时,将云端对应的脚本固件的脚本文件下载并保存在预设脚本分区。具体地,基于上述步骤,当云端脚本固件的第一版本信息为x.1.1,当前运行脚本固件的第二版本信息为x.1.0时,将云端x.1.1对应的脚本固件下载并保存在预设脚本分区。本实施例的预设脚本分区为存储脚本固件的文件数据的预置的分区,系统上电后从预设脚本分区中获取脚本固件的版本信息,并确定执行的固件版本。在本实施例中,在对flash工作区域划分时,保持bootloader分区和默认的bootloader程序不变,将mcu用户固件image分区缩减为一个;剩余flash全部作为用户数据空间使用。这个用户数据空间根据需要划分成若干脚本分区,用来保存不同的用户产品功能的脚本固件。具体地,脚本分区为两个时,可以先确定当前运行脚本固件的文件存放的分区,再将x.1.1对应的脚本固件的脚本文件下载至另外一个脚本分区。

在本实施例中,获取云端脚本固件的第一版本信息和当前运行脚本固件的第二版本信息;将所述第一版本信息和第二版本信息进行对比,判断云端脚本固件的版本是否高于当前运行脚本固件的版本;当云端脚本固件的版本高于当前运行脚本固件的版本时,下载云端对应的脚本固件的脚本文件至预设脚本分区。通过上述方式,引入脚本技术,将升级固件通过升级数据脚本文件的方式实现,避免通过开发bootloader的方式来升级固件,简化了固件升级过程。

进一步的,参照图3,图3为本发明单片机固件升级方法第二实施例的流程示意图。

基于上述实施例,在本实施例中,步骤20包括:

步骤s40,当云端脚本固件的版本均不高于当前运行脚本固件的版本时,从最后一条第一版本信息对比完成时开始进行计时;

步骤s50,判断计时时间值是否等于预设时间值;

当计时时间值等所述预设时间值时,执行步骤s10。

基于上述实施例,执行步骤s20之后还可能出现云端脚本固件的版本不高于当前运行脚本固件的版本的情况。基于上述实施例,当云端只存放一个脚本固件时,在判定云端固件的版本不高于当前运行脚本固件的版本时,开始计时,在计时时间值等于预设时间值时,重新获取云端脚本固件和当前运行脚本固件的版本信息,从步骤s10开始重新进行在线升级流程。当云端存在多个脚本固件时,将对饮的第一版本信息逐一与第二版本信息进行对比,当所有的第一版本信息对比后,判定云端所有的脚本固件的版本均不高于当前运行的脚本固件的版本时,从最后一条第一版本信息对比完成时开始进行计时,在计时时间值等于预设时间值时,从步骤s10开始重新进行在线升级流程。本实施例的预设时间值可以根据需要设置,例如可以设置为20s。

在本实施例中,当云端脚本固件的版本均不高于当前运行脚本固件的版本时,从最后一条第一版本信息对比完成时开始进行计时;判断计时时间值是否等于预设时间值;当计时时间值等所述预设时间值时,执行步骤:获取云端脚本固件的第一版本信息和当前运行脚本固件的第二版本信息。通过上述方式,可以定时的对云端的脚本固件信息及时监控,以便新的脚本固件发布到云端时及时的进行脚本固件升级。

进一步的,参照图4,图4为本发明单片机固件升级方法第三实施例的流程示意图。

基于上述实施例,在本实施例中,所述预设脚本分区至少为两个,步骤s10之前包括:

步骤s60,获取各个预设脚本分区的脚本固件的版本信息;

步骤s70,将获取的版本信息进行对比,确定版本最高的脚本固件;

步骤s80,将版本最高的脚本固件对应的脚本文件导入脚本引擎,以使得所述脚本引擎对所述脚本文件进行解析执行。

基于上述实施例,在本实施例中,预设脚本分区可以至少包括存在两个。在本实施例的flash分区中,保持bootloader分区和默认的bootloader程序不变,将mcu用户固件image分区缩减为一个;剩余flash全部作为用户数据空间使用。这个用户数据空间根据需要划分成至少两个脚本分区,用来保存不同版本的用户产品功能脚本固件。在本实施例中,步骤s10之前先确定预设脚本分区中版本最高的脚本固件,并执行版本最高的脚本固件。具体地,当预设脚本分区为脚本分区a和脚本分区b两个时,基于上述实施例,当脚本分区a存放的脚本固件的版本信息为x.1.5,脚本分区b存放的脚本固件的版本信息为x.1.6时,先从脚本分区a和脚本分区b中获取脚本固件的版本信息x.1.5和x.1.6,并将x.1.5和x.1.6进行对比确定最高版本的脚本固件为脚本分区b中脚本信息为x.1.6的脚本固件,将脚本分区b中对应的脚本文件导入脚本引擎中执行。在本实施例中,脚本引擎负责解释执行用户产品功能的脚本程序。脚本引擎在解释执行脚本程序的过程中还可以通过脚本与预置编程语言接口调用编程语言的函数库。

在本实施例中,获取各个预设脚本分区的脚本固件的版本信息;将获取的版本信息进行对比,确定版本最高的脚本固件;将版本最高的脚本固件对应的脚本文件导入脚本引擎,以使得所述脚本引擎对所述脚本文件进行解析执行。通过上述方式,确定当前执行的脚本固件为预设脚本分区中版本最高的脚本固件,从而将云端第一版本信息与版本预设脚本分区中版本最高的脚本分区对比,保证下载的脚本固件版本比单片机中所有脚本固件的版本高。

进一步地,参照图5,图5为本发明单片机固件升级方法第四实施例的流程示意图。

基于上述实施例,在本实施例中,所述下载云端对应的脚本固件的脚本文件至预设脚本分区的步骤之前还包括之前还包括:

步骤s90,当云端脚本固件的版本高于当前运行脚本固件的版本时,确定当前运行脚本固件的脚本文件所在的第一预设脚本分区;

所述下载云端对应的脚本固件的脚本文件至预设脚本分区包括:

步骤s100,下载云端对应的脚本固件的脚本文件至所述预设脚本分区中除了第一预设脚本分区之外的第二预设脚本分区。

基于上述实施例,预设脚本分区至少为两个。两个预设脚本分区存储着不同脚本固件的脚本文件,从云端下载的脚本固件需要存放在其中的一个脚本分区中。在本实施例中,当云端脚本固件的版本高于当前运行脚本固件的版本时,先确定当前运行的脚本固件的脚本文件存放的第一脚本分区,再将云端版本比当前执行的脚本固件的版本高脚本固件下载至第一脚本分区外的第二脚本分区。本实施例的第一脚本分区指的是当前运行脚本固件的脚本文件所在的预设脚本分区,第二预设脚本分区指的是除了第一预设脚本分区外的预设脚本分区。具体地基于上述单片机固件升级方法的第四实施例,在本实施例中,若云端保存脚本固件的版本信息为x.1.7时,x.1.7对应的脚本固件的版本比当前运行的x.1.6对应脚本固件的版本高,确定x.1.6对应的脚本文件的存放脚本分区为脚本分区b,即第一脚本分区为脚本分区b,第二脚本分区为脚本分区a,因此,将x.1.7对应的脚本文件下载至脚本分区a中。在本实施例中,将x.1.7对应的脚本文件下载至脚本分区a中前,先将脚本分区a中的x.1.5对应的脚本文件清除,再将x.1.7对应的脚本文件下载至脚本分区a中。

在本实施例中,当云端脚本固件的版本高于当前运行脚本固件的版本时,确定当前运行脚本固件的脚本文件所在的第一预设脚本分区;所述下载云端对应的脚本固件的脚本文件至预设脚本分区包括:下载云端对应的脚本固件的脚本文件至所述预设脚本分区中除了第一预设脚本分区之外的第二预设脚本分区。通过上述方式,可以将云端的高版本脚本固件下载至当前运行的脚本固件的脚本文件存放的预设脚本分区之外的预设脚本分区,避免对当前运行的固件产生影响。

进一步地,参照图6,图6为本发明单片机固件升级方法第五实施例的流程示意图。

基于上述实施例,在本实施例中,步骤s60之前还包括:

步骤s110,初始化相关软硬件资源,并注册脚本与预置编程语言接口层。所述相关软硬件资源至少包括嵌入式操作系统、硬件驱动层、固件版本维护支持模块及脚本引擎。基于上实施例,在本实施例中,bootloader加载起用户固件程序后,先初始化相关软硬件资源,并注册脚本与预置编程语言接口层。本发明通过脚本技术实现固件的运行及升级,相关软硬件资源至少包括嵌入式操作系统、硬件驱动层、固件版本维护支持模块及脚本引擎。嵌入式操作系统和硬件驱动层用于提供mcu对硬件的操控接口和多任务实时操作系统功能;固件版本维护支持模块用于实现用户产品功能版本的管理和切换,实现用户固件流程和通用在线升级流程。脚本引擎负责解释执行用户产品功能的脚本程序。在本实施例中,用户产品功能的业务逻辑由脚本语言开发。脚本和预置编程语言接口层可以是脚本与c语言接口层,是按照脚本调用标准抽象封装的c语言函数库,封装了脚本操作硬件驱动层的接口。

在本实施例中,初始化相关软硬件资源,并注册脚本与预置编程语言接口层,所述相关软硬件资源至少包括嵌入式操作系统、硬件驱动层、固件版本维护支持模块及脚本引擎。通过上述方式,对相关软硬件资源进行初始化,以为用户固件流程和在线升级流程做准备。

进一步地,参照图7,图7为本发明单片机固件升级方法第六实施例的流程示意图。

基于上述实施例,在本实施例中,步骤s30之后还包括:

步骤s120,接收重新启动固件指令,接收重新启动固件指令,并根据所述重新启动固件指令执行步骤s110。

基于上述实施例,在本实施例中,将云端的脚本文件下载至预设脚本分区后,自动触发重新启动固件指令,并根据重新启动固件指令从步骤s110开始重新执行用户固件流程和在线升级流程的相关步骤。具体地,基于上述实施例,将x.1.7下载至脚本分区a后,触发重新启动固件指令,根据重新启动固件指令初始化相关的软硬件资源并注册脚本和c语言接口,再读取脚本分区a和脚本分区b中的版本信息,分别获得x.1.7和x.1.6,进行对比确定脚本分区a中x.1.7对应的脚本固件版本比脚本分区b中x.1.6对应的脚本固件的版本高,将x.1.7对应的脚本文件导入脚本引擎中执行并创建在线升级线程,从步骤获取云端脚本固件的第一版本信息和当前运行脚本固件的第二版本信息开始从下执行在线升级的步骤。

在本实施例中,收重新启动固件指令,并根据所述重新启动固件指令执行步骤:初始化相关软硬件资源,并注册脚本与预置编程语言接口层。通过上述方式,当从云端下载新的脚本文件到预设脚本分区后,从初始化相关软硬件资源,并注册脚本与预置编程语言接口层的步骤开始重新启动固件,以及时完成脚本固件的版本的切换,执行最高版本的脚本固件。

进一步地,参照图8,图8为本发明单片机固件升级方法第七实施例的流程示意图。

基于上述实施例,在本实施例中,步骤s30之后还包括:

步骤s130,根据下载的脚本文件设置新的版本信息。

基于上述实施例,在本实施例中,将云端的脚本文件下载至对应预设脚本分区之后,根据下载的文件按照上述统一的方法编辑下载的脚本文件的版本信息并保存在对应预设的脚本分区中,在本实施例中,也可以根据云端中该脚本文件的版本信息直接在对应预设脚本分区设置相同的版本信息。具体地,将x.1.7对应的脚本文件下载至脚本分区a后,将版本信息“x.1.7”保存在脚本分区a中。

在本实施例中,根据下载的脚本文件设置新的版本信息。通过上述方式,对下载到预设脚本分区的脚本文件设置版本信息,以便后续启动固件时根据该版本信息确定版本最高的脚本固件。

进一步地,本发明还提供一种单片机固件升级装置,所述单片机固件升级装置包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的单片机固件升级程序,所述单片机固件升级程序被所述处理器执行时所被执行时所实现的方法可参照本发明单片机固件升级方法的各个实施例,此处不再赘述。

进一步地,此外,本发明实施例还提出一种计算机可读存储介质。

本发明计算机可读存储介质上存储有单片机固件升级程序,所述单片机固件升级程序执行时实现如上所述的身份认证方法的步骤。

其中,在所述处理器上运行的单片机固件升级程序被执行时所实现的方法可参照本发明单片机固件升级方法各个实施例,此处不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1