CN110941433A - 一种边缘辅助部署第三方应用到微控制器方法及系统 - Google Patents
一种边缘辅助部署第三方应用到微控制器方法及系统 Download PDFInfo
- Publication number
- CN110941433A CN110941433A CN201911104319.8A CN201911104319A CN110941433A CN 110941433 A CN110941433 A CN 110941433A CN 201911104319 A CN201911104319 A CN 201911104319A CN 110941433 A CN110941433 A CN 110941433A
- Authority
- CN
- China
- Prior art keywords
- application
- instruction
- module
- node
- edge 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000015654 memory Effects 0.000 claims abstract description 53
- 238000011161 development Methods 0.000 claims abstract description 10
- 230000008859 change Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 10
- 229910002056 binary alloy Inorganic materials 0.000 claims description 9
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 230000001419 dependent effect Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 8
- 238000005192 partition Methods 0.000 description 8
- 230000003068 static effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
-
- 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/658—Incremental updates; Differential 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
- G06F9/4552—Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/48—Incremental compilation
-
- 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/44557—Code layout in executable memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种边缘辅助部署第三方应用到微控制器方法及系统,通过发出指令包到边缘服务器,根据指令包应用在暂存在边缘服务器上的当前节点中间字节码内容上,将设备的经更新的中间字节码编译成对应的原生指令集代码;根据编译结果分配各个应用程序分区的大小;根据分配的各个应用的内存地址静态或动态链接各个应用到相应的位置,生成二进制映像下载到应用节点之内,完成应用节点的更新;减少了网络带宽的使用量,并且加快了应用程序的部署;增加了在资源紧凑的微控制器上的代码执行效率,也大大减少了对内存的使用量;降低了微控制器的软件复杂度和开发负担。
Description
技术领域
本公开涉及程序部署、嵌入式系统领域,具体涉及一种边缘辅助部署第三方应用到微控制器方法及系统,适用于多应用程序微控制器嵌入式系统的应用程序部署。
背景技术
随着技术的进步,各类嵌入式设备和非嵌入式设备及其组织方法日益复杂,因此其内部分为多个保护域,并在每个保护域中运行。在设备上动态部署多个应用程序的需求也在快速增加。然而,微控制器并不具备内存管理单元(Memory Management Unit,MMU)而仅具备内存保护单元(Memory Protection Unit,MPU);MMU可以进行从虚拟地址到实地址的映射,而MPU则不具备这一功能,这意味着各个分区的位置在开发软件时都要静态用户,否则就要使用位置无关代码(Position Independent Code,PIC)。
现有的此类系统的应用程序部署方法有三种,其第一种采取静态编译代码到固定地址的方案,第二种采取位置无关代码的方案,第三种采取在云端下载固件的方案。
第一种方案在软件设计时静态用户各个分区的大小。首先,由各个第三方开发者根据系统需求完成各个分区的代码编写。之后这些第三方应用将会被编译以得到它们占用的存储器大小。然后,用户或者自动化工具根据这些数据分配第三方应用的各个段落的确切位置,并且将第三方应用静态编译链接到这些位置。这种方案虽然不使用位置无关代码,降低了系统复杂程度和开发难度,并且节省了存储器空间,但是却使得应用升级困难。这是由于,在应用升级时,如果新的应用比原有应用的体积大,就不能放入原有的分区之中了。如果为了未来的升级而预留出分区空间,那么又会造成浪费。最后,如果要在这个系统中添加新的分区也非常困难,因为没有虚拟地址的存在,新的第三方应用必须在已有应用的内存布局中找到空隙。
第二种方案使用位置无关代码。各个第三方开发者将应用程序编译为位置无关代码,并且由操作系统或者Bootloader在上电后指定这些应用程序的代码段和/或数据段在内存中的布局。这样固然可以解决应用内存布局碎片化的问题,但是却使用了位置无关代码;这种代码的执行效率低下,并且代码密度也较低,此外安全性也较差。
第三种方案在云端重新静态编译固件、重新分配各个保护域并且进行下载。这种方法虽然没有前两种方法所造成的问题,但从云端重新下发整个软件包往往会消耗大量的网络带宽,特别是通过计费网络时,而且待升级设备上所有的应用程序都必须通过网络整体重载,进一步激化了这个问题。
发明内容
为了解决上述问题,本公开提供一种边缘辅助部署第三方应用到微控制器方法及系统,通过发出指令包到边缘服务器,根据指令包应用在暂存在边缘服务器上的当前节点中间字节码内容上,将设备的经更新的中间字节码编译成对应的原生指令集代码;根据编译结果分配各个应用程序分区的大小;根据分配的各个应用的内存地址静态或动态链接各个应用到相应的位置,生成二进制映像下载到应用节点之内,完成应用节点的更新。
为了实现上述目的,根据本公开的一方面,提供一种边缘辅助部署第三方应用到微控制器方法,所述方法包括以下步骤:
S100:应用更改收集模块发出差分升级指令、删除指令、下载指令任意一种或多种并打成指令包,并传输指令包到边缘服务器;
S200:应用信息收集模块接收指令包并进行解包并将指令包的内容应用在暂存在边缘服务器上的当前节点中间字节码内容上;
S300:代码生成模块将设备的经更新的中间字节码编译成对应的原生指令集代码;
S400:内存地址分配模块根据编译结果分配各个应用程序分区的大小;
S500:应用链接模块根据分配的各个应用的内存地址静态或动态链接各个应用到相应的位置,生成二进制映像;
S600:应用加载模块将二进制映像下载到应用节点之内,完成应用节点的更新。
进一步地,所述方法依赖的边缘辅助部署第三方应用到微控制器系统包括:应用更改收集模块、应用信息收集模块,代码生成模块,内存地址分配模块、应用链接模块和应用加载模块;其中,应用更改收集模块运行在用户的开发机或客户端上;应用信息收集模块、代码生成模块、内存地址分配模块和应用链接模块运行在边缘服务器上;应用加载模块则运行在物联网节点上。
进一步地,在S100中,应用更改收集模块发出差分升级指令、删除指令、下载指令任意一种或多种的方法为:当用户选择更新应用程序时,应用更改收集模块将该应用程序编译成中间字节码,然后和原有应用程序的中间字节码相比,发出含有字节码净变化的应用程序的差分升级指令(Diff);用户选择删除某个应用程序时,发出应用程序的删除指令;用户选择增加某个应用程序时,将新增的应用程序编译成中间字节码,并发出含有这些中间字节码的应用程序的下载指令。
进一步地,在S100中,在一组第三方应用程序初次被部署到某个空的物联网节点时,全部的应用程序都被视为新增,并且分别生成应用程序的下载指令。
进一步地,在S100中,所述边缘服务器可以是一个或多个并且可以以任何形式与物联网节点连接,边缘服务器为用户提供一个进入物联网的网络的通道或与其它服务器设备通讯的功能。
进一步地,在S200中,将指令包的内容应用在暂存在边缘服务器上的当前节点的方法为:运行在边缘服务器上的应用信息收集模块接收到指令包并对其进行解包,并将该包的内容应用在暂存在边缘服务器上的当前节点中间字节码内容上;如果是差分升级指令,那么则将差分升级指令应用于暂存在边缘服务器上的原应用中间字节码;如果是删除指令,那么将原应用中间字节码删除;如果是下载指令,则添加新应用的中间字节码到节点的中间字节码内容中。最终的节点中间字节码状态仍然被暂存在边缘服务器上,其中,节点为物联网或嵌入式设备构成的网络节点。
进一步地,在S300中,经更新的中间字节码为步骤S200执行指令处理后的中间字节码。
进一步地,在S300中,编译成对应的原生指令集代码的编译器包括LLVM编译器,GCC编译器。
本发明还提供了一种边缘辅助部署第三方应用到微控制器系统,所述系统包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下系统的模块中:
应用更改收集模块,用于发出差分升级指令、删除指令、下载指令任意一种或多种并打成指令包,并传输指令包到边缘服务器;
应用信息收集模块,用于接收指令包并进行解包并将指令包的内容应用在暂存在边缘服务器上的当前节点中间字节码内容上;
代码生成模块,用于将设备的经更新的中间字节码编译成对应的原生指令集代码;
内存地址分配模块,用于根据编译结果分配各个应用程序分区的大小;
应用链接模块,用于根据分配的各个应用的内存地址静态或动态链接各个应用到相应的位置,生成二进制映像;
应用加载模块,用于将二进制映像下载到应用节点之内,完成应用节点的更新。
本公开的有益效果为:本技术方案大大简化了基于微控制器的或无虚拟内存的物联网节点的应用程序更新,并且能很好地相容于各种第三方应用程序内存布局。
第一,由于在本发明中中间字节码在边缘服务器有一份暂存,因此从用户开发机到边缘服务器只传输被更新的应用程序,而不需要传输所有应用程序(在第一次部署应用程序时则例外)。这大大减少了网络带宽的使用量,并且加快了应用程序的部署。
第二,本发明使得位置无关代码的使用变得没有必要。这大大增加了在资源紧凑的微控制器上的代码执行效率,也大大减少了对内存的使用量。
第三,本发明可以生成静态链接的代码,又可以任意重新分配内存布局。这使得部署更大的应用程序版本或者增加新应用程序成为可能。
第四,本发明的绝大多数步骤都在资源丰富的开发机和边缘服务器上执行,而资源贫弱的微控制器端则只要具备更新整个二进制映像的功能,这大大降低了微控制器的软件复杂度和开发负担,有助于最大限度地减少成本。
附图说明
通过对结合附图所示出的实施方式进行详细说明,本公开的上述以及其他特征将更加明显,本公开附图中相同的参考标号表示相同或相似的元素,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,在附图中:
图1所示为一种边缘辅助部署第三方应用到微控制器方法的流程图;
图2所示为一种边缘辅助部署第三方应用到微控制器系统结构图。
具体实施方式
以下将结合实施例和附图对本公开的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本公开的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示为根据本公开的一种边缘辅助部署第三方应用到微控制器方法的流程图,下面结合图1来阐述根据本公开的实施方式的一种边缘辅助部署第三方应用到微控制器方法。
本公开提出一种边缘辅助部署第三方应用到微控制器方法,具体包括以下步骤:
本发明公开一种边缘辅助的部署第三方应用程序到微控制器的方法,其中,所述方法包括:应用更改收集模块、应用信息收集模块,代码生成模块,内存地址分配模块、应用链接模块和应用加载模块。其中,应用更改收集模块运行在用户的开发机上。应用信息收集模块、代码生成模块、内存地址分配模块和应用链接模块运行在边缘服务器上。应用加载模块则运行在物联网节点上。
(1)当用户更新某个应用程序、删除某个应用程序或者增加某个应用程序。当用户更新某个应用程序时,应用更改收集模块将该应用程序编译成中间字节码,然后和原有应用程序的中间字节码相比,发出含有字节码净变化的应用程序的差分升级指令(Diff);当用户删除某个应用程序时,发出应用程序的删除指令;当用户增加某个应用程序时,将新增的应用程序编译成中间字节码,并发出含有这些中间字节码的应用程序的下载指令;
(2)在一组第三方应用程序初次被部署到某个空的物联网节点时,全部的应用程序都被视为新增,并且分别生成其应用程序下载指令。
(3)应用更改收集模块接收并打包差分升级指令、删除指令、下载指令成指令包,从用户的开发机下载指令包到边缘服务器。所述边缘服务器可以是一个或多个并且可以以任何形式互联,只要其完成的功能与本专利描述的各个模块无异。
(4)运行在边缘服务器上的应用信息收集模块接收到指令包并对其进行解包,并将该包的内容应用在暂存在边缘服务器上的当前节点中间字节码内容上。如果是差分升级指令,那么则将差分升级指令应用于暂存在边缘服务器上的原应用中间字节码;如果是删除指令,那么将原应用中间字节码删除;如果是下载指令,则添加新应用的中间字节码到节点的中间字节码内容中。最终的节点中间字节码状态仍然被暂存在边缘服务器上。
(5)边缘服务器调用代码生成模块,将设备的经更新的中间字节码编译成对应的原生指令集代码。
(6)边缘服务器调用内存地址分配模块,根据编译结果分配各个应用程序分区的大小。
(7)边缘服务器调用应用链接模块,根据分配的各个应用的内存地址静态或动态链接各个应用到相应的位置,生成合适于下载到物联网节点的二进制映像。当采取静态链接时,即可避免生成位置无关代码,提升系统的运行效率。
(8)边缘服务器唤起运行在物联网节点上的应用加载模块,将这些二进制映像下载到应用节点之内,完成应用节点的更新。
所述方法依赖的边缘辅助部署第三方应用到微控制器系统包括:应用更改收集模块、应用信息收集模块,代码生成模块,内存地址分配模块、应用链接模块和应用加载模块;其中,应用更改收集模块运行在用户的开发机或客户端上;应用信息收集模块、代码生成模块、内存地址分配模块和应用链接模块运行在边缘服务器上;应用加载模块则运行在物联网节点上。
本实施给出2个非常简要的具体实施例,在本实施例中,我们假设共有A、B、C、D四个应用程序,而且物联网节点的初始应用程序状态为空。
(实施例1)
(1)当用户开始向该物联网节点部署A,B,C三个应用程序,并向位于开发机的应用更改收集模块发送该指令。
(2)应用更改收集模块收到上述指令,并生成这三个应用程序的下载指令Ad,Bd和Cd。这些下载指令中分别含有A、B、C三个应用程序的中间字节码Ai,Bi和Ci。
(3)边缘服务器接收到Ad,Bd和Cd。由于当前物联网节点为空,因此暂存的节点中间字节码状态为空。此时,边缘服务器更新暂存的中间字节码状态为Ai、Bi和Ci。
(4)边缘服务器将Ai、Bi、Ci通过代码生成模块编译成能够在微控制器上执行的本地代码Ac,Bc和Cc。
(5)边缘服务器为Ac、Bc和Cc通过内存地址分配模块分配合适的地址。
(6)边缘服务器使用应用链接模块,链接Ac、Bc和Cc为最终能够下载到物联网节点的二进制映像,并将该映像下载到物联网节点中开始运行。
(接上,实施例2)
(7)当用户向物联网节点中添加应用程序D,并且更新C的版本为C2,同时除去应用程序B。
(8)应用更改收集模块得到上述指令,并生成应用程序D的下载指令Dd,应用程序C的差分升级指令Cu,应用程序B的删除指令Br。Dd中含有D的中间字节码Di,Cu中含有C2的中间字节码C2i和Ci不同的那些部分,Br则不含有除删除指令外的任何东西。
(9)边缘服务器接收到Dd、Cu和Br。由于当前暂存的中间字节码状态位Ai、Bi和Ci,因此应用Dd得到组合Ai、Bi、Ci和Di,应用Cu得到组合Ai、Bi、C2i和Di,最后应用Br得到组合Ai、Bi、C2i和Di,即为最终的暂存中间字节码状态。
(10)边缘服务器将Ai、C2i、Di通过代码生成模块编译成能够在微控制器上执行的本地代码Ac,C2c和Dc。
(11)边缘服务器为Ac,C2c和Dc通过内存地址分配模块分配合适的地址。
(12)边缘服务器使用应用链接模块,链接Ac,C2c和Dc为最终能够下载到物联网节点的二进制映像,并将该映像下载到物联网节点中开始运行。
从本实施例中可以看到,由于中间字节码在边缘服务器有暂存,因此在更新时只需要传递那些必要部分。而且,应用程序的分区位置是在编译后用户的,因此不存在分区被固定指定而不能灵活更新、不能添加新应用程序的问题。此外,应用程序最终将被静态链接,因此也同样不存在位置无关代码造成的执行效率和存储器容量损失。
其中,第三方应用程序为用户自己行编写的程序,不是嵌入式设备或物联网硬件厂商的程序。
本公开的实施例提供的一种边缘辅助部署第三方应用到微控制器系统,如图2所示为本公开的一种边缘辅助部署第三方应用到微控制器系统结构图,该实施例的一种边缘辅助部署第三方应用到微控制器系统包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种边缘辅助部署第三方应用到微控制器系统实施例中的步骤。
所述系统包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下系统的模块中:
应用更改收集模块,用于发出差分升级指令、删除指令、下载指令任意一种或多种并打成指令包,并传输指令包到边缘服务器;
应用信息收集模块,用于接收指令包并进行解包并将指令包的内容应用在暂存在边缘服务器上的当前节点中间字节码内容上;
代码生成模块,用于将设备的经更新的中间字节码编译成对应的原生指令集代码;
内存地址分配模块,用于根据编译结果分配各个应用程序分区的大小;
应用链接模块,用于根据分配的各个应用的内存地址静态或动态链接各个应用到相应的位置,生成二进制映像;
应用加载模块,用于将二进制映像下载到应用节点之内,完成应用节点的更新。
所述一种边缘辅助部署第三方应用到微控制器系统可以运行于桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备中。所述一种边缘辅助部署第三方应用到微控制器系统,可运行的系统可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述例子仅仅是一种边缘辅助部署第三方应用到微控制器系统的示例,并不构成对一种边缘辅助部署第三方应用到微控制器系统的限定,可以包括比例子更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种边缘辅助部署第三方应用到微控制器系统还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述一种边缘辅助部署第三方应用到微控制器系统运行系统的控制中心,利用各种接口和线路连接整个一种边缘辅助部署第三方应用到微控制器系统可运行系统的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述一种边缘辅助部署第三方应用到微控制器系统的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
尽管本公开的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,而是应当将其视作是通过参考所附权利要求考虑到现有技术为这些权利要求提供广义的可能性解释,从而有效地涵盖本公开的预定范围。此外,上文以发明人可预见的实施例对本公开进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本公开的非实质性改动仍可代表本公开的等效改动。
Claims (7)
1.一种边缘辅助部署第三方应用到微控制器方法,其特征在于,所述方法包括以下步骤:
S100:应用更改收集模块发出差分升级指令、删除指令、下载指令任意一种或多种并打成指令包,并传输指令包到边缘服务器;
S200:应用信息收集模块接收指令包并进行解包并将指令包的内容应用在暂存在边缘服务器上的当前节点中间字节码内容上;
S300:代码生成模块将设备的经更新的中间字节码编译成对应的原生指令集代码;
S400:内存地址分配模块根据编译结果分配各个应用程序分区的大小;
S500:应用链接模块根据分配的各个应用的内存地址静态或动态链接各个应用到相应的位置,生成二进制映像;
S600:应用加载模块将二进制映像下载到应用节点之内,完成应用节点的更新。
2.根据权利要求1所述的一种边缘辅助部署第三方应用到微控制器方法,其特征在于,所述方法依赖的边缘辅助部署第三方应用到微控制器系统包括:应用更改收集模块、应用信息收集模块,代码生成模块,内存地址分配模块、应用链接模块和应用加载模块;其中,应用更改收集模块运行在用户的开发机或客户端上;应用信息收集模块、代码生成模块、内存地址分配模块和应用链接模块运行在边缘服务器上;应用加载模块则运行在物联网节点上。
3.根据权利要求1所述的一种边缘辅助部署第三方应用到微控制器方法,其特征在于,在S100中,应用更改收集模块发出差分升级指令、删除指令、下载指令任意一种或多种的方法为:当用户选择更新应用程序时,应用更改收集模块将该应用程序编译成中间字节码,然后和原有应用程序的中间字节码相比,发出含有字节码净变化的应用程序的差分升级指令;用户选择删除某个应用程序时,发出应用程序的删除指令;用户选择增加某个应用程序时,将新增的应用程序编译成中间字节码,并发出含有这些中间字节码的应用程序的下载指令。
4.根据权利要求1所述的一种边缘辅助部署第三方应用到微控制器方法,其特征在于,在S100中,在一组第三方应用程序初次被部署到某个空的物联网节点时,全部的应用程序都被视为新增,并且分别生成应用程序的下载指令。
5.根据权利要求1所述的一种边缘辅助部署第三方应用到微控制器方法,其特征在于,在S100中,所述边缘服务器可以是一个或多个并且可以以任何形式与物联网节点连接,边缘服务器为用户提供一个进入物联网的网络的通道或与其它服务器设备通讯的功能。
6.根据权利要求1所述的一种边缘辅助部署第三方应用到微控制器方法,其特征在于,在S200中,将指令包的内容应用在暂存在边缘服务器上的当前节点的方法为:运行在边缘服务器上的应用信息收集模块接收到指令包并对其进行解包,并将该包的内容应用在暂存在边缘服务器上的当前节点中间字节码内容上;如果是差分升级指令,那么则将差分升级指令应用于暂存在边缘服务器上的原应用中间字节码;如果是删除指令,那么将原应用中间字节码删除;如果是下载指令,则添加新应用的中间字节码到节点的中间字节码内容中;最终的节点中间字节码状态仍然被暂存在边缘服务器上,其中,节点为物联网或嵌入式设备构成的网络节点。
7.一种边缘辅助部署第三方应用到微控制器系统,其特征在于,所述系统包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下系统的模块中:
应用更改收集模块,用于发出差分升级指令、删除指令、下载指令任意一种或多种并打成指令包,并传输指令包到边缘服务器;
应用信息收集模块,用于接收指令包并进行解包并将指令包的内容应用在暂存在边缘服务器上的当前节点中间字节码内容上;
代码生成模块,用于将设备的经更新的中间字节码编译成对应的原生指令集代码;
内存地址分配模块,用于根据编译结果分配各个应用程序分区的大小;
应用链接模块,用于根据分配的各个应用的内存地址静态或动态链接各个应用到相应的位置,生成二进制映像;
应用加载模块,用于将二进制映像下载到应用节点之内,完成应用节点的更新。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911104319.8A CN110941433B (zh) | 2019-11-13 | 2019-11-13 | 一种边缘辅助部署第三方应用到微控制器方法及系统 |
US17/614,278 US20220261238A1 (en) | 2019-11-13 | 2020-09-11 | Method and system for deploying third-party application to microcontroller by means of edge assistance |
PCT/CN2020/114748 WO2021093442A1 (zh) | 2019-11-13 | 2020-09-11 | 一种边缘辅助部署第三方应用到微控制器方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911104319.8A CN110941433B (zh) | 2019-11-13 | 2019-11-13 | 一种边缘辅助部署第三方应用到微控制器方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110941433A true CN110941433A (zh) | 2020-03-31 |
CN110941433B CN110941433B (zh) | 2022-03-22 |
Family
ID=69907639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911104319.8A Active CN110941433B (zh) | 2019-11-13 | 2019-11-13 | 一种边缘辅助部署第三方应用到微控制器方法及系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220261238A1 (zh) |
CN (1) | CN110941433B (zh) |
WO (1) | WO2021093442A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021093442A1 (zh) * | 2019-11-13 | 2021-05-20 | 佛山职业技术学院 | 一种边缘辅助部署第三方应用到微控制器方法及系统 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9906943B1 (en) * | 2016-09-29 | 2018-02-27 | At&T Intellectual Property I, L.P. | Method and apparatus for provisioning mobile subscriber identification information to multiple devices and provisioning network elements |
CN108170460A (zh) * | 2017-12-15 | 2018-06-15 | 杭州中天微系统有限公司 | 一种嵌入式系统增量升级的方法及装置 |
CN108353090A (zh) * | 2015-08-27 | 2018-07-31 | 雾角系统公司 | 边缘智能平台和物联网传感器流系统 |
CN108900628A (zh) * | 2018-07-20 | 2018-11-27 | 南京工业大学 | 边缘计算环境中基于定价机制的微云计算资源分配方法 |
CN109040686A (zh) * | 2018-08-22 | 2018-12-18 | 苏宁易购集团股份有限公司 | 一种物联网摄像系统中的软件部署方法及物联网摄像系统 |
CN109032614A (zh) * | 2018-08-07 | 2018-12-18 | 佛山市苔藓云链科技有限公司 | 一种物联网应用程序开发与维护的系统及方法 |
CN109089259A (zh) * | 2018-08-03 | 2018-12-25 | 上海艾拉比智能科技有限公司 | 一种在线差分升级系统 |
CN109491695A (zh) * | 2018-10-19 | 2019-03-19 | 华南理工大学 | 一种集成安卓应用的增量更新方法 |
US20190149365A1 (en) * | 2018-01-12 | 2019-05-16 | Intel Corporation | Time domain resource allocation for mobile communication |
CN110266744A (zh) * | 2019-02-27 | 2019-09-20 | 中国联合网络通信集团有限公司 | 基于位置的边缘云资源调度方法及系统 |
CN110366186A (zh) * | 2019-06-06 | 2019-10-22 | 佛山职业技术学院 | 一种传感器执行器网络应用程序的部署方法及系统 |
CN110392103A (zh) * | 2019-07-18 | 2019-10-29 | 上海擎感智能科技有限公司 | 用于车载设备的升级包的上传方法、装置、服务器 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7278136B2 (en) * | 2002-07-09 | 2007-10-02 | University Of Massachusetts | Reducing processor energy consumption using compile-time information |
US8811968B2 (en) * | 2007-11-21 | 2014-08-19 | Mfoundry, Inc. | Systems and methods for executing an application on a mobile device |
US8539464B2 (en) * | 2008-10-30 | 2013-09-17 | International Business Machines Corporation | Distributed just-in-time compilation |
CN103412754A (zh) * | 2013-08-15 | 2013-11-27 | 优视科技有限公司 | 动态语言代码执行方法和装置 |
US9558096B2 (en) * | 2014-03-21 | 2017-01-31 | Marvell World Trade Ltd. | Method and apparatus for supporting performance analysis |
US9183020B1 (en) * | 2014-11-10 | 2015-11-10 | Xamarin Inc. | Multi-sized data types for managed code |
CN107784231B (zh) * | 2016-08-24 | 2021-06-08 | 顶象科技有限公司 | 指令的执行和动态编译方法、装置及电子设备 |
CN109308182B (zh) * | 2018-08-13 | 2022-05-24 | 深圳市奥拓电子股份有限公司 | 函数编译方法、编译系统及存储介质 |
CN110941433B (zh) * | 2019-11-13 | 2022-03-22 | 佛山职业技术学院 | 一种边缘辅助部署第三方应用到微控制器方法及系统 |
-
2019
- 2019-11-13 CN CN201911104319.8A patent/CN110941433B/zh active Active
-
2020
- 2020-09-11 US US17/614,278 patent/US20220261238A1/en not_active Abandoned
- 2020-09-11 WO PCT/CN2020/114748 patent/WO2021093442A1/zh active Application Filing
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108353090A (zh) * | 2015-08-27 | 2018-07-31 | 雾角系统公司 | 边缘智能平台和物联网传感器流系统 |
US9906943B1 (en) * | 2016-09-29 | 2018-02-27 | At&T Intellectual Property I, L.P. | Method and apparatus for provisioning mobile subscriber identification information to multiple devices and provisioning network elements |
CN108170460A (zh) * | 2017-12-15 | 2018-06-15 | 杭州中天微系统有限公司 | 一种嵌入式系统增量升级的方法及装置 |
US20190149365A1 (en) * | 2018-01-12 | 2019-05-16 | Intel Corporation | Time domain resource allocation for mobile communication |
CN108900628A (zh) * | 2018-07-20 | 2018-11-27 | 南京工业大学 | 边缘计算环境中基于定价机制的微云计算资源分配方法 |
CN109089259A (zh) * | 2018-08-03 | 2018-12-25 | 上海艾拉比智能科技有限公司 | 一种在线差分升级系统 |
CN109032614A (zh) * | 2018-08-07 | 2018-12-18 | 佛山市苔藓云链科技有限公司 | 一种物联网应用程序开发与维护的系统及方法 |
CN109040686A (zh) * | 2018-08-22 | 2018-12-18 | 苏宁易购集团股份有限公司 | 一种物联网摄像系统中的软件部署方法及物联网摄像系统 |
CN109491695A (zh) * | 2018-10-19 | 2019-03-19 | 华南理工大学 | 一种集成安卓应用的增量更新方法 |
CN110266744A (zh) * | 2019-02-27 | 2019-09-20 | 中国联合网络通信集团有限公司 | 基于位置的边缘云资源调度方法及系统 |
CN110366186A (zh) * | 2019-06-06 | 2019-10-22 | 佛山职业技术学院 | 一种传感器执行器网络应用程序的部署方法及系统 |
CN110392103A (zh) * | 2019-07-18 | 2019-10-29 | 上海擎感智能科技有限公司 | 用于车载设备的升级包的上传方法、装置、服务器 |
Non-Patent Citations (5)
Title |
---|
HANS CHANDRA等: "Internet of Things: Over-the-Air (OTA) firmware update in Lightweight mesh network protocol for smart urban development", 《2016 22ND ASIA-PACIFIC CONFERENCE ON COMMUNICATIONS (APCC)》 * |
半吊子全栈工匠: "一文弄清物联网的OTA", 《HTTPS://BLOG.CSDN.NET/WIRELESS_COM/ARTICLE/DETAILS/84901222》 * |
小科科的春天: "AliOS Things 3.0开发:OTA之差分升级快速上手", 《HTTPS://BLOG.CTI.APP/ARCHIVES/1724》 * |
施国庆等: "智能网联汽车的OTA升级方案", 《2018中国汽车工程学会年会论文集》 * |
肖志良: "物联网下复杂传感器相互感知区域干扰躲避算法", 《科技通报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021093442A1 (zh) * | 2019-11-13 | 2021-05-20 | 佛山职业技术学院 | 一种边缘辅助部署第三方应用到微控制器方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110941433B (zh) | 2022-03-22 |
US20220261238A1 (en) | 2022-08-18 |
WO2021093442A1 (zh) | 2021-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101761650B1 (ko) | 컴퓨팅 플랫폼의 이종 프로세서들 간의 공유 가상 메모리에서의 가상 함수들의 공유 | |
US7181610B2 (en) | Method and system to encapsulate a driver written for an operating system (OS) runtime environment in an OS independent environment firmware extension | |
US7543309B2 (en) | Efficient linking and loading for late binding and platform retargeting | |
US6799173B2 (en) | Method and apparatus for sharing code containing references to non-shared objects | |
AU773769B2 (en) | Method and apparatus for dispatch table construction | |
CN109614165B (zh) | 一种com组件的多版本并行运行方法和装置 | |
CN104750528B (zh) | 一种Android程序中的组件管理方法和装置 | |
CN109154908B (zh) | 具有精确垃圾收集报告的动态大小的局部 | |
US20090133042A1 (en) | Efficient linking and loading for late binding and platform retargeting | |
JP2009543236A (ja) | マルチタスク仮想マシンのためのヒープ組織 | |
CN110941433B (zh) | 一种边缘辅助部署第三方应用到微控制器方法及系统 | |
KR100478463B1 (ko) | 응용 프로그램의 동적링크 방법 | |
US9612808B1 (en) | Memory use for string object creation | |
CN112306539A (zh) | 一种单片机应用层开发方法、系统、终端及介质 | |
Gallardo et al. | Development and Use of Dynamic Link Libraries Generated Under Various Calling Conventions | |
Stanek et al. | Online software maintenance for mission-critical systems | |
US20240004616A1 (en) | Runtime support for role types that extend underlying types | |
CN112148364A (zh) | 一种嵌入式微内核操作系统分区链接方法及系统 | |
CN114253523A (zh) | 读取裸设备的方法、装置、计算机设备和介质 | |
KR20000003162A (ko) | 효율적인 플래시 메모리 운용 방법 | |
JP2013058270A (ja) | マルチタスク仮想マシンのためのヒープ組織 | |
CN118276884A (zh) | 容器封装方法、装置、设备及存储介质 | |
Aycock et al. | Memory Management | |
Wills et al. | Data types | |
Swain et al. | Custom Linux Kernel for Raspberry Pi Using Ubuntu 12.04 Host |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240102 Address after: No. 1, Geqiao Village, Mache Village, Lishui Town, Nanhai District, Foshan City, Guangdong Province, 528200 Patentee after: Foshan Nanhai Heqi Electronic Technology Co.,Ltd. Address before: 528000 Foshan Polytechnic, No.3, vocational education road, Leping Town, Sanshui District, Foshan City, Guangdong Province Patentee before: FOSHAN POLYTECHNIC |