技术领域
[0001] 本公开一般涉及电子系统,并且具体地,涉及嵌入式电子系统。本公开更具体地涉及能够实现至少一个应用的嵌入式电子系统。
相关背景技术
[0002] 嵌入式电子系统或嵌入式系统是通常专用于一个或多个特定任务的自治系统。嵌入式系统通常由操作系统(OS)实现。
[0003] 越来越多的嵌入式系统能够实现多个特定任务。为此,它们的操作系统能够实现多个应用。
[0004] 希望能够至少部分地改进已知嵌入式系统的某些方面,所述已知嵌入式系统的操作系统能够实现一个或多个应用。
具体实施方式
[0045] 在各个附图中,相似的特征由相似的附图标记表示。尤其,在各种实施例中共同的结构和/或功能特征可以具有相同的附图标记并且可以设置相同的结构、尺寸和材料特性。
[0046] 为了清楚起见,仅详细示出和描述了对理解本文描述的实施例有用的操作和元件。
[0047] 除非另外指出,否则当提及两个元件连接在一起时,这表示没有除了导体外的任何中间元件的直接连接,并且当提及两个元件耦合在一起时,这表示这两个元件可以连接或者它们可以通过一个或多个其它元件耦合。
[0048] 在以下公开中,除非另外指出,否则当提及绝对位置限定词时,例如术语“前”、“后”、“顶”、“底”、“左”、“右”等,或者当提及相对位置限定词时,例如术语“上方”、“下方”、“较高”、“较低”等,或者当提及取向限定词时,例如“水平”、“垂直”等,则参考图中所示的取向。
[0049] 除非另有说明,否则表述“约”、“大约”、“基本上”和“以……的数量级”表示在10%内,并且优选在5%内。
[0050] 术语“操作系统”指定使得能够操作嵌入式系统的一组程序或软件。操作系统是由嵌入式系统实现的最高级别的程序和软件。术语“应用”指定能够由操作系统实现的程序或软件。应用是具有比操作系统的级别更低的级别的软件程序。
[0051] 图1以方框的形式非常示意地示出所描述的实施例所适用的类型的电子电路或系统100的实施例。
[0052] 电子电路100包括:
[0053] 一个或多个数字处理单元110(PU),其中存在至少一个微处理器;
[0054] 易失性(RAM)112和/或非易失性(NVM)115数据和程序存储的一个或多个存储器;
[0055] 电路100内部的不同元件之间的一个或多个数据、地址和/或控制总线114;
[0056] 与电路100的外部进行有线或无线通信的一个或多个输入/输出接口117(I/O);以及
[0057] 根据本申请的各种其它电路,在图1中由方框116(FCT)表示。
[0058] 微处理器110的操作由操作系统控制,该操作系统尤其操作非易失性存储器区域115。
[0059] 电路100例如以接触或无接触的方式集成在微电路卡(IC卡)或芯片卡(智能卡)中。
[0060] 图2以方框的形式非常示意地示出所描述的实施例所适用的类型的电子电路的另一个实施例。
[0061] 图2的电路非常示意地示出非易失性存储器15(NVM)的架构的示例。
[0062] 存储器15至少在功能上包括:
[0063] 一个或多个区域152,用于存储将由与存储器相关联的微处理器或处理单元执行的操作系统实现的指令(程序)或应用数据;
[0064] 存储特定指令的区域16(SB),该特定指令与在电路启动或初始化时要执行的指令对应、或与从一个应用切换到另一个应用的指令对应;以及
[0065] 存储器控制器154(CTRL),其形成存储器15的内部与外部之间的接口。
[0066] 区域16旨在包含解译或转换应用安装或配置指令和/或数据的至少一个程序(脚本)18。指令和/或数据可以存储在区域16中,或者作为变型方案,存储在易失性存储器112或非易失性存储器15中。区域16例如是非易失性存储器平面的专用区域或者在结构上是不同于存储器15的邻域、例如寄存器,在非易失性存储器平面中设置有(一个或多个)区域
152。在一些实施例中,在功能上,区域16包含应用数据和用于解译该数据以将其传送到存储器15的程序。
[0067] (一个或多个)区域152旨在存储系统应用,即,与要实现的应用相关联的指令和数据。这些系统应用例如是在芯片卡环境中的支付应用(银行应用)或传输应用。
[0068] 在一个或多个实施例中,存储器15集成在还包含至少一个处理单元的电路中(与所述电路处于共同的芯片中)。存储器然后形成电路100(图1)的一部分并且形成嵌入式非易失性存储器。
[0069] 作为变型方案,存储器15可以是独立的电子电路,该电路旨在组装在由不同的微处理器操作的电子卡上。
[0070] 根据所描述的实施例,在系统集成存储器15(或115,图1)和至少一个处理单元的级别上提供嵌入在存储器中、更具体地说存储在区域16中的机制或程序18。这使得将不同于操作系统和不同于由电路执行的应用的可执行解译指令18存储到区域16中。根据实施例,区域或方框16包含链接到应用的控件17以及用于解译指令的程序18。解译器18旨在由操作系统执行以解译指令17。根据另一个实施例,区域16仅包含用于解译包含在易失性存储器中的指令17的程序(脚本)18,该指令例如从系统外部加载或存储在非易失性存储器
中。根据另一个实施例,方框16形成指令的解译器18,解译器能够执行被包含在存储解译器的存储器区域中的应用的配置的指令17。然后,由操作系统触发这些指令的执行。
[0071] 图3以方框的形式非常示意地示出管理诸如图2中所示的存储器电路的方法的实施方式。
[0072] 根据该实施例,在所谓的预先个性化阶段中,在电路制造时,或者更准确地说,在制造结束时,对指令解译器18进行编程。
[0073] 这种编程相当于将配置或个性化应用的指令17以及解译器18存储(方框31、STORE CONFIG/PERSO IN SB)到区域16中并且在制造结束(FAB)时进行该存储,嵌入式系统旨在该配置或个性化。
[0074] 一旦电路已经根据其所针对的客户被制造和预先个性化,即,使电路的区域16包含应用配置和/或个性化程序(脚本),就将该程序配置和/或个性化程序(脚本)递送给客户。该客户不是最终用户,而是操作该应用、例如银行或传输应用的实体。
[0075] 在产品的第一次启动(START)时,操作系统使包含在区域16中的解译器程序18执行(方框33、EXEC CONFIG/PERSO)例如包含在该区域中的配置或个性化指令17。这使得将(一个或多个)应用的指令和数据存储(方框35、STORE IN NVM)到非易失性存储器15的区域
152(图2)中,以用于由操作系统使用该指令和数据。
[0076] 然后,系统准备好利用存储在非易失性存储器15中的应用进行操作。
[0077] 图4以功能块的形式示意地示出图3的方法的实施方式。
[0078] 假定区域16(SCRIPTBOX)包含多个应用(例如在制造结束时已经存储在该区域中的三个应用)的指令和数据。然而,图3和图4中所示的过程可以针对仅实现单个应用的系统来实现。
[0079] 图4示出通过实现图3的方法来配置或个性化(一个或多个)应用时所涉及的嵌入式系统10的三个元件或功能。这包括非易失性存储器15,并且更具体地,包括该非易失性存储器的旨在存储应用(指令和全部或部分数据)的区域(152,图2)。这还包括指令17的解译器18和操作系统11(OS)。
[0080] 假定的是,图3的方法的实现使得将三个应用12(App1)、13(App2)和14(App3)存储到非易失性存储器中,所述三个应用的全部或部分配置数据在预先个性化期间存储到指令区域或寄存器16中。
[0081] 作为示例,数据是应用配置数据17。根据实施例,应用将数据存储到相同的非易失性存储器中,例如,应用的所有数据被存储在相同的非易失性存储器中。应用能够生成地址,在该地址处该应用的数据应从存储器15读取和/或写入到该存储器中。更具体地说,每个应用能够生成地址,在该地址处,每个应用自己的数据和指令应当被存储在存储器15中,而不侵占由其它应用使用的地址。尤其,诸如密钥等的秘密数据的存储地址既不包含在区域16中,也不为该区域所知。
[0082] 在嵌入式系统10的第一次启动和/或配置(FIRST BOOT)时,执行存储在区域16中的指令(即,程序)。这种执行使得在存储器15中配置应用12、13和14。该阶段由操作系统11实现,操作系统接收并执行区域16的指令。在一些实施例中,应用配置或个性化指令不包含应用的所有指令,而是包含使得能够将诸如标识符和密码等的秘密数据存储到非易失性存储器中的指令。作为变型方案,区域16存储针对应用的所有指令,然后将该指令分配给所述应用,以便该指令执行所述应用。
[0083] 该实施例的优点在于,由于地址由实际应用生成,所以在制造(步骤31)结束时存储在区域或寄存器16中的指令不需要包含明确的地址。这避免了,必须在操作系统的级别上提供用于个性化的安全指令以保证应用不针对所有电路或密钥个性化被存储在相同地址上。这简化了在系统制造结束时执行的预先个性化。实际上,存储在区域16中的应用的指令和数据现在对于所有制造的电路可以是相同的。
[0084] 换句话说,由专用区域16中包含的指令来组织,将(一个或多个)应用存储到每个所制造的电路的非易失性存储器中,并且这些指令对于所有制造的电路是公共的。
[0085] 一旦已经执行了第一次启动,指令区域16就不再用于配置现在在存储器15中的应用。该指令区域可以用于实现此后描述的应用重新配置方法,或者不再被使用。
[0086] 在指令解译器18仅在个性化阶段期间被使用的实施例中,一些实施例中的非易失性存储器区域16包含解译器18和要解译的数据或指令17。然后可以认为解译器的指令17和指令18是相同的指令集。一旦执行了个性化,这使得能够释放区域16以用于存储其它应用数据。
[0087] 图5以方框的形式非常示意地示出管理诸如图2中所示的存储器电路的方法的实施方式。
[0088] 该方法使用包含在指令区域16中的数据解译程序18来执行非易失性存储器15中的一个或多个应用的更新。
[0089] 通常,当存储在存储器15中的应用应被更新时(方框51、MAJ/RD REQ),操作系统OS从外部接收更新指令。
[0090] 在接收到该指令时,操作系统使得要被更新的应用(该应用的指令和/或数据17)写入区域16中(方框53、WRITE SB)。
[0091] 然后,包含在区域16(SB)中的程序18的执行(方框55、EXEC)引起存储器15中的相应应用的配置或更新。
[0092] 一旦该执行结束,应用就是最新的。
[0093] 可以实现与上述相同的过程,以从存储器15提取(读取)应用的数据。
[0094] 图6以功能块的形式示意地示出图5的方法的实施方式。
[0095] 如图4中所示,图6示出通过实现图5的方法来更新(一个或多个)应用时所涉及的嵌入式系统10的三个元件或功能。这包括非易失性存储器15,并且更具体地,包括该非易失性存储器的旨在存储应用(指令和全部或部分数据)的区域(152,图2)。这还包括指令17的解译器18和操作系统11(OS)。
[0096] 假定的是,三个应用12(App1)、13(App2)和14(App3)存在于非易失性存储器15中。
[0097] 在接收到更新程序(MAJ)时,操作系统将对应的指令17传送(WRITE SB)到区域或寄存器16中。包含在区域16中的解译程序18执行EXEC指令17,这使得重新配置或更新存储器15中的相关的(一个或多个)应用12、13和14。该阶段由操作系统11实现,该操作系统接收并执行区域或寄存器16的指令。对于图3和图4的实施例,应用配置和/或个性化指令不必包含应用的所有指令,而是包含使得能够尤其将诸如标识符或密码等的秘密数据存储到非易失性存储器中的指令。更具体地,假设解译器18既用于初始配置又用于多个应用之间的数据共享,则包含在区域16中并在应用之间共享的数据可能不同于最初用于配置应用的配置数据。
[0098] 与图3和图4的实施例类似,应用将数据存储到相同的非易失性存储器中,例如,应用的所有数据都存储在相同的非易失性存储器中。应用能够生成地址,在该地址处该应用的数据应在存储器15中读取和/或写入。更具体地,每个应用能够生成地址而不侵占其它应用所使用的地址。此外,两个相同的嵌入式系统10将看到它们的应用的存储在不同地址处的数据。
[0099] 结合图5和图6描述的解决方案也可以用于由另一个应用读取或写入一个应用的数据。例如,假设方框13的应用(App2)需要从方框12的应用(App1)读取数据和/或将数据重写到该应用中。为此,方框13的应用将表示该请求的指令发送到指令区域16。然后,该区域将所述指令分配给方框12的应用,以便该指令执行该应用。实际上,只有应用12能够读取或修改该应用已经存储在存储器15中的数据。因此,指令区域或寄存器16能够连接不同的应用,而不需要操作系统保证读或写的安全。
[0100] 作为变型方案,数据和/或指令17不存储在区域16中,而是运送经过易失性存储器,区域16用于存储解译用于数据和/或指令传送的指令的程序18。
[0101] 该实施例的优点在于,该实施例允许由另一个应用读取和/或重写应用的数据,而无需应用共享存储所述数据的地址。
[0102] 已经描述了各种实施例和变型方案。本领域技术人员将理解,这些实施例的某些特征可以组合,并且本领域技术人员将容易想到其它变型方案。尤其,图1和图2的实施例是兼容的,控制寄存器或区域能够累积图1和图2中描述的两种用途。
[0103] 最后,基于上文给出的功能指示,所描述的实施例和变型方案的实际实施在本领域技术人员的能力内。
[0104] 这样的变更、修改和改进旨在是本公开的一部分,并且旨在是在本公开的精神和范围内。因此,前面的描述仅是示例性的并且不旨在进行限制。本公开仅由所附权利要求书及其等效物限定。
[0105] 上述各种实施例可以组合以提供进一步的实施例。根据以上详细描述,可以对实施例进行这些改变和其它改变。通常,在所附权利要求中,所使用的术语不应被解释为将权利要求限制为说明书和权利要求中公开的具体实施例,而应被解释为包括所有可能的实施例以及这些权利要求所授权的等同物的全部范围。因此,权利要求不受本公开的限制。