一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

嵌入式设备、嵌入式软件加载方法与存储介质与流程

2022-02-19 10:52:54 来源:中国专利 TAG:


1.本技术涉及物联网技术领域,尤其涉及一种嵌入式设备、嵌入式软件加载方法与存储介质。


背景技术:

2.在万物互联时代,势必离不开嵌入式设备,嵌入式设备作为“物”的终端,主要负责采集信息并上报,接收指令并执行控制动作。嵌入式设备通常是面向特定应用开发的,相对于面向通用型应用开发的设备,具有体积小、低功耗、集成度高等特点。
3.嵌入式设备包括硬件和软件两部分,在硬件开发上,需要量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能;在软件开发上,为了提高执行速度和系统可靠性,一般要求固化在嵌入式设备的非易失性存储器或处理器本身中。为满足软件固化性的要求,对嵌入式设备的存储空间具有一定要求,这会导致嵌入式设备的成本较高。


技术实现要素:

4.本技术的多个方面提供一种嵌入式设备、嵌入式软件加载方法与存储介质,用以节约嵌入式设备的存储空间,降低嵌入式设备的实现成本。
5.本技术实施例提供一种嵌入式设备,包括:硬件模块和软件系统;硬件模块至少包括处理器和存储器;软件系统包括固化在存储器中的第一类软件代码和被存储在云端服务器上的第二类软件代码;存储器,用于存储软件代码,且存储器中当前存储的软件代码至少包括第一类软件代码;处理器与存储器耦合,用于执行存储器中存储的任一软件代码,以及用于:在需要运行第二类软件代码中的目标软件代码时,识别存储器中是否存在目标软件代码;若存储器中不存在目标软件代码,则从云端服务器加载目标软件代码并运行目标软件代码。
6.本技术实施例还提供一种嵌入式软件加载方法,适用于嵌入式设备,嵌入式设备的软件系统包括固化在本地存储器中的第一类软件代码和被存储在云端服务器上的第二类软件代码;该方法包括:执行存储器中存储的任一软件代码,以及在需要运行第二类软件代码中的目标软件代码,则识别存储器中是否存在目标软件代码,存储器中当前存储的软件代码至少包括第一类软件代码;若存储器中不存在目标软件代码,则从云端服务器加载目标软件代码并运行目标软件代码。
7.本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,当计算机程序被处理器执行时,致使处理器实现本技术实施例提供的嵌入式软件加载方法中的步骤。
8.在本技术实施例中,提供一种云端一体化的嵌入式设备,将嵌入式设备的软件系统分为两部分,一部分固化在嵌入式设备的存储器中,另一部分存储在云端服务器中,在需要云端服务器中存储的软件代码时从云端加载并运行,借助于网络通信和云端存储能力,将一部分软件代码存储在云端,可在保证嵌入式设备原有特性如体积小、低功耗、集成度高、时效性等基础上,进一步节省嵌入式设备的存储资源,降低嵌入式设备的实现成本。
9.进一步地,在从云端加载软件代码的基础上,还可以将从云端加载的软件代码存储到本地外部存储器中,便于再次使用该软件代码时可从本地加载,进一步提高代码加载效率;并创新性的增加针对外部存储器的存储空间回收机制,将外部存储器的用量控制在合理范围内,以便能够更加合理地对嵌入式设备的存储空间进行使用,提高存储空间的使用率。
附图说明
10.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:图1为本技术示例性实施例提供的一种嵌入式设备的结构示意图;图2为本技术示例性实施例提供的一种嵌入式软件加载方法的流程示意图。
具体实施方式
11.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
12.针对现有技术中嵌入式设备的存储成本较高的技术问题,在本技术实施例中,提供一种云端一体化的嵌入式设备,将嵌入式设备的软件系统分为两部分,一部分固化在嵌入式设备的存储器中,另一部分存储在云端服务器中,在需要云端服务器中存储的软件代码时从云端加载并运行,借助于网络通信和云端存储能力,将一部分软件代码存储在云端,可在保证嵌入式设备原有特性如体积小、低功耗、集成度高、时效性等基础上,进一步节省嵌入式设备的存储资源,降低嵌入式设备的实现成本。进一步,在从云端加载软件代码的基础上,还可以将从云端加载的软件代码存储到本地外部存储器中,便于再次使用该软件代码时可从本地加载,进一步提高代码加载效率;并创新性的增加针对外部存储器的存储空间回收机制,将外部存储器的用量控制在合理范围内,以便能够更加合理地对嵌入式设备的存储空间进行使用,提高存储空间的使用率。
13.以下结合附图,详细说明本技术各实施例提供的技术方案。
14.图1为本技术示例性实施例提供的一种嵌入式设备的结构示意图。如图1所示,该嵌入式设备100包括:硬件模块10和软件系统20。硬件模块10是嵌入式设备100中软件系统20运行的基础,它提供了软件系统20运行的物理平台;软件系统20是嵌入式设备100的控制核心,控制整个设备的运行,提供人机交互的信息等。
15.如图1所示,硬件模块10至少包括嵌入式的处理器101。其中,处理器101是嵌入式设备100的硬件核心,可以采用可编程片上系统(system on programmable chip,sopc)或片上系统(system on chip,soc)或中央处理器(central processing unit,cpu)或数字信号处理器(digital signal processing,dsp)或微控制单元(microcontroller unit,mcu)实现,但不限于此。除了处理器101之外,嵌入式设备100的硬件模块10还包括一些外设模块,外设模块是嵌入式设备中用于完成存储、通信、调试、显示等辅助功能的部件。在本技术实施例中,将嵌入式设备100的外设模块分为基础外设模块和非基础外设模块,基础外设模
块是嵌入式设备100实现一些基础功能所必需的外设模块,例如,基础外设模块可以包含但不限于:存储器102、电源组件103以及无线通信模块104等。非基础外设模块是嵌入式设备100实现一些可选功能所需的外设模块,例如,非基础外设模块可以包含但不限于:接口模块105、用于人机交互的显示器106、键盘107、鼠标108或音频组件109等。在图1中以虚线框表示非基础外设模块。
16.其中,作为基础外设模块的存储器102负责为嵌入式设备100提供存储空间,用于存储嵌入式设备100运行所需的一些软件代码,并可被配置为存储其它各种数据以支持在嵌入式设备100上的操作。这些数据的示例包括用于在嵌入式设备100上操作的任何应用程序或方法的指令,消息,图片,视频等。在本实施例中,存储器102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
17.其中,电源组件103负责为嵌入式设备100的各种硬件模块提供电力。电源组件103可以包括电源管理系统、一个或多个电源以及其它与为电源组件所在设备生成、管理和分配电力相关联的组件。
18.其中,无线通信模块104被配置为实现嵌入式设备100和其它设备之间无线方式的通信。嵌入式设备100可以接入基于各种通信标准的无线网络,如wifi,2g、3g、4g/lte、5g等移动通信网络,或它们的组合。在一个示例性实施例中,通信模块104经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信模块104还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
19.其中,接口模块105是嵌入式设备100与外界以有线方式进行通信所需的通信接口,可以采用但不限于下述列举的一种或多种接口方式:usb总线、串口、1394总线、以太网、iis、can、dma或gpio。嵌入式设备100可以包括一种接口模块,也可以包括多种接口模块,用于支持与带有不同接口模块的设备进行有线通信。
20.其中,显示器106、键盘107和/或鼠标108,作为嵌入式设备100的输入设备,可响应用户的输入指令向嵌入式设备100输入相关信息;另外,显示器106还可作为嵌入式设备100的输出设备,向用户输出相关信息。显示器106包括屏幕,其屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
21.当然,除了显示器106等之外,嵌入式设备100还可以包括音频组件109,音频组件109可被配置为输出和/或输入音频信号。例如,音频组件109包括一个麦克风(mic),当音频模块所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频模块还包括一个扬声器,用于输出音频信号。
22.在本实施例中,嵌入式设备100还包括软件系统20,如图1所示,软件系统20至少包括嵌入式操作系统201,嵌入式操作系统201属于系统软件,负责控制和管理嵌入式设备100
的各种软硬件资源,例如负责硬件模块的驱动、内存管理、文件系统以及任务管理等。其中,在嵌入式设备100启动或正常运行过程中,处理器101可以加载嵌入式操作系统201,实现嵌入式操作系统201的各种控制或驱动功能,以便成功启动嵌入式设备100或确保嵌入式设备100的正常运行。其中,嵌入式操作系统201可以是实时操作系统(real time operating system,rtos),也可以是非实时操作系统。
23.进一步,如图1所示,软件系统20还可以包括嵌入式应用202,嵌入式应用202属于应用软件,面向具体应用需求或应用场景。根据应用需求或应用场景的不同,嵌入式应用202所实现的功能会有所不同。例如,嵌入式应用202可以是手机软件、路由器软件、交换机软件或风控软件等。需要说明的是,嵌入式应用202为可选,而非必选,具体可根据嵌入式设备的应用需求而定。
24.在本实施例中,嵌入式设备100具有无线通信模块,借助于该无线通信模块,嵌入式设备100可以接入互联网与其它设备进行网络通信。基于此,在本技术实施例中,将嵌入式设备100与云端技术相结合,实现一种云端一体化的嵌入式设备。针对云端一体化的嵌入式设备,本实施例将其软件系统20包含的软件代码分为两部分,一部分固化在嵌入式设备100本地的存储器102中,另一部分存储在云端服务器中;为了便于区分和描述,将固化在存储器102中的部分软件代码称为第一类软件代码,将存储在云端服务器中的部分软件代码称为第二类软件代码。在需要运行云端服务器中存储的软件代码时,嵌入式设备100可以从云端加载并运行,借助于网络通信和云端存储能力,将一部分软件代码存储在云端,可在保证嵌入式设备原有特性如体积小、低功耗、集成度高、时效性等基础上,进一步节省嵌入式设备的存储资源,降低嵌入式设备的实现成本。
25.需要说明的是,云端服务器可以将第二类软件代码存储至其存储系统中,云端服务器使用的存储系统可以是但不限于:对象存储服务(object storage service,oss)、网络附属存储(network attached storage,nas)、数据仓库或各种类型的数据库等。嵌入式设备在需要第二类软件代码的情况下,可以从存储系统中获取第二类软件代码。
26.其中,第一类软件代码是一些为嵌入式设备100提供基础功能的软件代码,被固化在存储器102中,便于嵌入式设备100及时加载并运行。其中,第一类软件代码至少包括基础外设模块的驱动程序。在另一可选实施例中,第一类软件代码除了包含基础外设模块的驱动程序之外,还可以包括:嵌入式设备100所需的非基础外设模块的驱动程序、文件系统的软件代码。进一步可选地,第一类软件代码还可以包括:对实时性要求较高的嵌入式应用202对应的软件代码。其中,基础外设模块的驱动程序、非基础外设模块的驱动程序、文件系统等属于系统级的软件代码,实时性要求较高的嵌入式应用202对应的软件代码属于应用级的软件代码,也就是说,第一类软件代码可以仅包括嵌入式操作系统中的部分或全部软件代码,也可以同时包括嵌入式操作系统中的软件代码和嵌入式应用的软件代码,具体可视嵌入式设备所属的应用场景灵活设定。在图1中,以嵌入式应用的软件代码和基础外设模块的驱动程序属于第一类软件代码为例进行图示。
27.其中,第二类软件代码是一些为嵌入式设备100提供非基础功能(如可选功能)的软件代码,被存储在云端服务器上可按需下载或加载。例如,第二类软件代码可以包括一些非基础外设模块的驱动程序,进一步还可以包括嵌入式应用的软件代码,例如对实时性或安全性要求不高的嵌入式应用的软件代码。其中,非基础外设模块的驱动程序属于系统级
的软件代码,实时性或安全性要求不高的嵌入式应用202的软件代码属于应用级的软件代码,也就是说,第二类软件代码可以仅包括嵌入式操作系统中的部分软件代码,也可以同时包括嵌入式操作系统中的软件代码和嵌入式应用的软件代码,具体可视嵌入式设备所属的应用场景灵活设定。
28.另外,对于嵌入式设备所支持的嵌入式应用来说,可以将全部嵌入式应用的软件代码划分为第一类软件代码,或者,将全部嵌入式应用的软件代码划分为第二类软件代码。除此之外,在嵌入式设备支持多个嵌入式应用的情况下,可以将嵌入式应用分为两类,将对实时性或安全性等要求较高的嵌入式应用划分为第一类应用,将其余的嵌入式应用划分为第二类应用,将第一类应用的软件代码作为第一类软件代码固化在存储器102中,将第二类应用的软件代码作为第二类软件代码存储至云服务器上,以便按需下载或加载。需要说明的是,第一类应用和第二类应用的划分方式并不限定,具体可视应用场景或嵌入式设备的应用需求而定。
29.在本实施例中,并不限定将第二类软件代码存储至云端服务器的实施方式。例如,可以是嵌入式设备100的开发人员,在开发出嵌入式设备的软件系统之后,对该软件系统的软件代码进行分类,并将第一类软件代码固化在存储器102上,将第二类软件代码上传到云端服务器中。又例如,也可以由嵌入式设备在首次运行时,根据预先配置的代码分类和管理文件,对软件系统包含的软件代码进行分类,得到第一类软件代码和第二类软件代码,将第一类软件代码固化在本地存储器中,将第二类软件代码上传至云端服务器上,之后将存储器中存储的第二类软件代码删除掉,以节省嵌入式设备本地存储器的存储空间。
30.在本实施例中,存储器102可以存储软件系统20对应的软件代码,且存储器102存储的软件代码至少包括第一类软件代码。对处理器101而言,可以加载并执行存储器102中存储的任一软件代码。例如,第一类软件代码包括基础外设模块的驱动程序的情况下,在嵌入式设备启动时,处理器101可以加载存储器102中存储的各基础外设模块的驱动程序,以完成嵌入式设备的启动过程;又例如,在第一类软件代码包括嵌入式应用的软件代码的情况下,在用户需要启动该嵌入式应用时,处理器101可以响应启动指令,加载存储器102中存储的该嵌入式应用的软件代码,运行该嵌入式应用;进一步,在嵌入式应用运行过程中,可能需要调用嵌入式设备的某个基础外设模块,则处理器101还可以从存储器102中加载该基础外设模块的驱动程序,以供嵌入式应用使用该基础外设模块,可选地,该基础外设模块可以是接口模块、音频模块或显示屏等。另外,在嵌入式设备运行过程中,可能需要运行第二类软件代码中的目标软件代码,该目标软件代码可以是第二类软件代码中能够实现某种功能的任一软件代码。例如,当前运行的嵌入式应用可能需要调用另一嵌入式应用,该另一嵌入式应用的软件代码属于第二类软件代码,或者,当前运行的嵌入式应用可能需要调用某个非基础外设模块,该非基础外设模块的驱动程序属于第二类软件代码。在需要运行第二类软件代码中的目标软件代码时,处理器101可以识别存储器102中是否存在目标软件代码;若存储器102中不存在该目标软件代码,则从云端服务器加载目标软件代码并运行目标软件代码。
31.在本技术实施例中,提供一种云端一体化的嵌入式设备,将嵌入式设备的软件系统分为两部分,一部分固化在嵌入式设备的存储器中,另一部分存储在云端服务器中,在需要云端服务器中存储的软件代码时从云端加载并运行,借助于网络通信(尤其是5g通信网
络)和云端存储能力,将一部分软件代码存储在云端,在保证嵌入式实时性需求的同时,还可节省嵌入式设备的存储资源,降低嵌入式设备的实现成本。
32.在一可选实施例中,如图1所示,嵌入式设备100的存储器102包括:内部存储器102a和外部存储器102b。内部存储器可以采用随机访问存储器(random access memory,ram)来实现,ram具有断电易失的特点,例如ram可以包含但不限于:相变内存 (pram)、静态随机存取存储器 (sram)、动态随机存取存储器 (dram)、其他类型的随机存取存储器 (ram)等。外部存储器一般用只读存储器(read only memory,rom)来实现,rom具有断电非易失的特点。例如,rom可以包含但不限于:硬盘、flash或光盘等。其中,第一类软件代码固化在外部存储器中。在本实施例中,嵌入式设备采用云端一体化设计,部分软件代码(如第二类软件代码)可存放至云端服务器上,使得外部存储器的存储空间无需太大,与此同时,在云端服务器上可以存储更多具有不同功能的软件代码,还可以保证嵌入式设备的功能更全面、更丰富,解决了嵌入式开发所面临的成本和功能的矛盾体问题。
33.在本技术实施例中,处理器101加载并运行软件代码,主要是指将待运行的软件代码加载到内部存储器中,之后从内部存储器中读取软件代码并运行软件代码。其中,从内部存储器中读取软件代码的过程中,若内部存储器中不存在需要读取的软件代码,则可产生缺页中断,以供处理器101从外部存储器中加载所需软件代码到内部存储器。在本技术实施例中,在产生缺页中断时,处理器101不仅可以从外部存储器中加载所需软件代码至内部存储器,如果所需软件代码属于第二类软件代码,还可以从云端服务器加载需要的软件代码至内部存储器中,后续处理器可从内部存储器中读取并运行该软件代码。基于此,在需要运行第二类软件代码中的目标软件代码时,处理器101首先在内部存储器中查询是否存在该目标软件代码,若内部存储器中不存在该目标软件代码,则发起缺页中断,查询外部存储器中是否存在目标软件代码;若外部存储器中存在该目标软件代码,则直接从该外部存储器中加载目标软件代码至内部存储器中,并运行目标软件代码;若外部存储器中不存在该目标软件代码,则从云端服务器下载该第二类软件代码,将从云端服务器下载的目标软件代码加载至内部存储器中,并运行目标软件代码。可选地,可以通过5g通信网络从云端服务器下载该第二类软件代码,借助于5g通信网络提供的高效传输速率,保证嵌入式设备对时效性的要求。
34.可选地,在外部存储器中不存在该目标软件代码的情况下,处理器还可以将从云端下载的该第二类软件代码存储至外部存储器中,以供后续直接从外部存储器中加载目标软件代码,提高嵌入式设备的处理速度,保证时效性。
35.在一可选实施例中,为了控制外部存储器的用量,还增加了外部存储器的回收处理机制,对外部存储器的存储空间进行回收处理。例如,可以在外部存储器的使用量大于第一使用量阈值的情况下,对外部存储器的存储空间进行回收处理,以便让有限的外部存储器的存储空间得到更合理地使用,提高外部存储器存储空间的使用率。在本技术实施例中,并不限定对外部存储器的存储空间进行回收处理的时机和条件。下面分三种情况进行说明。
36.情况a1:处理器101将从云端服务器下载的该第二类软件代码存储至外部存储器之前,还可以判断外部存储器的使用量是否大于第一使用量阈值,第一使用量阈值可以根据外部存储器存储空间的大小而定,例如第一使用量阈值可以是外部存储器存储空间的
70%、80%或90%等,对比不做限定。若外部存储器的使用量小于或等于第一使用量阈值,则处理器101将从云端服务器下载该第二类软件代码存储至外部存储器中;若外部存储器的使用量大于第一使用量阈值,则对外部存储器进行存储空间的回收处理,在完成回收处理之后,将从云端服务器下载的第二类软件代码存储至经回收处理之后的外部存储器中,以便后续在需要该目标软件代码时,直接从外部存储器中加载该目标软件代码,提高代码加载效率。
37.情况a2:处理器101将从云端服务器下载的该第二类软件代码存储至外部存储器之前,判断外部存储器的可用存储空间是否可以容纳该目标软件代码。若外部存储器的可用存储空间可以容纳该目标软件代码,则将从云端下载该第二类软件代码存储至外部存储器中;若外部存储器的可用存储空间不可以容纳该目标软件代码,则触发对外部存储器存储空间的回收处理,在完成回收处理之后,将从云端服务器下载的第二类软件代码存储至经回收处理之后的外部存储器中,以便后续在需要该目标软件代码时,直接从外部存储器中加载该目标软件代码,提高代码加载效率。
38.情况a3:处理器101将从云端服务器下载的该第二类软件代码存储至外部存储器之后,可以判断外部存储器的使用量是否大于第一使用量阈值。若外部存储器的使用量大于第一使用量阈值,则对外部存储器进行存储空间的回收处理,以便后续可以将从云端服务器下载的软件代码存储至外部存储器中。若外部存储器的使用量小于或等于第一使用量阈值,则不触发对外部存储器存储空间的回收处理。
39.情况a4:处理器101可以周期性地监测外部存储器的使用量是否大于第一使用量阈值,在外部存储器的使用量大于第一使用量阈值的情况下,则对外部存储器进行存储空间的回收处理,以便后续可以将从云端服务器下载的软件代码存储至外部存储器中。在该情况下,
ꢀ“
从云端服务器下载该第二类软件代码存储至外部存储器”与“周期性地监测外部存储器的使用量是否大于第一使用量阈值”,可以并行执行,没有先后顺序限制。
40.无论是上述哪种情况,对外部存储器进行存储空间的回收处理主要是指针对外部存储器中存储的第二类软件代码而言的。具体地,在对外部存储器进行存储空间的回收处理时,可以从外部存储器中存储的第二类软件代码中,选择待删除的软件代码;将待删除的软件代码从外部存储器中删除,以释放存储空间。
41.在本技术实施例中,并不限定处理器101从外部存储器中存储的第二类软件代码中,选择待删除的软件代码的实施方式。例如,可以采用但不限于以下至少一种方式从外部存储器中存储的第二类软件代码中,选择待删除的软件代码。
42.实施方式b1:根据软件代码的使用频率,从外部存储器中存储的第二类软件代码中,选择使用频率最低的至少一种软件代码作为待删除的软件代码。在第二类软件代码被存储至外部存储器中时,对第二类软件代码进行标记,并开始记录第二类软件代码的使用频率,在对外部存储器的内存空间进行回收处理的操作被触发时,根据第二类软件代码的使用频率,对外部存储器中存储的第二类软件代码进行回收处理。可选地,可以从外部存储器中存储的第二类软件代码中选择使用频率最低的一种或者几种第二类软件代码,作为待删除的软件代码,将待删除的软件代码从外部存储器中删除,以释放存储空间。或者,可以预先设定每次回收允许删除的软件代码的数量,例如该数量可以是2、3或4等,按照该数量,从外部存储器中选择第二类软件代码,作为待删除的软件代码,将待删除的软件代码从外
部存储器中删除,以释放存储空间。
43.实施方式b2:根据软件代码的最近使用时间,从外部存储器中存储的第二类软件代码中,选择最近使用时间最早的至少一种软件代码作为待删除的软件代码。在第二类软件代码被存储至外部存储器中时,对第二类软件代码进行标记,从上一次对外部存储器的存储空间进行回收处理后开始,记录第二类软件代码的使用时间,当需要对外部存储器的存储空间进行回收处理时,从外部存储器存储的第二类软件代码中选择使用时间最早的一种或几种作为待删除的软件代码,将待删除的软件代码从外部存储器中删除,以释放存储空间。或者,可以预先设定需要删除的第二类软件代码的数量,该数据量可以是1个、3个或5个等,从外部存储器存储的第二类软件代码中选择使用时间最早的设定数量的第二类软件代码作为待删除的软件代码,将待删除的软件代码从外部存储器中删除,以释放存储空间。
44.实施方式b3:根据软件代码的最近使用次数,从外部存储器中存储的第二类软件代码中,选择最近使用次数最少的至少一种软件代码作为待删除的软件代码。在第二类软件代码被存储至外部存储器中时,对第二类软件代码进行标记,记录第二类软件代码的使用时间和使用次数。当需要对外部存储器的存储空间进行回收处理时,将早于当前时间设定时间长度内的第二类软件代码作为候选第二类软件代码,将候选第二类软件代码中使用次数最少的一种或几种作为待删除软件代码,将待删除的软件代码从外部存储器中删除,以释放存储空间。
45.实施方式b4:根据软件代码占用的存储空间大小,从外部存储器中存储的第二类软件代码中,选择占用存储空间最大的至少一种软件代码作为待删除的软件代码。在第二类软件代码被存储至外部存储器中时,对第二类软件代码进行标记,记录第二类软件代码占用的存储空间大小。当需要对外部存储器的存储空间进行回收处理时,从外部存储器存储的第二类软件代码中选择占用存储空间最大的一种或者几种第二类软件代码作为待删除的软件代码,将待删除的软件代码从外部存储器中删除,以释放存储空间。
46.实施方式b5:根据随机选择算法,从外部存储器中存储的第二类软件代码中,随机选择至少一种软件代码作为待删除的软件代码。在第二类软件代码被存储至外部存储器中时,对第二类软件代码进行标记,当需要对外部存储器的存储空间进行回收处理时,从外部存储器存储的第二类软件代码中随机选择一种或几种第二类软件代码作为待删除的软件代码,将待删除的软件代码从外部存储器中删除,以释放存储空间。
47.其中,上述实施方式b1

