CN112631637A - 基于rtos的ota升级方法、系统、设备及存储介质 - Google Patents
基于rtos的ota升级方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN112631637A CN112631637A CN202011607483.3A CN202011607483A CN112631637A CN 112631637 A CN112631637 A CN 112631637A CN 202011607483 A CN202011607483 A CN 202011607483A CN 112631637 A CN112631637 A CN 112631637A
- Authority
- CN
- China
- Prior art keywords
- app
- ota
- upgrading
- verification
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000005192 partition Methods 0.000 claims abstract description 96
- 238000012795 verification Methods 0.000 claims abstract description 54
- 238000004590 computer program Methods 0.000 claims description 10
- 238000002360 preparation method Methods 0.000 claims description 7
- 238000011084 recovery Methods 0.000 claims description 5
- 238000004140 cleaning Methods 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 3
- HOEFWOBLOGZQIQ-UHFFFAOYSA-N morpholin-4-yl morpholine-4-carbodithioate Chemical compound C1COCCN1C(=S)SN1CCOCC1 HOEFWOBLOGZQIQ-UHFFFAOYSA-N 0.000 claims 1
- 230000006870 function Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000007958 sleep Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于RTOS的OTA升级方法、系统、设备及存储介质,所述OTA升级方法包括步骤:将APP升级包下载至APP内存分区,所述APP内存分区位于内存;对所述APP升级包执行校验操作;若所述校验操作通过,则将所述APP升级包写入APP闪存分区,并覆盖升级前的APP应用程序,所述APP闪存分区位于所述闪存。本发明通过将APP升级包件首先下载至内存中并在内存中对其进行校验,减少了对闪存的读写次数,避免了在闪存划定专用分区;从而提升了APP应用程序空中升级的效率,节省了设备的闪存空间,并加快了开机的速度。
Description
技术领域
本发明涉及APP应用程序空中升级技术领域,具体涉及一种基于RTOS(Real-timeoperating system,实时操作系统)的OTA(Over the Air,空中升级)升级方法和系统。
背景技术
原有的APP(应用程序)的OTA方案为了保证APP升级包的存储稳定性,首先采用FTP(File Transfer Protocol,文件传输协议)或HTTP(HyperText Transfer Protocol,超文本传输协议)等网络下载方式,将APP升级包首先下载到客户端设备的额外开辟的一块闪存分区中,重启设备进入开始升级;然后从闪存中读取升级包到内存再对其进行校验,校验成功后再将其覆盖到原来的闪存分区,并擦除额外开辟的分区。以上的现有技术方案存在以下不足:首先,为了保证兼容性,防止升级过程中造成原存储于闪存中的旧版本APP损坏或丢失,需要在闪存中划分额外的升级专用的闪存分区,即OTA分区,用于存储APP升级包,而且该分区理论上还需大于APP升级包,从而造成了闪存空间的消耗。
其次,在现有的OTA方案中,需要从闪存中读取升级包到内存再对其进行校验,校验通过则将其覆盖到原来分区的同时清除OTA分区,并再次开机,将升级的APP加载至内存运行;校验失败则清除OTA分区,使用原APP加载到内存并再次开机。因此,整个过程至少涉及两次闪存写入、两次闪存擦除以及一次闪存读取操作,加上需重启设备,从而耗时较长。
最后,现有的方案需要在每次开机时检查OTA分区,通过判断标识符或者检查OTA分区中是否存在升级包等方式来决定是否进行升级,因此开机系统和程序的准备就绪时间较长。
发明内容
本发明要解决的技术问题是为了克服现有技术中对于APP应用程序进行空中升级耗时较多且占用闪存空间较大的缺陷,提供一种基于RTOS的OTA升级方法和系统。
本发明是通过下述技术方案来解决上述技术问题:
本发明提供了一种基于RTOS的OTA升级方法,用于对APP应用程序进行OTA升级,所述APP应用程序位于闪存;包括以下步骤:
将所述APP应用程序对应的APP升级包下载至APP内存分区,所述APP内存分区位于内存;
对所述APP升级包执行校验操作;
若所述校验操作通过,则将所述APP升级包写入APP闪存分区,并覆盖所述APP应用程序,所述APP闪存分区位于所述闪存。
较佳地,在将所述APP应用程序对应的APP升级包下载至APP内存分区的步骤前,还包括以下步骤:
所述APP应用程序向OTA线程发出对所述APP升级包的下载请求;
所述OTA线程挂起并删除所述APP应用程序正在运行的所有线程;
所述OTA线程清空所述APP内存分区;
所述OTA线程发起对所述APP升级包的下载。
较佳地,在对所述APP升级包执行校验操作的步骤后,若所述校验操作失败,则执行以下步骤:
清空所述APP内存分区;
将所述APP应用程序加载至所述APP内存分区。
较佳地,所述校验操作包括以下步骤:
将所述APP升级包的校验和预设校验参数进行比较,若相等则校验成功,若不相等则校验失败。
本发明还提供了一种基于RTOS的OTA升级系统,用于对APP应用程序进行OTA升级,所述APP应用程序位于闪存;所述OTA升级系统包括:
下载模块,用于将所述APP应用程序对应的APP升级包下载至APP内存分区,所述APP内存分区位于内存;
校验模块,用于对所述APP升级包执行校验操作;
升级模块,用于在所述校验操作通过时,将所述APP升级包写入APP闪存分区,并覆盖所述APP应用程序,所述APP闪存分区位于所述闪存。
较佳地,所述OTA升级系统还包括下载准备模块,所述下载准备模块包括:
下载请求单元,用于通过所述APP应用程序向OTA线程发出对所述APP升级包的下载请求;
线程清理单元,用于通过所述OTA线程挂起并删除所述APP应用程序正在运行的所有线程;
内存清空单元,用于通过所述OTA线程清空所述APP内存分区;
下载启动单元,用于通过所述OTA线程发起对所述APP升级包的下载。
较佳地,所述OTA升级系统还包括APP恢复模块,用于在所述校验操作失败时,清空所述APP内存分区;并将所述APP应用程序加载至所述APP内存分区。
较佳地,所述校验模块包括:
校验结果获取单元,用于将所述APP升级包中的校验参数和预设校验参数进行比较,若相等则校验成功,若不相等则校验失败。
本发明还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明的基于RTOS的OTA升级方法。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明的基于RTOS的OTA升级方法的步骤。
本发明的积极进步效果在于:本发明提供的基于RTOS的OTA升级方法、系统、电子设备和可读介质,通过将APP升级包首先下载至内存中并在内存中对其进行校验,减少了对闪存的读写次数,避免了在闪存中划定专用分区;从而提升了OTA操作的效率,节省了设备的闪存空间,也加快了开机的速度。
附图说明
图1为本发明的实施例1的基于RTOS的OTA升级方法的流程图。
图2为本发明的实施例1的一种可选的实施方式的流程图。
图3为本发明的实施例2的基于RTOS的OTA升级系统的模块示意图。
图4为本发明的实施例2的一种可选的实施方式的模块示意图。
图5为本发明实施例3的电子设备的结构框图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
参见图1,本发明提供了一种基于RTOS的OTA升级方法,基于RTOS的分离式二次开发模式进行OTA空中升级。所谓分离式二次开发是指RTOS中kernel(内核任务)与设备中的APP分别进行编译,如系统编译连接得到可执行文件kernel.bin即作系统的镜像文件,以及设备APP编译链接得到可执行文件customer_app.bin,分别加载到设备内存后连接运行。
本实施例的方法适用于一种模块,包括控制单元(如MCU(Microcontroller Unit,微控制单元))、存储部件(如闪存和内存)。模块运行实时操作系统例如threadX。APP的运行过程是在设备每次开机后,系统的kernel内核任务引导完毕并完成初始化后引导APP运行。具体步骤是:内核任务从闪存存储APP的专用分区(以下简称:APP闪存分区,可设置为256KB)读取上述customer_app.bin,加载到内存里专门用于APP操作的分区(以下简称:APP内存分区,可设置为512KB),并经过校验后,跳转到customer_app.bin的入口,对APP执行初始化操作,本实施例提供的升级方法即基于以上软硬件环境具体实现。
本实施例提供的基于RTOS的OTA升级方法用于对APP应用程序进行OTA升级,具体包括以下步骤:
S1.将APP升级包下载至APP内存分区,APP内存分区位于内存。
区别于现有技术中将APP升级包下载至闪存分区,本实施例需要将APP升级包首先下载至内存中。下载APP升级包通过HTTP或者FTP线程实现,下载到APP内存分区的APP升级包通常在文件头包含有APP升级包的元数据,例如可采用八个字节存放整个文件的大小以及CRC校验值,将头文件后的正文例如前述的升级包从第九个字节开始依次存放到APP内存分区,头文件包含的元数据,例如前述的八个字节保存到相关参数集中,例如将文件大小和CRC校验值分别存到变量size和变量value中用于校验。
S2.对APP升级包执行校验操作。
即首先使用kernel内置的CRC程序对此时APP分区中的内容进行校验,也就是将APP升级包中的校验参数和预设校验参数进行比较,若相等则校验成功,若不相等则校验失败。校验成功说明APP升级包的下载有效,若不相等则校验失败。需要指出的是,此处对于APP升级包的校验方式包括但不限于上述的CRC校验,也可以包括其他适用的校验方式例如MD5校验等。
S3.若校验通过,则将APP升级包写入APP闪存分区,并覆盖升级前的APP应用程序,APP闪存分区位于闪存。
若校验成功则将此时APP内存分区的内容覆盖写入到APP闪存分区,由于内存断电数据丢失,闪存断电数据保存,因此下次开机时将会从新的customer_APP.bin启动。
下载成功后,用于下载APP升级包的OTA线程休眠,将控制权转移到更新后的APP的方法,例如可以将连接寄存器的值设为升级后的入口函数,从而系统自动转移到APP应用程序执行代码。具体地,将连接寄存器的值修改为升级后的customer_app.bin的入口函数,系统调用返回,即可重新开始执行升级后的customer_app.bin。
APP内存分区不但用于存放APP升级包,也用于运行APP应用程序的代码。所以,在下载之前要删除当前APP正在运行的一切线程,然后清空目前的APP内存分区才能开始下载。本实施例中,参见图2所示,在步骤S1前还包括以下步骤:
S11.APP应用程序向OTA线程发出对APP升级包的下载请求。
S12.OTA线程挂起并删除APP应用程序当前正在运行的所有线程。
S13.OTA线程清空APP内存分区。
S14.OTA线程发起对APP升级包的下载。
以上,即是在APP应用程序发出对升级包的下载请求后,由OTA线程接管并开启下载的过程。例如,将HTTP和FTP下载线程作为内核线程,删除APP中此刻正在运行的线程以释放堆栈空间,清空APP内存分区,为APP应用程序的OTA升级做好准备,然后执行下载。
作为一种较佳的实施方式,若上述步骤S2的结果为校验失败,则需要进行回退操作,即清空APP内存分区,并将升级前的APP应用程序加载至APP内存分区,这样可以恢复对于原来的APP应用程序的正常使用。
具体地,将APP内存分区清零后,从APP闪存分区再次加载升级前的customer_APP.bin到APP内存分区,将连接寄存器的值修改为升级前的customer_app.bin入口函数,系统调用返回即跳转到customer_app.bin入口,重新启动customer_app.bin的初始化。
本实施例提供的基于RTOS的OTA升级方法,通过将APP升级包首先下载至内存中并在内存中对其进行校验,减少了对闪存的读写次数,避免了在闪存划定专用OTA分区;从而提升了APP应用程序空中升级的效率,节省了设备闪存的空间,并加快了开机的速度。
实施例2
参见图3,本发明提供了一种基于RTOS的OTA升级系统,可基于RTOS的分离式二次开发模式进行OTA空中升级。所谓分离式二次开发是指RTOS中kernel(内核任务)与设备中的APP分别进行编译,如系统编译连接得到可执行文件kernel.bin即作系统的镜像文件,以及设备APP编译链接得到可执行文件customer_app.bin,分别加载到设备内存后连接运行。
本实施例的系统适用于一种模块,包括控制单元(如MCU(Microcontroller Unit,微控制单元))、存储部件(如闪存和内存)。模块运行实时操作系统例如threadX。APP的运行过程是在设备每次开机后,系统的kernel内核任务引导完毕并完成初始化后引导APP运行。本实施例的系统可以执行以下步骤即:内核任务从闪存存储APP的专用分区(以下简称:APP闪存分区,可设置为256KB)读取上述customer_app.bin,加载到内存里专门用于APP操作的分区(以下简称:APP内存分区,可设置为512KB),并经过校验后,跳转到customer_app.bin的入口,对APP执行初始化操作,本实施例提供的升级系统基于上述软硬件环境具体实现。
本实施例提供的基于RTOS的OTA升级系统包括:
下载模块1,用于将APP升级包下载至APP内存分区,APP内存分区位于内存。
区别于现有技术中将APP升级包下载至闪存分区,本实施例的下载模块1需要将APP升级包首先下载至内存中。下载APP升级包通过HTTP或者FTP线程实现,下载到APP内存分区的APP升级包通常在文件头包含有APP升级包的元数据,例如可采用八个字节存放整个文件的大小以及CRC校验值,将头文件后的正文例如前述的升级包从第九个字节开始依次存放到APP内存分区,头文件包含的元数据,例如前述的八个字节保存到相关参数集中,例如将文件大小和CRC校验值分别存到变量size和变量value中用于校验。
校验模块2,用于对APP升级包执行校验操作。
即使用kernel内置的CRC程序对此时APP分区中的内容进行校验,也就是将APP升级包中的校验参数和预设校验参数进行比较,若相等则校验成功,若不相等则校验失败。校验成功说明APP升级包的下载有效,若不相等则校验失败。需要指出的是,此处对于APP升级包的校验方式包括但不限于上述的CRC校验,也可以包括其他适用的校验方式例如MD5校验等。
升级模块3,用于在校验通过时将APP升级包写入APP闪存分区,APP闪存分区位于闪存;即校验成功时升级模块3将此时APP内存分区的内容覆盖写入到APP闪存分区,由于内存断电数据丢失,闪存断电数据保存,因此下次开机时将会从新的customer_APP.bin启动。
本实施例中,参见图4所示,还包括下载准备模块4,下载准备模块4具体包括:
下载请求单元11,用于通过所述APP应用程序向OTA线程发出对所述APP升级包的下载请求;
线程清理单元12,用于通过所述OTA线程挂起并删除所述APP应用程序正在运行的所有线程;
内存清空单元13,用于通过所述OTA线程清空所述APP内存分区;
下载启动单元14,用于通过所述OTA线程发起对所述APP升级包的下载。
具体地,下载请求单元11通过APP应用程序发出对升级包的下载请求后,线程清理单元12通过OTA线程挂起并删除所述APP应用程序正在运行的所有线程。例如,将HTTP和FTP下载线程作为内核线程,删除APP此刻正在运行的线程以释放堆栈空间,内存清空单元13清空APP内存分区,为APP的OTA升级做好准备,然后下载启动单元14开启下载。
本实施例的升级系统中,还包括APP恢复模块5,用于在校验操作失败时清空APP内存分区;并将所述APP应用程序加载至所述APP内存分区。
这样APP恢复模块可以恢复对于原来的APP应用程序的正常使用。具体地,APP恢复模块5将APP内存分区清零后,从APP闪存分区再次加载升级前的customer_APP.bin到APP内存分区,将连接寄存器的值修改为升级前的customer_app.bin入口函数,系统调用返回即跳转到customer_app.bin入口,重新启动customer_app.bin的初始化。
本实施例提供的基于RTOS的OTA升级系统,通过设置相应的模块将APP升级包首先下载至内存中,并在内存中对其进行校验,减少了对闪存的读写次数,避免了在闪存划定专用分区;从而提升了空中升级的效率,节省了设备闪存的空间,并加快了开机的速度。
实施例3
图5为本发明实施例3提供的一种电子设备的结构示意图。电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现实施例1中的基于RTOS的OTA升级方法。图5显示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。
总线33包括数据总线、地址总线和控制总线。
存储器32可以包括易失性存储器,例如随机存取存储器(RAM)321和/或高速缓存存储器322,还可以进一步包括只读存储器(ROM)323。
存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1中的基于RTOS的OTA升级方法。
电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图5所示,网络适配器36通过总线33与模型生成的设备30的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
实施例4
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现实施例1中基于RTOS的OTA升级方法中的步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行实现实施例1中基于RTOS的OTA升级方法中的步骤。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (10)
1.一种基于RTOS的OTA升级方法,用于对APP应用程序进行OTA升级,所述APP应用程序位于闪存;其特征在于,包括以下步骤:
将所述APP应用程序对应的APP升级包下载至APP内存分区,所述APP内存分区位于内存;
对所述APP升级包执行校验操作;
若所述校验操作通过,则将所述APP升级包写入APP闪存分区,并覆盖所述APP应用程序,所述APP闪存分区位于所述闪存。
2.如权利要求1所述的基于RTOS的OTA升级方法,其特征在于,在将所述APP应用程序对应的APP升级包下载至APP内存分区的步骤前,还包括以下步骤:
所述APP应用程序向OTA线程发出对所述APP升级包的下载请求;
所述OTA线程挂起并删除所述APP应用程序正在运行的所有线程;
所述OTA线程清空所述APP内存分区;
所述OTA线程发起对所述APP升级包的下载。
3.如权利要求1所述的基于RTOS的OTA升级方法,其特征在于,在对所述APP升级包执行校验操作的步骤后,若所述校验操作失败,则执行以下步骤:
清空所述APP内存分区;
将所述APP应用程序加载至所述APP内存分区。
4.如权利要求1所述的基于RTOS的OTA升级方法,其特征在于,所述校验操作包括以下步骤:
将所述APP升级包的校验和预设校验参数进行比较,若相等则校验成功,若不相等则校验失败。
5.一种基于RTOS的OTA升级系统,用于对APP应用程序进行OTA升级,所述APP应用程序位于闪存;其特征在于,所述OTA升级系统包括:
下载模块,用于将所述APP应用程序对应的APP升级包下载至APP内存分区,所述APP内存分区位于内存;
校验模块,用于对所述APP升级包执行校验操作;
升级模块,用于在所述校验操作通过时,将所述APP升级包写入APP闪存分区,并覆盖所述APP应用程序,所述APP闪存分区位于所述闪存。
6.如权利要求5所述的基于RTOS的OTA升级系统,其特征在于,所述OTA升级系统还包括下载准备模块,所述下载准备模块包括:
下载请求单元,用于通过所述APP应用程序向OTA线程发出对所述APP升级包的下载请求;
线程清理单元,用于通过所述OTA线程挂起并删除所述APP应用程序正在运行的所有线程;
内存清空单元,用于通过所述OTA线程清空所述APP内存分区;
下载启动单元,用于通过所述OTA线程发起对所述APP升级包的下载。
7.如权利要求5所述的基于RTOS的OTA升级系统,其特征在于,所述OTA升级系统还包括APP恢复模块,用于在所述校验操作失败时,清空所述APP内存分区;并将所述APP应用程序加载至所述APP内存分区。
8.如权利要求5所述的基于RTOS的OTA升级系统,其特征在于,所述校验模块包括:
校验结果获取单元,用于将所述APP升级包中的校验参数和预设校验参数进行比较,若相等则校验成功,若不相等则校验失败。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-6中任一项所述的基于RTOS的OTA升级方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-6中任一项所述的基于RTOS的OTA升级方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011607483.3A CN112631637B (zh) | 2020-12-30 | 2020-12-30 | 基于rtos的ota升级方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011607483.3A CN112631637B (zh) | 2020-12-30 | 2020-12-30 | 基于rtos的ota升级方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112631637A true CN112631637A (zh) | 2021-04-09 |
CN112631637B CN112631637B (zh) | 2024-04-02 |
Family
ID=75286618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011607483.3A Active CN112631637B (zh) | 2020-12-30 | 2020-12-30 | 基于rtos的ota升级方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112631637B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1489501A1 (en) * | 2003-06-20 | 2004-12-22 | Samsung Electronics Co., Ltd. | Mobile terminal and method for performing a fail-safe over-the-air software update. |
CN102364891A (zh) * | 2011-09-13 | 2012-02-29 | 杭州华三通信技术有限公司 | 嵌入式以太网设备升级软件的方法及嵌入式以太网设备 |
US20130013907A1 (en) * | 2005-02-15 | 2013-01-10 | Gytheion Networks, Llc | Wireless router remote firmware upgrade |
WO2013110233A1 (zh) * | 2012-01-29 | 2013-08-01 | 华为终端有限公司 | 系统差分升级方法和装置、移动终端 |
CN106020861A (zh) * | 2016-05-05 | 2016-10-12 | 惠州Tcl移动通信有限公司 | 一种智能手表的fota升级方法及系统 |
CN107885524A (zh) * | 2017-11-20 | 2018-04-06 | 上海斐讯数据通信技术有限公司 | 一种基于fota的数据存储方法及系统 |
CN108132797A (zh) * | 2016-11-30 | 2018-06-08 | 青岛海信电器股份有限公司 | 一种遥控器、SoC芯片及其应用程序的升级方法 |
CN108446130A (zh) * | 2018-03-12 | 2018-08-24 | 北京百瑞互联技术有限公司 | Ota升级方法 |
CN109416657A (zh) * | 2016-06-30 | 2019-03-01 | 微软技术许可有限责任公司 | 在空中固件更新期间的容错变量区域重新铺设 |
CN109558160A (zh) * | 2017-09-26 | 2019-04-02 | 阿里巴巴集团控股有限公司 | 升级方法、嵌入式系统 |
CN109960523A (zh) * | 2017-12-22 | 2019-07-02 | 浙江宇视科技有限公司 | 一种嵌入式设备的固件升级方法及装置 |
CN111209019A (zh) * | 2019-12-31 | 2020-05-29 | 北京中科晶上超媒体信息技术有限公司 | 一种操作系统远程自适应升级方法和系统 |
CN111651126A (zh) * | 2020-06-04 | 2020-09-11 | 重庆芯讯通无线科技有限公司 | 存储器的写操作方法、系统、电子设备和介质 |
CN111880827A (zh) * | 2020-07-29 | 2020-11-03 | 珠海安联锐视科技股份有限公司 | 一种嵌入式软件升级方法 |
CN111930406A (zh) * | 2020-10-12 | 2020-11-13 | 蘑菇车联信息科技有限公司 | 车载终端微控制单元软件升级方法、电子设备及存储介质 |
-
2020
- 2020-12-30 CN CN202011607483.3A patent/CN112631637B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1489501A1 (en) * | 2003-06-20 | 2004-12-22 | Samsung Electronics Co., Ltd. | Mobile terminal and method for performing a fail-safe over-the-air software update. |
US20130013907A1 (en) * | 2005-02-15 | 2013-01-10 | Gytheion Networks, Llc | Wireless router remote firmware upgrade |
CN102364891A (zh) * | 2011-09-13 | 2012-02-29 | 杭州华三通信技术有限公司 | 嵌入式以太网设备升级软件的方法及嵌入式以太网设备 |
WO2013110233A1 (zh) * | 2012-01-29 | 2013-08-01 | 华为终端有限公司 | 系统差分升级方法和装置、移动终端 |
CN106020861A (zh) * | 2016-05-05 | 2016-10-12 | 惠州Tcl移动通信有限公司 | 一种智能手表的fota升级方法及系统 |
CN109416657A (zh) * | 2016-06-30 | 2019-03-01 | 微软技术许可有限责任公司 | 在空中固件更新期间的容错变量区域重新铺设 |
CN108132797A (zh) * | 2016-11-30 | 2018-06-08 | 青岛海信电器股份有限公司 | 一种遥控器、SoC芯片及其应用程序的升级方法 |
CN109558160A (zh) * | 2017-09-26 | 2019-04-02 | 阿里巴巴集团控股有限公司 | 升级方法、嵌入式系统 |
CN107885524A (zh) * | 2017-11-20 | 2018-04-06 | 上海斐讯数据通信技术有限公司 | 一种基于fota的数据存储方法及系统 |
CN109960523A (zh) * | 2017-12-22 | 2019-07-02 | 浙江宇视科技有限公司 | 一种嵌入式设备的固件升级方法及装置 |
CN108446130A (zh) * | 2018-03-12 | 2018-08-24 | 北京百瑞互联技术有限公司 | Ota升级方法 |
CN111209019A (zh) * | 2019-12-31 | 2020-05-29 | 北京中科晶上超媒体信息技术有限公司 | 一种操作系统远程自适应升级方法和系统 |
CN111651126A (zh) * | 2020-06-04 | 2020-09-11 | 重庆芯讯通无线科技有限公司 | 存储器的写操作方法、系统、电子设备和介质 |
CN111880827A (zh) * | 2020-07-29 | 2020-11-03 | 珠海安联锐视科技股份有限公司 | 一种嵌入式软件升级方法 |
CN111930406A (zh) * | 2020-10-12 | 2020-11-13 | 蘑菇车联信息科技有限公司 | 车载终端微控制单元软件升级方法、电子设备及存储介质 |
Non-Patent Citations (11)
Title |
---|
BENJAMIN BUCKLIN BROWN: "嵌入式微控制器应用中的无线(OTA)更新:设 计权衡与经验教训", 《模拟对话》, vol. 52, no. 2018, pages 22 - 27 * |
BENJAMIN BUCKLIN BROWN: "嵌入式微控制器应用中的无线(OTA)更新:设计权衡与经验教训", 《模拟对话》, vol. 52, no. 4, pages 006 - 017 * |
CAROTA科络达: "CAROTA科络达:一文弄清物联网的OTA升级", pages 1 - 22, Retrieved from the Internet <URL:https://baijiahao.baidu.com/s?id=1625864364971406499&wfr=spider&for=pc> * |
FINDHAPPY117: "乐鑫esp8266基于freeRtos实现私有服务器本地远程OTA升级", Retrieved from the Internet <URL:https://blog.csdn.net/findhappy117/artcile/details/82767036> * |
MANISH TALRJA: "How to perform secondary processor over-the-air updates with FreeRTOS", Retrieved from the Internet <URL:https://aws.amazon.com/cn/bl ogs/iot/how-to-perform-sec ondary-processor-over-the-a ir-updates-with-freertos/> * |
RED STONE: "嵌入式RTOS物联网OTA升级技术", Retrieved from the Internet <URL:www.redstone.net.cn/img1/51-cn.html> * |
STEVAN STEVIC 等: "Iot-based software Update Proposal for Next Generation Automotive Middleware Stacks", 《2018 IEEE 8TH INTERNATIONAL CONFERENCE ON CONSUMER ELECTRONICS-BERLIN(ICCE-BERLI N)》, 16 December 2018 (2018-12-16), pages 1 - 4 * |
STEVAN STEVIC等: "Iot-based software Update Proposal for Next Generation Automotive Middleware Stacks", 《2018 IEEE 8TH INTERNATIONAL CONFERENCE ON CONSUMER ELECTRONICS-BERLIN(ICCE-BERLIN), pages 1 - 4 * |
何尚平等: "《嵌入式系统原理与应用》", 31 August 2019, 《重庆大学出版社》, pages: 10 - 13 * |
周雪锋: "基于实时嵌入式系统的WAP移植和应用开发", 《中国优秀硕士全文数据库 信息科技辑》, no. 2004, 15 September 2004 (2004-09-15), pages 138 - 364 * |
杨洋: "OTA下载服务整体解决方案的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 2006, pages 136 - 482 * |
Also Published As
Publication number | Publication date |
---|---|
CN112631637B (zh) | 2024-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101143112B1 (ko) | 페일세이프 방식으로 맞춤 소프트웨어 영상 갱신을불휘발성 저장 장치에 적용하는 시스템 및 방법 | |
CN1304946C (zh) | 启动和启动代码更新方法 | |
US9081639B2 (en) | System and method for remotely re-imaging a computer system | |
KR20070034239A (ko) | 소프트웨어 업데이트 방법 및 시스템과 그 방법을 기록한컴퓨터 판독 가능한 기록매체 | |
EP2453352A1 (en) | Software updating process for an embedded device | |
US20070226436A1 (en) | File system based offline disk management | |
KR20140058281A (ko) | 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치 | |
CN107566169B (zh) | 一种基于openwrt的固件升级方法及路由器 | |
CN112152846B (zh) | 一种基于物联网的计量仪表远程升级方法 | |
WO2011088701A1 (zh) | 一种跨平台版本在线升级的方法及装置 | |
WO2022094855A1 (zh) | 固件升级方法及电子设备 | |
US20200341746A1 (en) | Snapshot recovery states | |
WO2015127730A1 (zh) | 版本文件的运行方法及装置 | |
CN113434182A (zh) | 固态硬盘固件升级立即生效的实现方法、装置及计算机设备 | |
CN109710297B (zh) | 一种设备整体或分模块进行升级和回退方法 | |
CN113900693A (zh) | 一种固件升级方法、装置、系统、电子设备及存储介质 | |
CN112631637B (zh) | 基于rtos的ota升级方法、系统、设备及存储介质 | |
CN114416031B (zh) | 面向AIoT场景支持RISC-V处理器的操作系统 | |
CN106681761B (zh) | 一种交互式升级的方法及系统 | |
US20150019908A1 (en) | Providing non-volatile memory for suspend-to-random access memory | |
CN114546455A (zh) | 一种双分区的mcu软件升级方法及装置 | |
US11620136B2 (en) | Space snapshots | |
CN110795113B (zh) | 一种Redis集群服务的安装方法、服务器和介质 | |
CN115437674B (zh) | 一种固件升级方法、装置、介质及电子设备 | |
CN115951909A (zh) | 一种片内动态加载应用软件的在线升级固化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |