CN102222052A - 扩展嵌入式系统的功能 - Google Patents
扩展嵌入式系统的功能 Download PDFInfo
- Publication number
- CN102222052A CN102222052A CN2011100971399A CN201110097139A CN102222052A CN 102222052 A CN102222052 A CN 102222052A CN 2011100971399 A CN2011100971399 A CN 2011100971399A CN 201110097139 A CN201110097139 A CN 201110097139A CN 102222052 A CN102222052 A CN 102222052A
- Authority
- CN
- China
- Prior art keywords
- embedded system
- attached
- expansion
- nonvolatile memory
- firmware
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本描述涉及扩展嵌入式系统的功能。具体地,本描述涉及计算机实现的方法、嵌入式系统以及存储器。该方法涉及扩展嵌入式系统的功能,其中嵌入式系统包括固定的非易失性存储器中的固件。该方法包括将可附接非易失性存储器附接到嵌入式系统,其中扩展部分存储在可附接非易失性存储器中;通过固件识别扩展部分;以及通过扩展部分执行嵌入式系统上的服务。
Description
技术领域
本申请涉及用于扩展嵌入式系统的功能的计算机实现的方法、具有扩展的功能的嵌入式系统以及存储器。
发明内容
根据本发明的一个方面,提供了用于扩展嵌入式系统的功能的计算机实现的方法。嵌入式系统可以包括固定非易失性存储器中的固件。该方法可以包括将可附接非易失性存储器附接到嵌入式系统。扩展部分可以存储在可附接非易失性存储器中。该方法还可以包括通过固件识别扩展部分,以及通过扩展部分执行嵌入式系统上的服务。
在某些情况下,可附接非易失性存储器具有比固定非易失性存储器更大的存储容量。
此外,可以在芯片上构建固定非易失性存储器并且芯片可以接线到嵌入式系统。
同样地,固件可以作为二值图像存储在固定非易失性存储器中。
再者,可附接非易失性存储器可以是USB存储设备。
在某些情况下,该方法还包括使用安全机制加载扩展部分;以及通过安全机制将扩展部分从固件隔离。加载和隔离的步骤可以在通过扩展部分执行服务之前执行。
该方法还可以包括通过将固定非易失性存储器的全部内容复制到嵌入式系统的易失性存储器中,从而将固件复制到嵌入式系统的易失性存储器。
此外,易失性存储器可以比固定非易失性存储器更快,和/或易失性存储器可以比可附接的非易失性存储器更快。
再者,扩展部分可以包括以下项中的一项或多项:
固件可使用的库和/或实用程序;
可以链接到固件的至少一个动态可加载的模块;以及
支持执行独立于嵌入式系统架构的服务的框架。
该方法还可以包括将端口扩展器附接到嵌入式系统的接口。将可附接非易失性存储器附接到嵌入式系统可以包括将可附接非易失性存储器附接到端口扩展器的第一端口,并且通过将设备附接到端口扩展器的第二端口来扩展嵌入式系统。
在某些情况下,嵌入式系统是网络接入网关。此外,固件可以包括操作系统和至少一个服务。
根据本发明的另一方面,提供了嵌入式系统。该系统可以包括易失性存储器,以及包括固件的固定非易失性存储器。该系统还可以包括可操作用于允许可附接非易失性存储器附接到嵌入式系统的接口。可附接非易失性存储器可操作用于存储扩展部分。此外,固件可操作用于识别扩展部分。再者,嵌入式系统可调整以适于通过扩展部分执行服务。嵌入式系统可以作为设备(例如,嵌入式设备)提供,或作为计算机程序产品提供。
根据本发明的又一方面,提供了可附接到嵌入式系统的接口的可附接非易失性存储器。该存储器可以包括扩展部分,该扩展部分包括服务,其中该扩展部分存储在可附接非易失性存储器中。该扩展部分可操作用于在由嵌入式系统识别之后扩展嵌入式系统的固件。该服务可操作用于在对嵌入式系统的固件进行扩展之后由嵌入式系统执行。
在某些实施方式中,可附接的非易失性存储器可附接到嵌入式系统的接口,其中嵌入式系统包括易失性存储器,以及包括固件的固定非易失性存储器。该系统还可以包括可操作用于允许可附接非易失性存储器附接到嵌入式系统的接口。同样地,该固件可操作用于识别扩展部分。再者,嵌入式系统可调整以适于通过扩展部分执行服务。可附接非易失性存储器还可以作为设备或作为计算机程序产品提供。
附图说明
图1描绘了嵌入式系统的框图。
图2示出了用于扩展嵌入式系统的功能的方法。
图3描绘了嵌入式系统的闪存、芯片集以及RAM的功能框图。
图4描绘了在嵌入式系统的固件识别了存储在USB存储设备中的扩展部分之后的闪存、芯片集、RAM以及USB存储设备的功能框图。
图5描绘了闪存、芯片集、RAM以及USB存储设备的功能框图,其中扩展部分包括两个应用。
具体实施方式
在下述正文中,将通过参考附图给出对示例的详细描述。应当理解的是,可以对示例进行各种修改。具体地,可以组合一个示例中的元素并在其他示例中使用以形成新的示例。
本说明书中描述的主题可以作为方法实现或可能采取一个或多个计算机程序产品的形式在设备上实现。本说明书中描述的主题可以在数据信号中实现或者在机器可读的介质上实现,其中该介质体现为一个或多个信息载体,诸如半导体存储器或硬盘。上述计算机程序产品可以导致数据处理装置执行本说明书中描述的一个或多个操作。
此外,本说明书中描述的主题还可以作为系统实现,该系统包括处理器,以及耦合到处理器的存储器。存储器可以对一个或多个程序进行编码,以导致处理器执行本说明书中描述的一个或多个方法。进一步地,本说明书中描述的主题可以使用各种机器来实现。
在下文示例性附图和描述中阐明了一个或多个实现的细节。通过描述、附图以及通过权利要求书,其他特征将会易于理解。
图1示出了嵌入式系统100的组件以及可附接非易失性存储器,例如USB存储设备111。可以将嵌入式系统100理解为设计用于执行一个或数个专用功能的设备或计算机系统。嵌入式系统100可以与通用计算机系统(例如,台式PC)不同。更具体地,嵌入式系统100可以是向用户网络(例如,包括一台或多台计算机的家庭网络)提供因特网连接的家用网关或网络接入网关。嵌入式系统100还可以配置用于向除因特网以外的网络提供访问。在特定的示例中,嵌入式系统100可以是非对称数字用户线路(ADSL)调制解调器。也可能是支持其他形式的DSL的调制解调器。在某些情况下,嵌入式系统100可以执行路由功能。嵌入式系统100可以包括用户接口,例如,用于管理嵌入式系统100的图形用户接口。此外,嵌入式系统100可以运行服务,例如,设计用于帮助用户执行任务的应用或者支持将另一个设备连接到嵌入式系统100的模块。能够在嵌入式系统100上运行的服务可以与(或者不与)向连接到嵌入式系统100的网络提供访问有关。图形用户接口还可以用于管理或控制嵌入式系统100上的应用。
嵌入式系统100可以包括具有中央处理器(CPU)的芯片集102。在特定的示例中,芯片集102可以是组合了MIPS 32位CPU、基于数字信号处理(DSP)的数字收发器、以及ADSL模拟前端的德州仪器(Texas Instruments)AR7。其他可能的芯片集包括博通(Broadcom)6358。芯片集102可以是微处理器或微控制器。进一步地,也可能是诸如高级RISC架构机(Advanced RISC ArchitectureMachine,即,ARM)或PowerPC的CPU(RISC是指精简指令集计算机)。
嵌入式系统100的某些实现包括非易失性存储器,诸如闪存104。备选地,嵌入式系统100可以包括另一种形式的非易失性存储器。嵌入式系统100的非易失性存储器可以是电子可寻址的。在某些情况下,嵌入式系统100的非易失性存储器可以是另一种形式的固态存储器,诸如硅-氧-氮-氧-硅(SONOS)存储器,或非易失性随机存取存储器。也可能是其他类型的非易失性存储器。
闪存104可以固定到嵌入式系统100。特别地,可以把闪存104构建到芯片中而该芯片可以接线到嵌入式系统100。闪存104的内容可以被称为固件302(参见图3)。
在某些情况下,由闪存104存储的固件302可以包括用于嵌入式系统100的操作系统303(参见图3)。由闪存104存储的固件302还可以包括能够在嵌入式系统100上运行的服务,以及用于管理嵌入式系统100的图形用户接口。具体地,操作系统303可以是Linux,例如,包括uClibc库的Linux内核2.6。更具体地,操作系统303可以使用具有Linux内核2.6.1的针对MIPS的Debian Etch来实现。可以从操作系统303去除不必要的组件,并且操作系统303可以仅仅包括管理嵌入式系统100所必须的组件。应用可以适合于执行联网任务,诸如路由、防火墙维护、域名服务(DNS),以及动态主机配置协议(DHCP)。
在某些实施方式中,操作系统303允许添加针对其他设备的支持服务(例如,驱动程序)。例如,操作系统303可以支持一经请求便向操作系统内核链接其他功能。换句话说,可以向操作系统303链接动态可加载的模块。因此,向固件302链接动态可加载的模块可以被理解为向嵌入式系统100的操作系统的内核链接动态可加载的模块。不同的内核模块可以用于支持不同的嵌入式系统架构以及操作系统内核。
除了应用之外,可以在嵌入式系统100上执行的服务还可以包括内核模块、设备驱动程序或者扩展嵌入式系统100的功能的其他软件。
嵌入式系统100可以包括最低限度的硬件(例如,执行基本联网任务所需的硬件而没有其他硬件)以便降低成本。此外,闪存104的内容(例如,操作系统和应用)可以采取单片方法(monolithicapproach)(即,作为单个的封闭块)存储在嵌入式系统100上。
例如,闪存104的内容可以作为单个的封闭块(例如,作为二值图像或作为压缩二值图像)进行存储。换句话说,闪存104可以容纳二值固件图像或压缩二值固件图像。这可以减少嵌入式系统100上所需的闪存104的数量,从而降低生产嵌入式系统100的成本。此外,在嵌入式系统100上使用二值图像可以有利于嵌入式系统100的制造者或维护人员,例如,嵌入式系统100的制造者可以能够保持对嵌入式系统100的控制,从而使得对嵌入式系统100的扩展只能由制造者实现,并且嵌入式系统的购买者(例如,电信服务供应商)不得不向制造者请求针对任何新的/附加的特征的支持。此外,使用二值图像可以使用户更新嵌入式系统100更加简单。
二值图像可以被理解为容纳表示存储介质(例如,闪存104)的完整的内容和结构。二值图像可以存储在单个文件中。
然而,将闪存104的内容作为二值图像存储可能具有以下效果:对存储在嵌入式系统100上的应用进行升级的唯一方法是执行完全固件升级,如以现有技术的方法实现。换句话说,不存在独立对单个应用进行升级的方法。相反,即使针对嵌入式系统100上的一个应用的较小变化,也需要完全固件升级。
针对嵌入式系统100上软件的任意更新而执行完全固件升级可能会很困难或者是不期望的。完全固件升级可能导致使用更多带宽,可能的误差可能具有更多的严重后果,此外完全固件升级可能干扰嵌入式系统100的操作。例如,为了对单个应用进行较小变化而下载完全固件可能需要比下载所改变的部分应用或应用本身更多的带宽。此外,完全固件升级可能会失败,从而导致嵌入式系统100变得无法使用。此外,由于通常需要重新启动嵌入式系统100,因此完全固件升级经常引起嵌入式系统100的操作的中断。为了克服这个问题,本发明使嵌入式系统100适于在不对整个固件进行升级或不用更有能力的设备代替嵌入式系统100的情况下执行服务。
嵌入式系统100还可以包括易失性存储器,诸如随机存取存储器(RAM)106。
在某些配置中,RAM 106可以具有比闪存104更大的存储容量。这样设计的原因可能是嵌入式系统100上的程序执行可以被理解为数据频繁改变并且经常不需要被存储的过程。例如,当嵌入式系统100处理因特网协议(IP)数据包时,它们可能会被暂时存储在RAM106中以便被分析和阐述,但是有可能当嵌入式系统100掉电时并不需要存储IP数据包。换句话说,可能不需要将IP数据包存储在闪存104中。
还有可能RAM 106具有比闪存104更小的存储容量。具体地,闪存104的容量可能会与存储在嵌入式系统100上的程序的数量和大小成比例。此外,RAM 106的容量可能会与将同时在嵌入式系统100上执行的程序的数量和大小成比例。例如,如果在闪存104中存储了许多不同应用并且嵌入式系统100并不必须能够同时运行许多程序,则闪存104可能具有比RAM 106更大的存储容量。
此外,可能存在以下情况:与嵌入式系统100的闪存104相比,使用嵌入式系统100的RAM 106可以更快地执行计算机程序。此外,可以设计嵌入式系统100从而使得在可以执行程序之前必须把程序复制到RAM 106。
在特定的示例中,闪存104具有16MB的存储容量,而RAM 106具有32MB的存储容量。
在某些情况下,嵌入式系统100不包括机械寻址的非易失性存储器,诸如硬盘。
此外,嵌入式系统100可以包括可连接到外部网络的接入装置,诸如电话端口108。取决于外部网络的类型,接入装置还可以是光纤端口或以太网端口。外部网络可以是因特网或另一个网络。
此外,嵌入式系统100可以包括接口,诸如通用串行总线(USD)端口110。该接口可以是外围接口。该接口还可以是另一种类型的串行接口,诸如FireWire,或者是可操作用于允许可附接非易失性存储器连接到嵌入式系统100的并行接口类型。在该接口是USB端口110的情况下,可附接的非易失性存储器可以实现为USB存储设备111。在特定的示例中,USB存储设备111可以是USB优盘(如图1中所示)或可经由USB线缆连接的外部硬盘驱动器(未示出)。因此,向嵌入式系统100附接可附接非易失性存储器可以通过向USB端口110附接USB存储设备111实现。在本文上下文中,附接可以被理解为连接或插入,即,将USB存储设备111插入USB端口110中。
在某些实施方式中,USB存储设备111具有至少128兆字节(MB)的存储容量。因此,可附接非易失性存储器(例如,USB存储设备111)的存储容量可以大于固定非易失性存储器(例如,闪存104)的存储容量。此外,RAM 106可以比闪存104和/或USB存储设备111更快。
嵌入式系统100还可以包括可连接到本地网络的接入装置,诸如以太网端口112。嵌入式系统100还可以支持无线接入,例如,通过无线保真(WiFi)。本地网络可以是家庭网络或内部网络或另一网络。
此外,嵌入式系统100可以包括复位按钮114,该复位按钮114可以用于将嵌入式系统100恢复到标准或缺省配置。嵌入式系统100还可以包括电源连接器116,该电源连接器116可以用于将嵌入式系统100连接至电源。
图2示出了用于扩展嵌入式系统100的功能的示例性方法200。嵌入式系统可以包括固定非易失性存储器,例如,闪存104。闪存104可以包括固件302。固件302可以包括用于嵌入式系统100的操作系统303以及一个或多个服务。
方法200可以包括,在步骤202,将可附接非易失性存储器(例如,USB存储设备111)附接到嵌入式系统100。可以将扩展部分存储在USB存储设备111中。
扩展部分可以包括对应于嵌入式系统100的操作系统303的完整操作系统环境。具体地,嵌入式系统100的操作系统303可以包括通常在台式PC上不存在的、运行某些应用所需要的软件。因此,扩展部分可以包括固件302可使用的库,例如,操作系统303可使用的库。扩展部分还可以包括操作系统实用程序以及模块。
例如,如果固件302包括Linux操作系统的版本,则扩展部分的库可以包括用户空间库,诸如GNU C库(glibc)306(见图3),以及运行Java虚拟机所需要的库(Java是Oracle公司的商标)。在本文上下文中,库可以包括程序可使用的一个或多个子程序、类或数据。库可以是独立可执行的。
扩展部分的模块可以包括用于控制和管理根据针对电子设备的X10标准操作的设备的驱动程序。该模块还可以包括会话发起协议(SIP)背靠背用户代理以及实时传输协议(RTP)代理以管理IP语音服务。此外,实用程序可以包括通用即插即用(UPnP)视听媒体服务器,其可以用于共享媒体内容。该模块还可以包括支持使用移动通信设备(例如,iPhone)控制光和电气用品的软件。该模块可以被当作内核模块并且可以是动态可加载的。
可以在嵌入式系统100上运行的扩展部分的示例性应用包括图像搜索应用。因此,用户可以向嵌入式系统100加载多个图像。例如,用户可以带着存储在数码相机中的许多图像从假日返回。用户可以将数码相机连接到嵌入式系统100并且所有图像可以自动从数码相机上传到嵌入式系统100。该图像可以存储在USB存储设备111上。用户继而可以与图像搜索应用交互以便搜索图像。
此外,扩展部分可以包括独立于嵌入式系统100的架构的,支持执行应用(诸如图像搜索应用)的框架。在某些实现中,框架可以基于OSGi以及Java程序设计语言,并且可以提供适合嵌入式系统100的架构的应用执行环境。更具体地,可以根据可从http://www.osgi.org获得的OSGi规范,发布4,版本4.2对框架进行定义。因此,框架可以支持对应用和从属物的动态管理。框架还可以提供支持具有不同能力和资源的设备以及支持应用在不需要应用开发者知道每个设备的架构细节的情况下与上述设备进行交互的一组程序设计接口(API)。此外,框架可以提供动态加载器以安装新应用。框架还可以被当作中间件。
闪存104可以通过线接到嵌入式系统100的电路板进行固定。操作系统303可以包括针对USB存储设备111的支持和针对动态可加载的模块的支持。操作系统303还可以支持能够向USB端口110附接的端口扩展器。如果USB端口110是嵌入式系统100上的唯一USB端口,并且期望向嵌入式系统100附接附加的设备,则可以支持端口扩展器。在RAM 106没有提供足够的存储容量以执行特定应用的情况下,操作系统303可以支持虚拟存储器。
在固件302包括Linux操作系统的特定示例中,固件302可以包括用于配置Linux内核的支持,以及Linux内核头文件和交叉编译工具。
在某些情况下,该方法还包括通过将闪存104的全部内容复制到RAM 106中,从而将固件302复制到RAM 106。将闪存104的全部内容复制到RAM 106中的操作可以被称为大量读取(bulk read)。通过大量读取的方法将闪存104的全部内容复制到RAM 106中可以支持嵌入式系统100的更简单以及更有效率的操作。
方法200还可以包括,在步骤204,通过固件302识别扩展部分,例如,通过数字证书的方法。在某些实现中,数字证书可以存储在USB存储设备111上并且可以由操作系统303进行验证。还可以使用其他方法来识别扩展部分,包括代码签名、硬件锁(USB存储设备111必须包括待识别的特定硬件特征)或加密。
通过固件302识别扩展部分可以具有以下技术效果:使嵌入式系统100适于执行服务,例如上述图像搜索应用。在不对全部固件302进行升级或不用更有能力的设备代替嵌入式系统100的情况下执行没有扩展部分的应用是不可能的。
嵌入式系统100的用户接口可以允许对扩展部分进行配置。在这种情况下,可以自动加载框架。备选地,可以自动识别和配置扩展部分;因此,扩展部分可以在后台运行并且自动加载应用或识别新设备。
一旦扩展部分被识别和配置,框架便可以配置用于手动或自动加载包括图像搜索应用的服务。扩展部分可以配置用于经由USB存储设备111向嵌入式系统100提供虚拟存储器,或配置用于经由USB存储设备111扩展嵌入式系统100的现有虚拟存储器。
在某些实施方式中,可以使用安全机制加载扩展部分。加载扩展部分可能发生在识别扩展部分之后和配置扩展部分之前。安全机制可以是沙盒(sandbox)。换句话说,安全机制可以是用于分离运行的程序的软件。也就是说,扩展部分是在虚拟环境中加载,从嵌入式系统100的固件302分离。因此,安全机制可以用于将扩展部分从固件302隔离。更具体地,当扩展部分和固件302都被加载到RAM 106中并且都在运行时,安全机制可以用于将固件302从扩展部分隔离。
在特定的示例中,安全机制可以是chroot(假根)环境304(见图3)。可以通过改变针对扩展部分和由扩展部分执行的任何过程的表面根目录实现chroot环境304。换句话说,扩展部分以及扩展部分的子进程不能够访问固件302的文件。更具体地,使用安全机制加载扩展部分可以通过将与扩展部分相关联的文件加载到沙盒(例如,chroot环境304)中来实现,从而确保在框架中执行的应用、库和实用程序不能访问固件302。安全机制还可以经由程序隔离的其他方法实现。
有利地,安全机制可以用于保证嵌入式系统100提供至少与加载扩展部分之前所提供的功能水平相同的功能。使用扩展部分执行的图像搜索应用(或其他应用)可以在允许低级系统保护的受保护的环境中执行。
方法200还可以包括在步骤206,在加载扩展部分之后执行服务。通过扩展部分在嵌入式系统100上执行服务可以被理解为包括执行固件302可用的库、模块或应用。服务还可以包括附加的操作系统实用程序,诸如外壳命令。
通过扩展部分执行服务可以支持将附加设备附接到嵌入式系统100。例如,可以将附加设备附接到嵌入式系统100上的另一USB端口(未示出)。在另一示例中,附接附加设备可以包括将端口扩展器(诸如USB集线器)附加到USB端口110。具体地,如果USB端口110是嵌入式系统100上的唯一USB端口,则可以使用端口扩展器。根据该示例,当在步骤202中附接了USB存储设备111时,将USB存储设备111附接到端口扩展器的第一端口并且将端口扩展器附接到USB端口110。继而可以把附加设备附接到端口扩展器的第二端口。
其他应用还可以通过扩展添加到嵌入式系统100,该其他应用包括因特网协议-用户交换机(IP-PBX)系统,数字生活网络联盟(DLNA)媒体服务器,用于经由家庭自动化网关控制家用电器的家庭自动化应用,视频监视系统以及智能能源监控系统。
如关于图1所述,附加的应用、其他类型的非易失性存储器或其他接口也是可能的。
此外,扩展部分可以使得操作系统303能够支持其他功能。例如,扩展部分可以包括能够由操作系统内核为了支持附加文件系统(例如,Linux ext2文件系统)而自动加载的模块。扩展部分还可以包括使得操作系统303能够支持附加附接的设备308(诸如、家庭自动化网关、ZigBee接口或数码相机控制模块)的模块(见图3)。智能能源表还可以使用扩展部分连接到嵌入式系统100。
方法200可以在不替换嵌入式系统的情况下支持对嵌入式系统100的功能进行扩展。此外,方法200可以使得能够在不进行完全固件升级的情况下安装更新个别应用的新服务。再者,扩展部分中包括的框架可以支持针对各种设备架构的高度便携式服务的开发。
图3描绘了嵌入式系统100的闪存104、芯片集102以及RAM106的功能框图。
图3中的示例表示了附接USB存储设备111之前嵌入式系统100的状态。
在图3的示例性描绘中,存储在闪存104中的固件包括打印服务器和文件服务器。存储在闪存104中的固件还包括例如由电信服务供应商使用的对嵌入式系统100的定制。该定制可以包括会话发起协议(SIP)用户代理,用以管理移动电话协议的高速分组接入(HSPA)备份实用程序,针对嵌入式系统100的远程管理的技术报告069(TR-069)实用程序,以及图形用户接口(GUI)。根据该示例,存储在闪存104中的固件还包括用户空间库(例如,uClibc),操作系统(例如,Linux),以及设备驱动程序。在该特定例子中,闪存104具有16MB的存储容量。
继续图3中的示例,芯片集102是具有片上系统(SoC)32位MIPS处理器的Broadcom芯片集6358,其支持非对称数字用户环路(ADSL)2/2+,以及以太网和无线保真(WiFi)。
图3中的RAM 106包括操作系统的内核以及一个或多个应用(Apps)。RAM 106中的应用对应于闪存104中的定制。在该特定例子中,RAM具有64MB的存储容量。
图4描绘了存储在USB存储设备111上的扩展部分被固件识别之后的闪存104、USB存储设备111、芯片集102以及RAM 106的功能框图。因此,图4与图3的区别在于USB存储设备111已经附接到嵌入式系统100并且存储在USB存储设备111中的扩展部分已经由固件识别。
根据图4中描绘的示例,存储在USB存储设备111上的扩展部分包括框架(在该例子中是Equinox OSGi框架)、Java虚拟机(JVM)、glibc用户空间库以及至少一个Linux内核模块。
除了图3中描绘的操作系统的内核以及应用之外,图4中的RAM106还包括来自USB存储设备111的JVM和Equinox OSGi框架。安全机制(未示出)可以用于将JVM和OSGi框架从操作系统的内核和应用隔离。
图5描绘了闪存104、USB存储设备111、芯片集102以及RAM106的功能框图,其中USB存储设备111包括两个服务,即,媒体服务器应用和家庭自动化应用。
图5中的RAM 106包括束(bundle)1至束n。从1至n的每个束可以被理解为表示具有明确声明的外部从属物(如果有的话)的一个或多个类、Java归档文件(JAR)以及配置文件的动态可加载的集合。束可以根据OSGi标准实现。在该特定示例中,n为2并且束1至束n对应于媒体服务器应用和家庭自动化应用。
在某些实施方式中,安全机制(未示出)可以用于将JVM、OSGi框架以及媒体服务器应用束从操作系统的内核以及应用隔离。
因此,图5与图4的区别在于USB存储设备111包括两个应用并且这些应用已经作为束加载到RAM 106中。
Claims (15)
1.一种用于扩展嵌入式系统(100)的功能的计算机实现的方法(200),其中所述嵌入式系统(100)包括固定的非易失性存储器(104)中的固件,所述方法包括:
将可附接非易失性存储器(111)附接(202)到所述嵌入式系统(100),其中扩展部分存储在所述可附接非易失性存储器(111)中;
通过所述固件识别(204)所述扩展部分;以及
通过所述扩展部分执行(206)所述嵌入式系统(100)上的服务。
2.根据权利要求1所述的方法,其中所述固件作为二值图像存储在所述固定的非易失性存储器(104)中。
3.根据权利要求1或2所述的方法,其中在芯片中构建所述固定的非易失性存储器(104)并且其中所述芯片线接至所述嵌入式系统(100)。
4.根据前述权利要求中的任意一项所述的方法,其中所述可附接非易失性存储器(111)是USB存储设备。
5.根据前述权利要求中的任意一项所述的方法,其中所述可附接非易失性存储器(111)具有比所述固定非易失性存储器(104)更大的存储容量。
6.根据前述权利要求中的任意一项所述的方法,还包括:
使用安全机制加载所述扩展部分;以及
通过所述安全机制将所述扩展部分从所述固件隔离。
7.根据前述权利要求中的任意一项所述的方法,还包括:
通过将所述固定的非易失性存储器(104)的全部内容复制到所述嵌入式系统的易失性存储器(106)中,而将所述固件复制到所述嵌入式系统(100)的易失性存储器(106)。
8.根据权利要求7所述的方法,其中所述易失性存储器(106)比所述固定的非易失性存储器(104)更快,和/或其中所述易失性存储器(106)比所述可附接非易失性存储器(111)更快。
9.根据前述权利要求中的任意一项所述的方法,其中所述扩展部分包括以下中的一项或多项:
所述固件可用的库;
可链接到所述固件的至少一个动态可加载的模块;以及
支持执行独立于所述嵌入式系统(100)的架构的所述服务的框架。
10.根据前述权利要求中的任意一项所述的方法,还包括:
将端口扩展器附接到所述嵌入式系统(100)的接口(110),其中将所述可附接非易失性存储器(111)附接到所述嵌入式系统(100)包括将所述可附接非易失性存储器(111)附接到所述端口扩展器的第一端口;
通过将设备附接到所述端口扩展器的第二端口来扩展所述嵌入式系统(100);以及
通过所述扩展部分来操作所述设备。
11.根据前述权利要求中的任意一项所述的方法,其中所述嵌入式系统(100)是网络接入网关。
12.根据前述权利要求中的任意一项所述的方法,其中所述固件包括操作系统和至少一个应用。
13.一种嵌入式系统(100),包括:
易失性存储器(106);
固定的非易失性存储器(104),所述固定的非易失性存储器(104)包括固件;
接口(110),所述接口(110)可操作用于允许可附接非易失性存储器(111)附接到所述嵌入式系统(100);
其中所述可附接非易失性存储器(111)可操作用于存储扩展部分;
其中所述固件可操作用于识别所述扩展部分;以及
其中所述嵌入式系统(100)可调整以适于通过所述扩展部分来执行服务。
14.根据权利要求13所述的系统,可根据权利要求2至12中的任意一项进行操作。
15.一种可附接非易失性存储器(111),所述可附接非易失性存储器(111)可附接到嵌入式系统(100)的接口(110),所述存储器(111)包括:
扩展部分,所述扩展部分包括服务,其中所述扩展部分存储在所述可附接非易失性存储器(111)中;
其中所述扩展部分可操作用于在由所述嵌入式系统(100)识别之后扩展所述嵌入式系统(100)的固件;以及
其中所述服务可操作用于在所述嵌入式系统的所述固件被扩展之后由所述嵌入式系统(100)执行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP10425122A EP2378417A1 (en) | 2010-04-16 | 2010-04-16 | Extending the functionality of an embedded system |
EP10425122.8 | 2010-04-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102222052A true CN102222052A (zh) | 2011-10-19 |
CN102222052B CN102222052B (zh) | 2015-10-21 |
Family
ID=42735378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110097139.9A Active CN102222052B (zh) | 2010-04-16 | 2011-04-15 | 扩展嵌入式系统的功能 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8627307B2 (zh) |
EP (1) | EP2378417A1 (zh) |
CN (1) | CN102222052B (zh) |
CA (1) | CA2736300C (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105556467A (zh) * | 2013-08-06 | 2016-05-04 | 恩德莱斯和豪瑟尔过程解决方案股份公司 | 用于扩展现场设备的嵌入式软件组件的方法 |
CN107368342A (zh) * | 2017-08-10 | 2017-11-21 | 北京元心科技有限公司 | 驱动硬件扩展模块的方法、装置及终端设备 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9563410B2 (en) * | 2011-05-25 | 2017-02-07 | Amx Llc | Data-driven menuing system for providing a flexible user interface on an electronic device |
CN104335220B (zh) | 2012-03-30 | 2018-04-20 | 爱迪德技术有限公司 | 用于防止和检测安全威胁的方法和系统 |
KR101302653B1 (ko) * | 2012-12-21 | 2013-09-03 | 김정수 | 홈 게이트웨이 동맹을 이용한 보안 시스템 및 방법 |
WO2016089416A1 (en) | 2014-12-05 | 2016-06-09 | Honeywell International Inc. | Monitoring and control system using cloud services |
CN110249540B (zh) | 2016-12-22 | 2023-04-28 | 史密斯互连股份有限公司 | 完全集成的射频终端系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1221652A2 (en) * | 2000-12-21 | 2002-07-10 | Microsoft Corporation | System and method to specify device specific user interface information in the firmware of a USB device |
US20050240919A1 (en) * | 2004-04-27 | 2005-10-27 | Kim Kyoug I | Firmware update using memory card reader |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5901225A (en) * | 1996-12-05 | 1999-05-04 | Advanced Micro Devices, Inc. | System and method for performing software patches in embedded systems |
US6078967A (en) * | 1998-02-25 | 2000-06-20 | Hewlett-Packard Company | System for upgrading functionality of a peripheral device utilizing a removable ROM having relocatable object code |
IL129947A (en) * | 1999-05-13 | 2003-06-24 | Tadiran Telecom Business Syste | Method and apparatus for downloading software into an embedded system |
US6920553B1 (en) * | 2000-04-28 | 2005-07-19 | Intel Corporation | Method and apparatus for reading initial boot instructions from a bootable device connected to the USB port of a computer system |
KR100424613B1 (ko) * | 2002-04-22 | 2004-03-27 | 삼성전자주식회사 | 로컬 네트워크에서 도메인 네임 시스템 스푸핑 방법 및그를 이용한 로컬 네트워크 시스템 |
US20040025165A1 (en) * | 2002-08-05 | 2004-02-05 | Giuseppe Desoli | Systems and methods for extending operating system functionality for an application |
US20040103163A1 (en) * | 2002-11-27 | 2004-05-27 | Hao-Hsing Lin | Serial bus disk extender and portable storage device |
US7185191B2 (en) * | 2004-05-05 | 2007-02-27 | International Business Machines Corporation | Updatable firmware having boot and/or communication redundancy |
US8539213B2 (en) * | 2004-12-31 | 2013-09-17 | Intel Corporation | Manageability extension mechanism for system firmware |
US7577981B2 (en) * | 2005-02-03 | 2009-08-18 | Texas Instruments Incorporated | Updating embedded firmware in a video system |
US7486907B2 (en) * | 2006-01-11 | 2009-02-03 | Canon Kabushiki Kaisha | Electrophotographic image forming apparatus including a tray for carrying a process cartridge |
CN101512486A (zh) * | 2006-08-29 | 2009-08-19 | 皇家飞利浦电子股份有限公司 | 用于升级消费型产品中的软件的方法和设备 |
US7734247B2 (en) * | 2007-01-25 | 2010-06-08 | Sony Ericsson Mobile Communications Ab | Configurable serial memory interface |
US8392895B2 (en) * | 2009-01-13 | 2013-03-05 | Mediatek Inc. | Firmware extension method and firmware builder |
EP2462567A2 (en) * | 2009-05-03 | 2012-06-13 | Logomotion, s.r.o. | A payment terminal using a mobile communication device, such as a mobile phone; a method of direct debit payment transaction |
US20110087825A1 (en) * | 2009-10-09 | 2011-04-14 | Cialini Scott W | Electronic Device with Removable USB Flash Drive and USB Flash Drive with Added Functionality |
-
2010
- 2010-04-16 EP EP10425122A patent/EP2378417A1/en not_active Ceased
-
2011
- 2011-04-04 CA CA2736300A patent/CA2736300C/en active Active
- 2011-04-15 CN CN201110097139.9A patent/CN102222052B/zh active Active
- 2011-04-15 US US13/087,834 patent/US8627307B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1221652A2 (en) * | 2000-12-21 | 2002-07-10 | Microsoft Corporation | System and method to specify device specific user interface information in the firmware of a USB device |
US20050240919A1 (en) * | 2004-04-27 | 2005-10-27 | Kim Kyoug I | Firmware update using memory card reader |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105556467A (zh) * | 2013-08-06 | 2016-05-04 | 恩德莱斯和豪瑟尔过程解决方案股份公司 | 用于扩展现场设备的嵌入式软件组件的方法 |
US10255060B2 (en) | 2013-08-06 | 2019-04-09 | Endress + Hauser Process Solutions Ag | Method for extending an embedded software component of a field device |
CN107368342A (zh) * | 2017-08-10 | 2017-11-21 | 北京元心科技有限公司 | 驱动硬件扩展模块的方法、装置及终端设备 |
CN107368342B (zh) * | 2017-08-10 | 2020-08-14 | 北京元心科技有限公司 | 驱动硬件扩展模块的方法、装置及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CA2736300A1 (en) | 2011-10-16 |
US20110258618A1 (en) | 2011-10-20 |
EP2378417A1 (en) | 2011-10-19 |
US8627307B2 (en) | 2014-01-07 |
CA2736300C (en) | 2018-10-30 |
CN102222052B (zh) | 2015-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102222052A (zh) | 扩展嵌入式系统的功能 | |
US10999084B2 (en) | Leveraging remote direct memory access (RDMA) for packet capture | |
US11922177B2 (en) | Securely and reliably transferring startup script | |
CN106537338B (zh) | 自扩展云 | |
KR100541942B1 (ko) | 홈네트워크의 홈디바이스원격관리장치 및 그 방법 | |
JP5656803B2 (ja) | 仮想化ホームゲイトウェイ及びシステム、アプリケーション実行方法 | |
US20120005465A1 (en) | System and method for configuring a computer system for a software package installation | |
CN1427587A (zh) | 用于远端更新家用设备功能的方法和系统 | |
CN103942063A (zh) | 一种针对Java Web应用的集中配置和远程部署方法 | |
US11132191B2 (en) | Software and firmware updates of computing systems | |
CN102457541A (zh) | 无盘工作站启动过程中避免发生资源竞争的系统及方法 | |
US20100043012A1 (en) | Electronic device system and sharing method thereof | |
CN112764823B (zh) | Nvr系统的启动方法、主机操作系统和数据通信方法 | |
BRPI0807436A2 (pt) | Método para proporcionar conectividade entre um dispositivo móvel e um dispositivo de computação de mesa | |
CN101616430B (zh) | 一种管理家庭网关软件版本的方法及家庭网关 | |
US20070106777A1 (en) | Automatic functionality generating mechanism for network connecting appliances | |
CN111049906B (zh) | 一种无线网桥网络统一管理的方法、装置及系统 | |
CN112130953A (zh) | Windows Hyper-V虚拟化的应用部署方法 | |
CN107861761B (zh) | 一种物理主机的启动方法及系统 | |
MX2008002494A (es) | Metodo y aparato para configurar un dispositivo desde una red. | |
CN111506657B (zh) | 一种区块链节点设备部署的方法 | |
CN112351114B (zh) | 一种信息处理方法、装置以及存储介质 | |
JP4283298B2 (ja) | 管理システム、およびネットワーク接続方法 | |
CN111694578A (zh) | 一种获取基于WinSW的系统安装包的方法及装置 | |
CN111367811A (zh) | 一种提高bmc的管理网页调试效率的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |