CN108132797A - 一种遥控器、SoC芯片及其应用程序的升级方法 - Google Patents
一种遥控器、SoC芯片及其应用程序的升级方法 Download PDFInfo
- Publication number
- CN108132797A CN108132797A CN201611083731.2A CN201611083731A CN108132797A CN 108132797 A CN108132797 A CN 108132797A CN 201611083731 A CN201611083731 A CN 201611083731A CN 108132797 A CN108132797 A CN 108132797A
- Authority
- CN
- China
- Prior art keywords
- application program
- program
- bootloader
- upgrading
- data
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000008569 process Effects 0.000 claims description 17
- 238000012795 verification Methods 0.000 claims description 14
- 238000013500 data storage Methods 0.000 claims description 13
- 230000003993 interaction Effects 0.000 claims description 10
- 238000004321 preservation Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 20
- 238000012545 processing Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 238000004590 computer program Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种遥控器、SoC芯片及其应用程序的升级方法。方法包括:在SoC芯片复位上电后,若确定SoC芯片中的应用程序需要升级,通过bootloader程序与应用程序的服务端建立连接;通过bootloader程序从服务端依次获取应用程序的升级数据包含的多个数据包;对于每次获取到的数据包,通过bootloader程序将数据包保存到应用程序占用的内存中,在应用程序占用的内存中保存完整升级数据后通过bootloader程序完成应用程序的升级,从而在去除了升级程序备份区域的情况下,完成了应用程序的升级,不仅保证了较小的Flash空间方案的可行性,还满足了系统升级的安全性要求。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种遥控器、片上系统(System on Chip,简称SoC)芯片及其应用程序的升级方法。
背景技术
物联网(Internet of Things,简称IOT)是当前应用热点,同时也是设备互联互通的技术发展方向。作为IOT技术的重要载体—低功耗蓝牙SoC芯片,以其低成本,高效互联技术特征,得到广泛应用。随着用户应用的多元化,低功耗蓝牙SoC芯片的空中下载(Over TheAir,简称OTA)升级功能需求突显。
传统的SoC芯片中的闪存(Flash)包括系统启动引导(bootloader)程序、应用(App)程序和升级程序备份区域。现有升级过程如下:Flash中的应用程序运行后,在与主机建立蓝牙连接后,首先按照各厂家的私有协议确定是否需要升级,若确定需要升级,再从主机接收升级数据,并将接收到的升级数据先保存在升级程序备份区域中;在接收完所有升级数据后,进行复位并触发bootloader执行后续的升级过程。Flash中的bootloader将升级程序备份区域内的升级数据复制到应用程序区域,以覆盖现有的应用程序,从而完成应用程序的升级。
所有的数据收发和连接管理都由应用程序负责,升级程序备份区域中用于存放应用程序的升级数据,因此,升级程序备份区域与应用程序通常会占用同等大小的内存空间,具体内存空间分配如图1所示,假设可用的Flash总空间大小为256Kbytes,bootloader占用2Kbytes,应用程序和升级程序备份区域各占用124Kbytes,其他数据保存区域占用6Kbytes。但是随着SoC芯片的集成度越来越高,芯片的面积越来越与芯片的成本相关,为了降低芯片成本可能会推出只有128K的Flash的SoC芯片,这种情况下,如果SoC芯片仍然采用图1这种结构,需要增加Flash空间大小,直接导致成本上升。
发明内容
本发明实施例提供了一种遥控器、SoC芯片及其应用程序的升级方法,从物理上缩减了对Flash空间的占用,保证了较小的Flash空间方案的可行性,并且在很大程度上的节省了开发费用。
第一方面,提供了一种SoC芯片中应用程序的升级方法,包括:
在SoC芯片复位上电后,若通过系统启动引导bootloader程序确定所述SoC芯片中的应用程序需要升级,通过所述bootloader程序与所述应用程序的服务端建立连接;
通过所述bootloader程序从所述服务端依次获取所述应用程序的升级数据包含的多个数据包;
对于每次获取到的数据包,通过所述bootloader程序将所述数据包保存到所述应用程序占用的内存中;
在所述应用程序占用的内存中保存完整升级数据后,通过所述bootloader程序完成所述应用程序的升级。
一种可能的实施方式中,通过bootloader程序确定所述SoC芯片中的应用程序需要升级,包括:若通过所述bootloader程序检测到升级标志,确定所述应用程序需要升级,所述升级标志是所述应用程序运行时确定自身需要升级后所设置的;
通过所述bootloader程序完成所述应用程序的升级之后,还包括:通过所述bootloader程序清除所述升级标志。
一种可能的实施方式中,通过所述bootloader程序从所述服务端依次获取所述应用程序的升级数据包含的多个数据包,包括:
通过所述bootloader程序向所述服务端发送升级请求,所述升级请求用于获取所述应用程序的升级数据包含的多个数据包;
通过所述bootloader程序采用与所述服务端约定的协议,依次接收所述服务端发送的所述应用程序的升级数据包含的多个数据包。
一种可能的实施方式中,通过所述bootloader程序从所述服务端依次获取所述应用程序的升级数据包含的多个数据包,包括:在接收到一个数据包后,通过所述bootloader程序向所述服务端发送下一个数据包对应的升级请求;
对于每次获取到的数据包,通过所述bootloader程序将所述数据包保存到所述应用程序占用的内存中,包括:对于每次获取到的数据包,通过所述bootloader程序将所述数据包,按照接收数据包的先后顺序,保存到所述应用程序占用的内存中。
一种可能的实施方式中,在所述应用程序占用的内存中保存完整升级数据后通过所述bootloader程序完成所述应用程序的升级,包括:
在所述应用程序占用的内存中保存完整升级数据后,通过所述bootloader程序对所述应用程序占用的内存中保存的完整升级数据进行校验;
若校验正确,通过所述bootloader程序触发升级后的应用程序运行;
若校验过程中出现错误,通过所述bootloader进行复位,以重新获取所述应用程序的升级数据。
第二方面,提供了一种SoC芯片,包括:
连接建立模块,用于在SoC芯片复位上电后,若通过系统启动引导bootloader程序确定所述SoC芯片中的应用程序需要升级,通过所述bootloader程序与所述应用程序的服务端建立连接;
数据交互模块,用于通过所述bootloader程序从所述服务端依次获取所述应用程序的升级数据包含的多个数据包;
数据存储模块,用于对于每次获取到的数据包,通过所述bootloader程序将所述数据包保存到所述应用程序占用的内存中;
升级模块,用于在所述应用程序占用的内存中保存完整升级数据后,通过所述bootloader程序完成所述应用程序的升级。
一种可能的实施方式中,所述连接建立模块具体用于:若通过所述bootloader程序检测到升级标志,确定所述应用程序需要升级,所述升级标志是所述应用程序运行时确定自身需要升级后所设置的;
所述数据存储模块在通过所述bootloader程序完成所述应用程序的升级之后,还用于:通过所述bootloader程序清除所述升级标志。
一种可能的实施方式中,所述数据交互模块具体用于:
通过所述bootloader程序向所述服务端发送升级请求,所述升级请求用于获取所述应用程序的升级数据包含的多个数据包;以及通过所述bootloader程序采用与所述服务端约定的协议,依次接收所述服务端发送的所述应用程序的升级数据包含的多个数据包。
一种可能的实施方式中,所述数据交互模块具体用于:在所述bootloader程序接收到一个数据包后,通过所述bootloader程序向所述服务端发送下一个数据包对应的升级请求;
所述数据存储模块具体用于:对于每次获取到的数据包,通过所述bootloader程序将所述数据包,按照接收数据包的先后顺序,保存到所述应用程序占用的内存中。
一种可能的实施方式中,所述升级模块具体用于:
在所述应用程序占用的内存中保存完整升级数据后,通过所述bootloader程序对所述应用程序占用的内存中保存的完整升级数据进行校验;若校验正确,通过所述bootloader程序触发升级后的应用程序运行;若校验过程中出现错误,通过所述bootloader进行复位,以重新获取所述应用程序的升级数据。
第三方面,提供了一种遥控器,所述遥控器包括第二方面中的SoC芯片。
本发明实施例提供的方法和装置中,由SoC芯片中的bootloader程序确定所述应用程序需要升级时,先与所述应用程序的服务端建立连接,再从所述服务端,依次获取所述应用程序的升级数据包含的多个数据包,并将每次获取到的数据包,依次保存到所述应用程序占用的内存中,并在所述应用程序占用的内存中保存完整升级数据后,通过所述bootloader程序完成所述应用程序的升级,从而在去除了升级程序备份区域的情况下,完成了应用程序的升级,不仅保证了较小的Flash空间方案的可行性,还满足了系统升级的安全性要求。
附图说明
图1为传统Flash空间的分配方案的示意图;
图2为本发明实施例提供的Flash空间的分配方案的示意图;
图3为传统Flash空间的分配方案与本发明实施例提供的Flash空间的分配方案的对比示意图;
图4为本发明实施例提供的一种SoC芯片中应用程序的升级方法的流程示意图;
图5为本发明实施例1提供的一种SoC芯片中应用程序的升级方法的流程示意图;
图6为本发明实施例提供的一种SoC芯片的结构示意图;
图7为本发明实施例提供的SoC芯片中的bootloader的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中,SoC芯片的Flash划分为三个区域:bootloader程序区域、应用程序(APP)区域和其他数据保存区域,其中,bootloader程序区域用于存放bootloader程序,应用程序区域用于存放应用程序,其他数据保存区域用于存放蓝牙协议栈和应用程序的数据,该区域内存放的数据主要用于断电恢复,一般占用2KB-6KB。从内存空间的划分来看,本发明实施例的Flash由传统的“Bootloader程序区域+APP区域+升级程序备份区域”三部分的结构转变成“Bootloader程序区域+APP区域”两部分的结构。以128KB的Flash空间为例,一种可能的内存空间的分配方式如图2所示,bootloader程序区域占用60~50KB,应用程序区域占用62~72KB,其他数据保存区域占用6KB。
图3所示实施例中,给出了传统Flash空间分配方案与本发明实施例提供的Flash空间分配方案的对比。假设目前的APP占用空间为65KB,如果以传统方案来设计,最终的Flash空间需求会是2KB的bootloader程序+65KB的App+65KB的升级程序备份区域+6KB的其他数据保存区域,一共是138KB,必须使用256KB的Flash,或者是使用芯片内置128KB的Flash同时外接上片外Flash来辅助。如果采用本发明实施例提供的分配方案,已经确定的占用空间是65KB的APP和6K的其他数据区域,即71KB,对于128KB的Flash来说,还剩余57KB,这57KB就是bootloader程序所能用的所有空间,保留传统方案2KB的bootloader程序原功能,还有55KB的空间来实现bootloader程序的连接和数据收发,这在实际项目开发中是比较容易做到的,所以最终可以在128KB的Flash上完成OTA升级。本发明实施例提供Flash空间的分配方案从物理上缩减了对Flash空间的占用,保证了较小的Flash空间方案的可行性,并且在很大程度上的节省了开发费用。
下面结合说明书附图对本发明实施例作进一步详细描述。应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限定本发明。
图4所示实施例中,提供了一种SoC芯片中应用程序的升级方法,所述SoC芯片的Flash中包括bootloader程序和应用程序,所述方法包括:
S41、在所述SoC芯片复位上电后,若通过bootloader程序确定所述SoC芯片中的应用程序需要升级,通过所述bootloader程序与所述应用程序的服务端建立连接。
可选的,通过所述bootloader程序与所述服务端之间建立的连接可以是蓝牙连接、局域网连接等。
S42、通过所述bootloader程序从所述服务端依次获取所述应用程序的升级数据包含的多个数据包。
S43、对于每次获取到的数据包,通过所述bootloader程序将所述数据包保存到所述应用程序占用的内存中;
S44、在所述应用程序占用的内存中保存完整升级数据后,通过所述bootloader程序完成所述应用程序的升级。
本发明实施例中,由SoC芯片中的bootloader程序确定所述应用程序需要升级时,先与所述应用程序的服务端建立连接,再从所述服务端,依次获取所述应用程序的升级数据包含的多个数据包,并将每次获取到的数据包,依次保存到所述应用程序占用的内存中,并在所述应用程序占用的内存中保存完整升级数据后,通过所述bootloader程序完成所述应用程序的升级,从而在去除了升级程序备份区域的情况下,完成了应用程序的升级,不仅保证了较小的Flash空间方案的可行性,还满足了系统升级的安全性要求。
传统方案中的bootloader程序只是进行启动逻辑处理和代码拷贝的处理,并不涉及到与服务端连接方面的处理,所有与服务端连接相关的处理都是在APP中完成,也就是说,所有的数据收发和连接管理都在APP中进行,由于APP升级时,应用程序不能自身执行将升级数据替换原有数据,即自己不能替换自己,因此,传统方案必须要求一个与实际的APP同等大小的升级数据备份区域,这样,APP将接收到的升级数据先保存在升级程序备份区域,接收完后复位并触发bootloader程序将升级程序备份区域的升级数据复制到APP占用的区域内。传统方案的缺点是必须要求应用程序区域和升级数据备份区域的空间大小一致,而且通常都要比实际大小多预留一些,在Flash空间紧张的情况下这种方案常常难以满足,只能追求更大的存储空间,直接导致开发成本上升。相对于此,本发明实施例提供的优化方案在追求bootloader程序代码最简化的前提下,有效扩充了连接和数据收发的功能。在程序代码设计上保证只增加与连接和数据收发相关的功能,以使bootloader程序能够接收到服务端的多个数据包并且又不会过度扩大bootloader程序的占用空间,本发明实施例提供的优化方案中bootloader程序占用的空间一般会小于传统方案中的bootloader程序占用的空间与应用程序占用的空间之和,从而可以节省出完整的升级数据存放区域(即升级程序备份区域)的空间,所以可以在128KB的Flash上实现传统方案需要256KB才能完成的方案设计,有效节省芯片成本,降低开发费用。
本发明实施例中,bootloader程序具有启动逻辑功能、代码拷贝功能、可选的数据校验功能、连接和数据收发的功能,其中,启动逻辑功能用于在系统上电后确定应用程序是否需要升级,如果需要升级则触发连接功能建立与服务端的连接,如果不需要升级,直接跳转到应用程序的起始位置触发应用程序开始运行;连接功能用于与服务端建立连接,在启动逻辑判断需要升级的情况下会依赖此功能建立与服务端的安全连接,与服务端的数据通信依赖于连接的有效建立;数据收发功能具体处理与服务端的数据包交互。
本发明实施例中,S41中通过bootloader程序确定所述SoC芯片中的应用程序需要升级,包括:
若通过所述bootloader程序检测到升级标志,确定所述应用程序需要升级,所述升级标志是所述应用程序运行时确定自身需要升级后所设置的。
具体的,应用程序在运行过程中,若判断需要升级,则可以在内存中的指定地址处保存一个升级标志,以指示应用程序需要进行升级,然后触发SoC芯片复位重新上电,以进入bootloader程序。相应的,bootloader程序读取指定地址上的升级标志来判断是否需要升级。例如,遥控器在每一次与电视机建立连接的时候,电视机都会查询遥控器的版本号并比对,如果遥控器接收到存在更高级版本的通知,可以保存一个升级标志在内存中,然后复位进入bootloader程序。
相应的,S44中通过所述bootloader程序完成所述应用程序的升级之后,还包括:通过所述bootloader程序清除所述升级标志。
本发明实施例中,S42中通过所述bootloader程序从所述服务端依次获取所述应用程序的升级数据包含的多个数据包的一种可能的实现方式为:
通过所述bootloader程序向所述服务端发送升级请求,所述升级请求用于获取所述应用程序的升级数据包含的多个数据包;
通过所述bootloader程序采用与所述服务端约定的协议,依次接收所述服务端发送的所述应用程序的升级数据包含的多个数据包。
一种可能的实施方式中,通过所述bootloader程序从所述服务端依次获取所述应用程序的升级数据包含的多个数据包,包括:
在接收到一个数据包后,通过所述bootloader程序向所述服务端发送下一个数据包对应的升级请求。
具体的,所述bootloader程序第一次发送升级请求后,接收到第一个数据包,并向所述服务端发送第二个数据包对应的升级请求,直至接收到升级数据中的最后一个数据包。
基于上述任一实施例,S43的一种可能的实现方式为:
对于每次获取到的数据包,通过所述bootloader程序将所述数据包,按照接收数据包的先后顺序,保存到所述应用程序占用的内存中。
进一步,S44的一种可能的实现方式为:
在所述应用程序占用的内存中保存完整升级数据后,通过所述bootloader程序对所述应用程序占用的内存中保存的完整升级数据进行校验;
若校验正确,通过所述bootloader程序触发升级后的应用程序运行;
若校验过程中出现错误,通过所述bootloader进行复位,以重新获取所述应用程序的升级数据,即重复上述S41~S44。
具体的,在保存完升级数据中的最后一个数据包后,通过bootloader程序对完整的升级数据进行校验(如循环冗余校验(Cyclic Redundancy Check,简称CRC)校验),如果校验正确,则bootloader程序会控制跳转到应用程序区域的起始地址触发该应用程序开始运行,如果校验出现错误,则表明此次接收到的升级数据有异常,bootloader程序会自动复位,重启后会再一次重复上述升级流程,从而保证了升级数据的有效性。
下面通过一个具体实施例,对本发明实施例提供的一种SoC芯片中应用程序的升级方法进行详细说明。
实施例1:本实施例中描述了bootloader程序的具体处理过程,如图5所示,包括如下步骤:
S501、bootloader程序启动;
S502、bootloader程序根据升级标志,判断系统APP是否需要升级;
若是,bootloader程序执行S503;
若否,bootloader程序执行S509;
S503、bootloader程序与主机(即服务端)建立蓝牙连接,继续执行S504;
S504、bootloader程序向主机发送升级请求,继续执行S505;
S505、bootloader程序接收主机发送的数据包,继续执行S506;
S506、bootloader程序将接收到的数据包按顺序保存到APP占用的内存中,继续执行S507;
S507、判断当前接收到的数据包是否为最后一个数据包;
若是,bootloader程序执行S508;
若否,bootloader程序返回S504;
S508、bootloader程序对接收到的所有数据包进行校验;
若校验正确,bootloader程序执行S509;
若校验错误,返回S501;
S509、bootloader程序跳转到APP区域的起始地址,以使APP开始运行,从而完成APP的升级。
上述方法处理流程可以用软件程序实现,该软件程序可以存储在存储介质中,当存储的软件程序被调用时,执行上述方法步骤。
基于同一发明构思,本发明实施例中还提供了一种SoC芯片,由于该SoC芯片解决问题的原理与图4所示实施例中的方法相似,因此该SoC芯片的实施可以参见方法的实施,重复之处不再赘述。
图6所示实施例中,提供了一种SoC芯片,所述SoC芯片包括:
连接建立模块61,用于在SoC芯片复位上电后,若通过bootloader程序确定所述SoC芯片中的应用程序需要升级,通过所述bootloader程序与所述应用程序的服务端建立连接;
数据交互模块62,用于通过所述bootloader程序从所述服务端获取所述应用程序的升级数据包含的多个数据包;
数据存储模块63,用于对于每次获取到的数据包,通过所述bootloader程序将所述数据包保存到所述应用程序占用的内存中;
升级模块64,用于在所述应用程序占用的内存中保存完整升级数据后,通过所述bootloader程序完成所述应用程序的升级。
一种可能的实施方式中,所述连接建立模块61具体用于:若通过所述bootloader程序检测到升级标志,确定所述应用程序需要升级,所述升级标志是所述应用程序运行时确定自身需要升级后所设置的;
所述数据存储模块63在通过所述bootloader程序完成所述应用程序的升级之后,还用于:通过所述bootloader程序清除所述升级标志。
一种可能的实施方式中,所述数据交互模块62具体用于:
通过所述bootloader程序向所述服务端发送升级请求,所述升级请求用于获取所述应用程序的升级数据包含的多个数据包;以及通过所述bootloader程序采用与所述服务端约定的协议,依次接收所述服务端发送的所述应用程序的升级数据包含的多个数据包。
一种可能的实施方式中,所述数据交互模块62具体用于:在所述bootloader程序接收到一个数据包后,通过所述bootloader程序向所述服务端发送下一个数据包对应的升级请求;
相应的,所述数据存储模块63具体用于:对于每次获取到的数据包,通过所述bootloader程序将所述数据包,按照接收数据包的先后顺序,保存到所述应用程序占用的内存中。
一种可能的实施方式中,所述升级模块64具体用于:
在所述应用程序占用的内存中保存完整升级数据后,通过所述bootloader程序对所述应用程序占用的内存中保存的完整升级数据进行校验;若校验正确,通过所述bootloader程序触发升级后的应用程序运行;若校验过程中出现错误,通过所述bootloader进行复位,以重新获取所述应用程序的升级数据。
下面通过一个具体实施例,对本发明实施例提供的一种SoC芯片进行详细说明。
实施例2:本实施例中的SoC芯片的Flash中包括bootloader和APP,其中,bootloader具有的功能包括:系统的启动逻辑处理、蓝牙连接管理、数据收发处理、代码的拷贝处理以及数据校验处理,如图7所示;其中,
系统的启动逻辑处理主要是在系统复位上电后根据升级标志判断应用程序是否需要升级,如果需要升级则触发蓝牙连接管理建立与服务端的连接,如果不需要升级,直接跳转到应用程序的起始位置触发应用程序开始运行;蓝牙连接管理主要是建立与服务端的蓝牙连接,在系统的启动逻辑处理判断需要升级的情况下会依赖此功能建立与服务端的安全连接,与服务端的数据通信依赖于连接的有效建立;蓝牙数据收发处理主要是处理与服务端的数据包交互,包括接收当前的数据包,并向服务端发出下一个数据包的请求,并依照与服务端约定的协议规范完成完整的升级数据的有效接收;代码拷贝处理主要是把依序接收到的数据包,按照顺序存放到Flash中的APP区域;数据校验处理主要是在接收完最后一个数据包后,对完整接收到的数据包进行CRC校验或者其他算法的校验,如果校验正确,则跳转到APP区域的起始地址触发APP开始运行,如果校验出现错误,则表明此次接收到的数据包有异常,则自动复位,重启后会再一次重复升级流程,直到检查到数据完全被正确接收。
基于同一发明构思,本发明实施例还提供了一种遥控器,所述遥控器包括图6所示实施例中的任一SoC芯片。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种SoC芯片中应用程序的升级方法,其特征在于,包括:
在SoC芯片复位上电后,若通过系统启动引导bootloader程序确定所述SoC芯片中的应用程序需要升级,通过所述bootloader程序与所述应用程序的服务端建立连接;
通过所述bootloader程序从所述服务端依次获取所述应用程序的升级数据包含的多个数据包;
对于每次获取到的数据包,通过所述bootloader程序将所述数据包保存到所述应用程序占用的内存中;
在所述应用程序占用的内存中保存完整升级数据后,通过所述bootloader程序完成所述应用程序的升级。
2.如权利要求1所述的方法,其特征在于,通过bootloader程序确定所述SoC芯片中的应用程序需要升级,包括:若通过所述bootloader程序检测到升级标志,确定所述应用程序需要升级,所述升级标志是所述应用程序运行时确定自身需要升级后所设置的;
通过所述bootloader程序完成所述应用程序的升级之后,还包括:通过所述bootloader程序清除所述升级标志。
3.如权利要求1所述的方法,其特征在于,通过所述bootloader程序从所述服务端依次获取所述应用程序的升级数据包含的多个数据包,包括:
通过所述bootloader程序向所述服务端发送升级请求,所述升级请求用于获取所述应用程序的升级数据包含的多个数据包;
通过所述bootloader程序采用与所述服务端约定的协议,依次接收所述服务端发送的所述应用程序的升级数据包含的多个数据包。
4.如权利要求3所述的方法,其特征在于,通过所述bootloader程序从所述服务端依次获取所述应用程序的升级数据包含的多个数据包,包括:在接收到一个数据包后,通过所述bootloader程序向所述服务端发送下一个数据包对应的升级请求;
对于每次获取到的数据包,通过所述bootloader程序将所述数据包保存到所述应用程序占用的内存中,包括:对于每次获取到的数据包,通过所述bootloader程序将所述数据包,按照接收数据包的先后顺序,保存到所述应用程序占用的内存中。
5.如权利要求1~4任一项所述的方法,其特征在于,在所述应用程序占用的内存中保存完整升级数据后通过所述bootloader程序完成所述应用程序的升级,包括:
在所述应用程序占用的内存中保存完整升级数据后,通过所述bootloader程序对所述应用程序占用的内存中保存的完整升级数据进行校验;
若校验正确,通过所述bootloader程序触发升级后的应用程序运行;
若校验过程中出现错误,通过所述bootloader进行复位,以重新获取所述应用程序的升级数据。
6.一种SoC芯片,其特征在于,包括:
连接建立模块,用于在SoC芯片复位上电后,若通过系统启动引导bootloader程序确定所述SoC芯片中的应用程序需要升级,通过所述bootloader程序与所述应用程序的服务端建立连接;
数据交互模块,用于通过所述bootloader程序从所述服务端依次获取所述应用程序的升级数据包含的多个数据包;
数据存储模块,用于对于每次获取到的数据包,通过所述bootloader程序将所述数据包保存到所述应用程序占用的内存中;
升级模块,用于在所述应用程序占用的内存中保存完整升级数据后,通过所述bootloader程序完成所述应用程序的升级。
7.如权利要求6所述的SoC芯片,其特征在于,所述连接建立模块具体用于:若通过所述bootloader程序检测到升级标志,确定所述应用程序需要升级,所述升级标志是所述应用程序运行时确定自身需要升级后所设置的;
所述数据存储模块在通过所述bootloader程序完成所述应用程序的升级之后,还用于:通过所述bootloader程序清除所述升级标志。
8.如权利要求6所述的SoC芯片,其特征在于,所述数据交互模块具体用于:
通过所述bootloader程序向所述服务端发送升级请求,所述升级请求用于获取所述应用程序的升级数据包含的多个数据包;以及通过所述bootloader程序采用与所述服务端约定的协议,依次接收所述服务端发送的所述应用程序的升级数据包含的多个数据包。
9.如权利要求6~8任一项所述的SoC芯片,其特征在于,所述升级模块具体用于:
在所述应用程序占用的内存中保存完整升级数据后,通过所述bootloader程序对所述应用程序占用的内存中保存的完整升级数据进行校验;若校验正确,通过所述bootloader程序触发升级后的应用程序运行;若校验过程中出现错误,通过所述bootloader进行复位,以重新获取所述应用程序的升级数据。
10.一种遥控器,其特征在于,所述遥控器包括如权利要求6~9任一项所述的SoC芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611083731.2A CN108132797A (zh) | 2016-11-30 | 2016-11-30 | 一种遥控器、SoC芯片及其应用程序的升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611083731.2A CN108132797A (zh) | 2016-11-30 | 2016-11-30 | 一种遥控器、SoC芯片及其应用程序的升级方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108132797A true CN108132797A (zh) | 2018-06-08 |
Family
ID=62387322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611083731.2A Pending CN108132797A (zh) | 2016-11-30 | 2016-11-30 | 一种遥控器、SoC芯片及其应用程序的升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108132797A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109118744A (zh) * | 2018-11-02 | 2019-01-01 | 成都世纪光合作用科技有限公司 | 一种无线遥控器 |
CN111984298A (zh) * | 2020-07-17 | 2020-11-24 | 歌尔光学科技有限公司 | 一种闪存中的程序升级区、程序升级方法及系统 |
CN112256338A (zh) * | 2020-10-27 | 2021-01-22 | 记忆科技(深圳)有限公司 | Soc启动方法、装置、计算机设备及存储介质 |
CN112631637A (zh) * | 2020-12-30 | 2021-04-09 | 重庆芯讯通无线科技有限公司 | 基于rtos的ota升级方法、系统、设备及存储介质 |
CN112988206A (zh) * | 2021-03-26 | 2021-06-18 | 东莞市峰谷科技有限公司 | 一种不影响应用程序调试的BootLoader方法 |
CN109246639B (zh) * | 2018-09-18 | 2021-08-06 | 快快利华(北京)网络科技有限公司 | 一种数据网关系统及其通信方法 |
CN115437672A (zh) * | 2022-09-15 | 2022-12-06 | 深圳思凌科技术有限公司 | 基于soc芯片的用户程序更新方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030167373A1 (en) * | 2002-03-01 | 2003-09-04 | Derek Winters | Method and system for reducing storage requirements for program code in a communication device |
CN1929669A (zh) * | 2006-07-25 | 2007-03-14 | 浙江三维通信股份有限公司 | 一种直放站设备嵌入式软件在应用远程升级的方法 |
US20090113196A1 (en) * | 2007-10-27 | 2009-04-30 | Hsun-Yao Jan | Method and systems for advanced reprogrammable boot codes and in-application programming of embedded microprocessor systems |
CN101557583A (zh) * | 2009-03-19 | 2009-10-14 | 珠海银邮光电技术发展股份有限公司 | 直放站设备嵌入式软件的远程升级与版本切换方法 |
US20090307677A1 (en) * | 2008-06-05 | 2009-12-10 | International Business Machines Corporation | Reliably Updating Computer Firmware While Performing Command and Control Functions On a Power/Thermal Component In a High-Availability, Fault-Tolerant, High-Performance Server |
CN102075564A (zh) * | 2010-12-23 | 2011-05-25 | 李华嵩 | 一种远程软件升级技术方法 |
CN105354063A (zh) * | 2015-11-18 | 2016-02-24 | 上海联影医疗科技有限公司 | 程序在线升级方法及系统 |
CN106020861A (zh) * | 2016-05-05 | 2016-10-12 | 惠州Tcl移动通信有限公司 | 一种智能手表的fota升级方法及系统 |
-
2016
- 2016-11-30 CN CN201611083731.2A patent/CN108132797A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030167373A1 (en) * | 2002-03-01 | 2003-09-04 | Derek Winters | Method and system for reducing storage requirements for program code in a communication device |
CN1929669A (zh) * | 2006-07-25 | 2007-03-14 | 浙江三维通信股份有限公司 | 一种直放站设备嵌入式软件在应用远程升级的方法 |
US20090113196A1 (en) * | 2007-10-27 | 2009-04-30 | Hsun-Yao Jan | Method and systems for advanced reprogrammable boot codes and in-application programming of embedded microprocessor systems |
US20090307677A1 (en) * | 2008-06-05 | 2009-12-10 | International Business Machines Corporation | Reliably Updating Computer Firmware While Performing Command and Control Functions On a Power/Thermal Component In a High-Availability, Fault-Tolerant, High-Performance Server |
CN101557583A (zh) * | 2009-03-19 | 2009-10-14 | 珠海银邮光电技术发展股份有限公司 | 直放站设备嵌入式软件的远程升级与版本切换方法 |
CN102075564A (zh) * | 2010-12-23 | 2011-05-25 | 李华嵩 | 一种远程软件升级技术方法 |
CN105354063A (zh) * | 2015-11-18 | 2016-02-24 | 上海联影医疗科技有限公司 | 程序在线升级方法及系统 |
CN106020861A (zh) * | 2016-05-05 | 2016-10-12 | 惠州Tcl移动通信有限公司 | 一种智能手表的fota升级方法及系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109246639B (zh) * | 2018-09-18 | 2021-08-06 | 快快利华(北京)网络科技有限公司 | 一种数据网关系统及其通信方法 |
CN109118744A (zh) * | 2018-11-02 | 2019-01-01 | 成都世纪光合作用科技有限公司 | 一种无线遥控器 |
CN111984298A (zh) * | 2020-07-17 | 2020-11-24 | 歌尔光学科技有限公司 | 一种闪存中的程序升级区、程序升级方法及系统 |
CN111984298B (zh) * | 2020-07-17 | 2023-07-25 | 歌尔科技有限公司 | 一种闪存中的程序升级区、程序升级方法及系统 |
CN112256338A (zh) * | 2020-10-27 | 2021-01-22 | 记忆科技(深圳)有限公司 | Soc启动方法、装置、计算机设备及存储介质 |
CN112256338B (zh) * | 2020-10-27 | 2023-12-05 | 记忆科技(深圳)有限公司 | Soc启动方法、装置、计算机设备及存储介质 |
CN112631637A (zh) * | 2020-12-30 | 2021-04-09 | 重庆芯讯通无线科技有限公司 | 基于rtos的ota升级方法、系统、设备及存储介质 |
CN112631637B (zh) * | 2020-12-30 | 2024-04-02 | 重庆芯讯通无线科技有限公司 | 基于rtos的ota升级方法、系统、设备及存储介质 |
CN112988206A (zh) * | 2021-03-26 | 2021-06-18 | 东莞市峰谷科技有限公司 | 一种不影响应用程序调试的BootLoader方法 |
CN115437672A (zh) * | 2022-09-15 | 2022-12-06 | 深圳思凌科技术有限公司 | 基于soc芯片的用户程序更新方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108132797A (zh) | 一种遥控器、SoC芯片及其应用程序的升级方法 | |
CN110083374B (zh) | 一种升级回滚方法、系统及终端设备 | |
CN106020875B (zh) | 嵌入式终端的固件更新管理方法和装置 | |
CN102945176B (zh) | 终端设备开机、升级方法和设备 | |
CN104133709B (zh) | 嵌入式系统的升级方法和装置 | |
CN112000355B (zh) | 用于固件升级的方法及装置、家电设备 | |
CN108833542B (zh) | Tws耳机的升级方法及tws耳机 | |
CN111930406B (zh) | 车载终端微控制单元软件升级方法、电子设备及存储介质 | |
EP4092524B1 (en) | Ota differential upgrade method and system of master-slave architecture | |
CN104283878A (zh) | 基于云服务的安全型移动终端及其访问云服务器的方法 | |
KR20170125896A (ko) | 데이터 전송 방법 및 장치, 프로세서, 및 이동 단말기 | |
CN111309354A (zh) | 联网设备的ota升级方法及装置 | |
CN112383908A (zh) | 一种蓝牙设备的升级方法及系统 | |
CN103488501A (zh) | 光网络终端设备及其系统软件升级方法 | |
CN103618767B (zh) | 一种虚拟机配置的方法以及相关设备 | |
CN112416411A (zh) | 升级方法及装置、设备端、服务器、计算机可读介质 | |
WO2020113478A1 (zh) | 地址信息处理方法、装置、电子设备及存储介质 | |
WO2024041283A1 (zh) | 一种客户端升级方法、装置、终端设备及存储介质 | |
CN110837381B (zh) | 投影设备的软件升级方法及装置 | |
WO2019136798A1 (zh) | 一种网关的创建方法、装置、计算机设备及存储介质 | |
CN107466087A (zh) | 一种网络搜索方法及移动终端 | |
CN115269117A (zh) | 一种资源创建方法、装置、计算机设备及存储介质 | |
CN111176693B (zh) | 一种数字电视系统的升级方法 | |
CN112887155B (zh) | QoS关联信息同步方法及相关产品 | |
KR101206639B1 (ko) | 이동통신 단말기의 펌웨어 업데이트 서버 및 그 방법 |
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 | ||
CB02 | Change of applicant information |
Address after: 266555 Qingdao economic and Technological Development Zone, Shandong, Hong Kong Road, No. 218 Applicant after: Hisense Visual Technology Co., Ltd. Address before: 266100 Zhuzhou Road, Laoshan District, Shandong, No. 151, No. Applicant before: QINGDAO HISENSE ELECTRONICS Co.,Ltd. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180608 |
|
RJ01 | Rejection of invention patent application after publication |