CN112416392A - 一种基于端云的终端固件动态加载方法 - Google Patents
一种基于端云的终端固件动态加载方法 Download PDFInfo
- Publication number
- CN112416392A CN112416392A CN202011290407.4A CN202011290407A CN112416392A CN 112416392 A CN112416392 A CN 112416392A CN 202011290407 A CN202011290407 A CN 202011290407A CN 112416392 A CN112416392 A CN 112416392A
- Authority
- CN
- China
- Prior art keywords
- firmware
- equipment
- module
- flash
- cloud server
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于端云的终端固件动态加载方法,包括以下步骤:S100:使整个代码模块化,并分别独立生成各自的模块bin文件;在链接脚本.ld文件中对flash进行模块分区;S200:将各模块bin文件和升级设备的设备信息存放在云服务器;S300:在设备的flash指定地址处烧写设备相关信息,包含具备哪些功能模块和各自固件flash起始位置的设备属性集,并且设备属性集和云服务器同步;S400:获取到升级任务后,解析具体升级哪个功能模块的固件和烧写地址,从云服务器下载相对应的固件,并烧写到规划的flash区域,然后重启更新程序;S500:设备启动后根据设备属性集来启动相对应的功能模块。采取本方法,完全不影响设备功能的前提下,从根源上减少了升级包的大小。
Description
技术领域
本发明涉及基于端云的远程升级技术领域,更具体的说是涉及一种基于端云的终端固件动态加载方法。
背景技术
当今物联网嵌入式设备软件需要不断得迭代优化来满足人们对设备功能的需求和体验感的提升,必然要涉及到软件的升级更新问题。目前升级方案和形式很多,各种通信模组与云端通信下载升级包,然后更新软件。但大多不外乎对整体固件进行下载更新。
而整块固件的体量对使用流量卡(2G/3G/4G/5G/nb)的低功耗设备来说相对比较庞大,势必会增加使用成本和升级等待时间,从而使用户对设备升级的体验感很差。因此此类问题就亟待解决。
发明内容
本发明的目的在于提供一种基于端云的终端固件动态加载方法,以期解决背景技术中存在的技术问题。
为了实现上述目的,本发明采用以下技术方案:
一种基于端云的终端固件动态加载方法,包括以下步骤:
S100:使整个代码模块化,并分别独立生成各自的模块bin文件;在链接脚本.ld文件中对flash进行模块分区;
S200:将各模块bin文件和升级设备的设备信息存放在云服务器;
S300:在设备的flash指定地址处烧写设备相关信息,包含具备哪些功能模块和各自固件flash起始位置的设备属性集,并且设备属性集和云服务器同步;
S400:获取到升级任务后,解析具体升级哪个功能模块的固件和烧写地址,从云服务器下载相对应的固件,并烧写到规划的flash区域,然后重启更新程序;
S500:设备启动后根据设备属性集来启动相对应的功能模块。
进一步的,所述使整个代码模块化,并分别独立生成各自的模块bin文件,包括:基础功能模块base_fun和各业务模块app_fun并分别独立生成各自的模块固件bin文件。
进一步的,所述flash进行模块分区包括:bootloader,base_fun,app_fun,其中bootloader和base_fun是设备基本固件,base_fun_2是base_fun_1的备份区域,用于设备重置恢复初始设置。
进一步的,所述设备属性集是一类产品具备哪些功能集和flash储存区域的起始位置,设备需要通过这个来跳转启动各个功能模块的起始位置,可以从云服务器上获取,并储存到flash中。
进一步的,所述S400中,升级任务的触发条件是:设备自身启动检测云服务器的升级任务或云服务器推送或者手机用户终端来触发,设备升级更新完后要向云服务器上报当前各功能模块固件的版本号。
本发明与现有技术相比具有的有益效果是:
①对于使用流量卡的终端来说,减少了升级数据流量就是减少了使用成本;
②升级包体量减少,大大提高了升级的效率和减少了在升级的发生故障的概率;
③对于产品开发这边,是代码模块化,便于动态管理升级版本,对后期产品新加功能提供了便利。
附图说明
图1为本发明的嵌入式设备网络图;
图2本发明的嵌入式设备flash分区示例图;
图3本发明的嵌入式设备升级流程图。
具体实施方式
下面结合实施例对本发明作进一步的描述,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域的普通技术人员在没有做出创造性劳动前提下所获得的其他所用实施例,都属于本发明的保护范围。
实施例1:
如图1-3所示,一种基于端云的终端固件动态加载方法,包括以下步骤:
S100:使整个代码模块化,并分别独立生成各自的模块bin文件;在链接脚本.ld文件中对flash进行模块分区;
S200:将各模块bin文件和升级设备的设备信息存放在云服务器;
S300:在设备的flash指定地址处烧写设备相关信息,包含具备哪些功能模块和各自固件flash起始位置的设备属性集,并且设备属性集和云服务器同步;
S400:获取到升级任务后,解析具体升级哪个功能模块的固件和烧写地址,从云服务器下载相对应的固件,并烧写到规划的flash区域,然后重启更新程序;
S500:设备启动后根据设备属性集来启动相对应的功能模块。
首先需要改造自己的代码框架,使其模块化,即化分为基础功能模块和各业务模块,并分别对立生成各自的模块固件bin文件。在链接脚本.ld文件中对flash进行模块分区;
flash分区大致为bootloader,base_fun,app_fun,其中bootloader和base_fun是设备基本固件,设备自带,不常更新。base_fun是设备通用功能模块,包含与云服务器的通信、设备相关硬件的初始化等基础功能,base_fun_2是base_fun_1的备份区域,用于设备重置恢复初始设置。app_fun是设备的具体业务相关的功能,可以有多个不同的app_fun;
base_fun可以根据设备属性集来确定启动哪些区域的代码段;
云服务器上要部署升级设备的设备信息(如设备类型,SN,设备属性集)和各功能模块的固件bin,其中设备属性集是一类产品具备哪些功能集和flash储存区域的起始位置,设备需要通过这个来跳转启动各个功能模块的起始位置,可以从云服务器上获取,并储存到flash中;
设备升级的触发可以是设备自身启动检测云端的升级任务,也可以是云端推送或者手机等用户终端来触发,设备升级更新完后要向云服务器上报当前各功能模块固件的版本号。
根据升级任务下载相对应的功能模块的固件,并烧写到相对于该模块固件的flash地址区域;
烧写完毕后,设备重启,根据设备的产品能力集,启动到相对功能模块的运行地址区。
可以通过配置和修改云服务器的设备属性集来灵活管控大产品类的设备。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种基于端云的终端固件动态加载方法,其特征在于,包括以下步骤:
S100:使整个代码模块化,并分别独立生成各自的模块bin文件;在链接脚本.ld文件中对flash进行模块分区;
S200:将各模块bin文件和升级设备的设备信息存放在云服务器;
S300:在设备的flash指定地址处烧写设备相关信息,包含具备哪些功能模块和各自固件flash起始位置的设备属性集,并且设备属性集和云服务器同步;
S400:获取到升级任务后,解析具体升级哪个功能模块的固件和烧写地址,从云服务器下载相对应的固件,并烧写到规划的flash区域,然后重启更新程序;
S500:设备启动后根据设备属性集来启动相对应的功能模块。
2.根据权利要求1所述的一种基于端云的终端固件动态加载方法,其特征在于,所述使整个代码模块化,并分别独立生成各自的模块bin文件,包括:基础功能模块base_fun和各业务模块app_fun并分别独立生成各自的模块固件bin文件。
3.根据权利要求1所述的一种基于端云的终端固件动态加载方法,其特征在于,所述flash进行模块分区包括:bootloader,base_fun,app_fun,其中bootloader和base_fun是设备基本固件,base_fun_2是base_fun_1的备份区域,用于设备重置恢复初始设置。
4.根据权利要求1所述的一种基于端云的终端固件动态加载方法,其特征在于,所述设备属性集是一类产品具备哪些功能集和flash储存区域的起始位置,设备需要通过这个来跳转启动各个功能模块的起始位置,可以从云服务器上获取,并储存到flash中。
5.根据权利要求1所述的一种基于端云的终端固件动态加载方法,其特征在于,所述S400中,升级任务的触发条件是:设备自身启动检测云服务器的升级任务或云服务器推送或者手机用户终端来触发,设备升级更新完后要向云服务器上报当前各功能模块固件的版本号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011290407.4A CN112416392A (zh) | 2020-11-17 | 2020-11-17 | 一种基于端云的终端固件动态加载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011290407.4A CN112416392A (zh) | 2020-11-17 | 2020-11-17 | 一种基于端云的终端固件动态加载方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112416392A true CN112416392A (zh) | 2021-02-26 |
Family
ID=74831635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011290407.4A Pending CN112416392A (zh) | 2020-11-17 | 2020-11-17 | 一种基于端云的终端固件动态加载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112416392A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103347095A (zh) * | 2013-07-22 | 2013-10-09 | 广州市交通信息中心 | 一种车联网系统中的无线固件更新方法 |
CN105487909A (zh) * | 2016-01-14 | 2016-04-13 | 江苏林洋能源股份有限公司 | 一种减少电力设备固件升级量的方法 |
KR20180050001A (ko) * | 2016-11-04 | 2018-05-14 | 김형만 | 사물인터넷 기기의 펌웨어 업그레이드 시스템 및 방법 |
CN109445823A (zh) * | 2018-11-02 | 2019-03-08 | 长虹美菱股份有限公司 | 一种mcu固件快速升级方法 |
CN109558160A (zh) * | 2017-09-26 | 2019-04-02 | 阿里巴巴集团控股有限公司 | 升级方法、嵌入式系统 |
CN111769962A (zh) * | 2019-04-01 | 2020-10-13 | 成都启英泰伦科技有限公司 | 一种mcu固件ota升级方法 |
-
2020
- 2020-11-17 CN CN202011290407.4A patent/CN112416392A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103347095A (zh) * | 2013-07-22 | 2013-10-09 | 广州市交通信息中心 | 一种车联网系统中的无线固件更新方法 |
CN105487909A (zh) * | 2016-01-14 | 2016-04-13 | 江苏林洋能源股份有限公司 | 一种减少电力设备固件升级量的方法 |
KR20180050001A (ko) * | 2016-11-04 | 2018-05-14 | 김형만 | 사물인터넷 기기의 펌웨어 업그레이드 시스템 및 방법 |
CN109558160A (zh) * | 2017-09-26 | 2019-04-02 | 阿里巴巴集团控股有限公司 | 升级方法、嵌入式系统 |
CN109445823A (zh) * | 2018-11-02 | 2019-03-08 | 长虹美菱股份有限公司 | 一种mcu固件快速升级方法 |
CN111769962A (zh) * | 2019-04-01 | 2020-10-13 | 成都启英泰伦科技有限公司 | 一种mcu固件ota升级方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150100955A1 (en) | Method and System for Updating Software | |
CN105045611B (zh) | 一种升级方法及装置 | |
CN105718287B (zh) | 一种智能终端的程序流式执行方法 | |
CN102073512B (zh) | 一种java集群应用系统代码装载及升级装置和方法 | |
CN107367949B (zh) | 获取产品标识的方法、装置和系统 | |
KR100940179B1 (ko) | 무선 통신 장치 소프트웨어 코드 섹션의 현장 다운로드시스템 및 방법 | |
CN102855152B (zh) | 升级应用程序中资源文件的方法及系统 | |
WO2019024754A1 (zh) | 页面加载的方法、装置和系统 | |
CN102833350A (zh) | WebApp更新的处理方法和处理装置 | |
CN100403263C (zh) | 按配置下载设备软件的方法 | |
CN102546777A (zh) | 移动终端桌面信息推送系统及其方法 | |
CN103678319A (zh) | 资源文件更新方法、装置和系统及服务器 | |
CN107483241B (zh) | 一种在网元升级过程中下载升级镜像版本的方法和装置 | |
CN101211265A (zh) | 一种终端嵌入式系统的软件更新方法和装置 | |
CN104750528A (zh) | 一种Android程序中的组件管理方法和装置 | |
CN111708566A (zh) | 软件增量更新方法、装置、系统及计算机可读存储介质 | |
CN112506584B (zh) | 资源文件加载方法、装置、设备、存储介质以及产品 | |
CN102137390A (zh) | 手机软件下载方法、设备和系统 | |
CN109189460A (zh) | 离线固件升级系统及方法 | |
US10078532B2 (en) | Resource management method and device for terminal system among multiple operating systems | |
CN109885332A (zh) | 画质芯片软件升级方法、装置、显示设备及存储介质 | |
JP7257554B2 (ja) | モデルファイルのディストリビューション方法、プラットホーム、システム、端末及び可読記憶媒体 | |
CN106201588A (zh) | 终端的软件升级方法和终端 | |
CN109002314A (zh) | 软件更新方法、装置、电子设备及存储介质 | |
CN105094919A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210226 |
|
RJ01 | Rejection of invention patent application after publication |