b5可以结合使用,也可以单独使用,对此不做限定。例如,实施方式b3和实施方式b4结合使用的情况下,可以先根据软件代码的最近使用次数,从外部存储器中存储的第二类软件代码中,选择最近使用次数最少的n(n≥2)种软件代码作为候选软件代码,接着,根据候选软件代码占用存储空间的大小,从候选软件代码中选择占用存储空间最大的m(m≥1)种软件代码作为待删除的软件代码,将待删除的软件代码从外部存储器中删除,以释放存储空间。
48.在另一可选实施例中,处理器101以外部存储器的使用量小于第二使用量阈值为目标,从外部存储器中存储的第二类软件代码中,选择待删除的软件代码。其中,第二使用量阈值小于第一使用量阈值,例如,若第一使用量阈值为外部存储器存储空间的90%,则第二使用量阈值可以是外部存储器存储空间的20%、30%或50%等。
49.在又一可选实施例中,处理器101在以外部存储器的使用量小于第二使用量阈值
为目标,从外部存储器中存储的第二类软件代码中,选择待删除的软件代码的过程中,可以结合实施方式b1

b5中的一种或几种的组合,从外部存储器中存储的第二类软件代码中,选择待删除的软件代码,以使外部存储器的使用量小于第二使用量阈值。例如,处理器将第二使用量阈值与实施方式b1进行结合,处理器判断外部存储器的使用量是否小于第二使用量阈值,若外部存储器的使用量大于第二使用量阈值,则处理器根据软件代码的使用频率,从外部存储器中存储的第二类软件代码中,选择使用频率最低的至少一种软件代码作为待删除的软件代码,将待删除的软件代码从外部存储器中删除,使得外部存储器的使用量小于第二使用量阈值。
50.在本技术实施例中,在从云端加载软件代码的基础上,还可以将从云端加载的软件代码存储到本地外部存储器中,便于再次使用该软件代码时可从本地加载,进一步提高代码加载效率;并创新性的增加针对外部存储器的存储空间回收机制,将外部存储器的用量控制在合理范围内,以便能够更加合理地对嵌入式设备的存储空间进行使用,提高存储空间的使用率。
51.除上述嵌入式设备,本技术实施例还提供一种嵌入式软件加载方法,适用于嵌入式设备,该嵌入式设备的软件系统包括固化在本地存储器中的第一类软件代码和被存储在云端服务器上的第二类软件代码,关于嵌入式设备的其它描述可参见上文,在此不再赘述。如图2所示,该方法包括:201、执行嵌入式设备的存储器中存储的任一软件代码,以及在需要运行第二类软件代码中的目标软件代码,则识别存储器中是否存在目标软件代码,存储器中当前存储的软件代码至少包括第一类软件代码;202、若存储器中不存在目标软件代码,则从云端服务器加载目标软件代码并运行目标软件代码。
52.在一可选实施例中,存储器包括内部存储器和外部存储器,第一类软件代码固化在外部存储器中;从云端服务器加载目标软件代码并运行目标软件代码,包括:将目标软件代码从云端服务器下载至内部存储器中,并运行内部存储器中的目标软件代码。
53.在一可选实施例中,本技术实施例提供的方法还包括:将从云端服务器下载的目标软件代码存储至外部存储器中,并在外部存储器的使用量大于第一使用量阈值的情况下,对外部存储器进行存储空间的回收处理。
54.在一可选实施例中,对外部存储器进行存储空间的回收处理,包括:从外部存储器中存储的第二类软件代码中,选择待删除的软件代码;将待删除的软件代码从外部存储器中删除,以释放存储空间。
55.在一可选实施例中,从外部存储器中存储的第二类软件代码中,选择待删除的软件代码,包括以下至少一种方式:根据软件代码的使用频率,从外部存储器中存储的第二类软件代码中,选择使用频率最低的至少一种软件代码作为待删除的软件代码;根据软件代码的最近使用时间,从外部存储器中存储的第二类软件代码中,选择最近使用时间最早的至少一种软件代码作为待删除的软件代码;根据软件代码的最近使用次数,从外部存储器中存储的第二类软件代码中,选择最近使用次数最少的至少一种软件代码作为待删除的软件代码;根据软件代码占用的存储空间大小,从外部存储器中存储的第二类软件代码中,选择占用存储空间最大的至少一种软件代码作为待删除的软件代码;根据随机选择算法,从
外部存储器中存储的第二类软件代码中,随机选择至少一种软件代码作为待删除的软件代码。
56.在一可选实施例中,从外部存储器中存储的第二类软件代码中,选择待删除的软件代码,包括:以外部存储器的使用量小于第二使用量阈值为目标,从外部存储器中存储的第二类软件代码中,选择待删除的软件代码;第二使用量阈值小于第一使用量阈值。
57.本技术实施例提供的嵌入式软件加载方法,提供一种云端一体化的嵌入式设备,将嵌入式设备的软件系统分为两部分,一部分固化在嵌入式设备的存储器中,另一部分存储在云端服务器中,在需要云端服务器中存储的软件代码时从云端加载并运行,借助于网络通信和云端存储能力,将一部分软件代码存储在云端,可在保证嵌入式设备原有特性如体积小、低功耗、集成度高、时效性等基础上,进一步节省嵌入式设备的存储资源,降低嵌入式设备的实现成本。进一步,在从云端加载软件代码的基础上,还可以将从云端加载的软件代码存储到本地外部存储器中,便于再次使用该软件代码时可从本地加载,进一步提高代码加载效率;并创新性的增加针对外部存储器的存储空间回收机制,将外部存储器的用量控制在合理范围内,以便能够更加合理地对嵌入式设备的存储空间进行使用,提高存储空间的使用率。
58.相应地,本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被嵌入式设备的处理器执行时能够实现上述图2所示方法中的各步骤。
59.需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤201至步骤202的执行主体可以为设备a;又比如,步骤201的执行主体可以为设备a,步骤202的执行主体可以为设备b;等等。
60.另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
61.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
62.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
63.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
64.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
65.在一个典型的配置中,计算设备包括一个或多个处理器 (cpu)、输入/输出接口、网络接口和内存。
66.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (ram) 和/或非易失性内存等形式,如只读存储器 (rom) 或闪存(flash ram)。内存是计算机可读介质的示例。
67.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (pram)、静态随机存取存储器 (sram)、动态随机存取存储器 (dram)、其他类型的随机存取存储器 (ram)、只读存储器 (rom)、电可擦除可编程只读存储器 (eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器 (cd

rom)、数字多功能光盘 (dvd) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
68.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
69.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献