改变电子控制单元的存储器中的软件的方法和计算机系统技术方案

技术编号:11597644 阅读:81 留言:0更新日期:2015-06-12 09:43
本发明专利技术涉及一种用于改变电子控制单元的存储器中的软件的方法,其中,在覆盖存储器中的地址区域中存储旁路例程的至少一个功能性部分,借助旁路例程应至少部分地取代原始的程序例程;或者在覆盖存储器中存储作为旁路例程的第一部分的跳转指令,跳转指令直接或间接地指向旁路例程的第二部分,该第二部分存储在处理器能访问的地址区域内,并且为了激活覆盖功能而创建关联关系信息,关联关系信息将覆盖存储器的地址和/或地址区域与待取代的程序例程的或待取代的一部分程序例程的地址或地址区域相关联,并且关联关系信息能够经由控制单元的接口激活或去激活。本发明专利技术还涉及一种用于用于改变电子控制单元的存储器中的软件的计算机系统。

【技术实现步骤摘要】

本专利技术涉及一种用于改变电子控制单元的存储器中的软件的方法,其中,所述存储器包括至少一个只读存储器,所述只读存储器具有存储在其中的并且构成所述软件的至少一部分的多个原始的程序例程,所述原始的程序例程通过所述控制单元的至少一个处理器执行;所述存储器具有用于存储易失性数据的至少一个工作存储器;并且所述存储器还具有覆盖存储器,所述覆盖存储器中的每个存储地址能够借助于关联关系信息与所述只读存储器中的存储地址相关联,以至于所述处理器在覆盖功能被激活时代替执行在所述只读存储器中的地址处的程序例程指令而是执行在所述覆盖存储器的相关联的地址处的指令。本专利技术还涉及一种用于改变电子控制单元的存储器中的软件的计算机系统。
技术介绍
在汽车工业中,软件的使用能够实现如通过纯机械解决方案不可能实现的、某种程度有效的监测和控制机制。现代汽车包括由电子控制单元(ECU)、工作存储器和只读存储器构成的网络,所述电子控制单元总是具有至少一个处理器,所述处理器执行程序例程,所述只读存储器通常通过闪存存储器实现。所有控制单元还具有接口,这些控制单元借助于所述接口接收传感器数据、操控执行器并且相互通信。如在软件工业中通常常见的那样,在ECU编程时也倾向于采用现有的解决方案。因此现有的马达控制单元,例如用于先前系列的马达的马达控制单元,用作为研发新的控制单元的基础。然后选择性地修改或者重新开发各个程序例程,而绝大部分旧代码被保留。替选地,制造商经常对供应商要求完全编程的开发控制单元,以便将其随后根据自己的特定要求来自行修改。在这种情况下,新开发的程序例程必须被集成到控制单元的可运行的二进制代码中并且在那里取代、改变或补充相应的原始程序例程。该集成过程称作为旁路。为了实现旁路存在不同的可能性。非常广泛传播的方法是基于服务的旁路。服务是位于控制单元的存储器中的特定函数。在程序代码的特定位置上调用服务并且该服务通过下述方式承担旁路的技术实施,即:服务附加于或代替原始的程序例程而调用旁路例程,提供所述旁路例程的输入参数并且在其运行之后确保由旁路例程写入的值存储在控制单元存储器中的正确位置处。其它方法不要求服务函数。这些其它方法基于二级制代码的修改。例如可行的是,通过插入开关逻辑器而禁用函数中的变量访问。原则上,旁路例程的代码能够位于外部系统上或者位于控制单元本身上。后一种可能性,即所谓的内部旁路,在此不要求附加的硬件并且不取决于特殊接口的存在。开发控制单元必须根据至今为止的用于实施旁路的现有技术来制备。在应用基于服务的旁路方法时这意味着,在要取代的函数之前和/或之后(根据方法)和/或之内,服务函数的调用必须被集成到程序例程的二进制代码中。在理想情况下,该服务调用在源代码层面上已经实现。在实践中,其并不总是可实现的。例如,控制单元的供应商对此可能没有准备或者在已经制成控制单元之后才显示出对特定函数进行旁路的必要性。在这样的情况下也可行的是,将调用后续地集成到二级制代码中。根据当前的现有技术,旁路例程的代码的操作分别引起新写入控制单元的闪存存储器。这不仅是耗时的(几十秒至几十分钟)并且中断正在运行的测试系列,而且也过度损耗闪存存储器,而该闪存存储器在物理上仅能够承受有限次的存储过程。在相应于现有技术的典型情况下,除了自有的程序代码,对于基于服务的内部旁路存在在闪存中的特定的旁路-服务函数。为旁路准备的任意程序例程f扩展服务的两次调用。将旁路例程安装在闪存中的用户将该旁路例程的存储地址登记在表中。该服务函数的第一次调用例如直接发生在f之前。该服务函数获得表位置作为参数。如果服务函数在那里发现存储地址,那么所述服务函数调用位于该地址处的旁路函数。否则该服务函数保持被动。旁路例程只要其被执行则将由其产生的所有值根据专门为其定义的全局变量写入缓冲存储器中。在执行完旁路例程之后,处理器又跳回到原本的程序中。然后函数f正常运行,而与旁路例程是否被执行无关。在运行完f之后进行服务函数的第二次调用。所述服务函数获得第二表位置作为参数并且在那里发现覆盖函数的地址。该地址与旁路例程匹配并且连同旁路例程一起被安装。覆盖例程读取由旁路例程设立的缓冲存储器并且覆盖由f写入的变量。关于由f处理的变量的信息来自控制单元的a2l文件。该文件是在每个开发控制单元中附有的技术说明文件。其主要包含块和第二块,所述块将在控制单元上运行的函数与其相应所读取的和所写入的变量相关联,所述第二块列举变量的存储地址。因此,f的源代码的知识对于设计旁路例程不是必需的。
技术实现思路
本专利技术的目的是,在控制单元上改变软件(所述软件在最初、尤其是在制造商方面并不是为此准备的),允许在软件上的改变,尤其是因此不必包括在程序例程内的准备好的服务函数的调用。此外的一个目的是,在此允许尽可能不动或者甚至完全不动闪存存储器的内容,由此避过大部分在旁路时出现的、已经提及的问题(闪存存储器的物理加载、为了写入控制单元而引起的高耗时、通过服务函数的预先准备的必要性)。另一目的是,开辟在控制单元的运行时间能够动态地补充、改变或更换程序例程的代码的可能性,尤其是无需为此停止控制单元。根据本专利技术,所述目的如下实现:经由控制单元的接口借助于连接在该接口上的影响设备或者通过集成到控制单元程序中的服务代码,尤其是在控制单元运行时间期间,在覆盖存储器的地址区域中存储旁路例程的至少一部分,原始的程序例程应被该旁路例程取代或至少部分地取代。根据本专利技术,旁路例程包括对控制单元的功能产生直接影响的功能代码和可选的辅助代码,所述辅助代码在需要时对功能代码进行补充,以便确保功能代码的正常执行。对辅助代码的示例是跳转指令、服务函数和服务函数的调用。根据本专利技术,取代程序例程或者取代至少一部分程序例程理解为,程序例程或一部分程序例程在功能上被取代,即由处理器执行其它例程或其它部分而不是执行该例程或者一部分该例程。根据本专利技术的取代尤其根据本专利技术不改变只读存储器中的原始代码,而是能够不动该原始代码。根据本专利技术确保由处理器执行其它代码而不是执行原始代码。为此利用本专利技术,使得控制单元,尤其是不是用于构造产品中的系列而是用于开发、测试和调整在该单元上实现的软件的开发控制单元,通常具有所谓的覆盖存储器。所述覆盖存储器是特定的存储区域,该特定的存储区域用于快速地且不复杂地覆盖程序代码的个本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/CN104699478.html" title="改变电子控制单元的存储器中的软件的方法和计算机系统原文来自X技术">改变电子控制单元的存储器中的软件的方法和计算机系统</a>

【技术保护点】
一种用于改变电子控制单元(ECU)的存储器中的软件的方法,其中,所述存储器包括至少一个只读存储器(SP),所述只读存储器具有存储在其中的并且形成所述软件的至少一部分的多个原始的程序例程,所述原始的程序例程通过所述控制单元(ECU)的至少一个处理器(C)执行;所述存储器具有用于存储易失性数据的至少一个工作存储器(RAM);并且所述存储器还具有覆盖存储器(OV),其中,所述覆盖存储器(OV)中的每个存储地址能够借助于关联关系信息与所述只读存储器(SP)中的存储地址相关联,以至于所述处理器(C)在覆盖功能被激活时代替执行在所述只读存储器(SP)中的地址处的程序例程指令而是执行在所述覆盖存储器(OV)的相关联的地址处的指令,其特征在于,尤其在所述控制单元(ECU)的运行时间期间,在所述覆盖存储器(OV)中的地址区域中存储旁路例程的至少一个功能性部分,借助所述旁路例程应至少部分地取代所述原始的程序例程;或者在所述覆盖存储器(OV)中存储作为旁路例程的第一部分的跳转指令,所述跳转指令直接或间接地指向旁路例程的第二部分,该第二部分存储在所述处理器能访问的地址区域内,并且为了激活覆盖功能而创建关联关系信息,所述关联关系信息将所述覆盖存储器的地址和/或地址区域与待取代的程序例程的或待取代的一部分程序例程的地址或地址区域相关联,并且所述关联关系信息能够经由所述控制单元的接口激活或去激活。...

【技术特征摘要】
2013.12.09 EP 13005730.01.一种用于改变电子控制单元(ECU)的存储器中的软件的方法,
其中,所述存储器包括至少一个只读存储器(SP),所述只读存储器具有
存储在其中的并且形成所述软件的至少一部分的多个原始的程序例程,
所述原始的程序例程通过所述控制单元(ECU)的至少一个处理器(C)
执行;所述存储器具有用于存储易失性数据的至少一个工作存储器
(RAM);并且所述存储器还具有覆盖存储器(OV),其中,所述覆盖
存储器(OV)中的每个存储地址能够借助于关联关系信息与所述只读存
储器(SP)中的存储地址相关联,以至于所述处理器(C)在覆盖功能
被激活时代替执行在所述只读存储器(SP)中的地址处的程序例程指令
而是执行在所述覆盖存储器(OV)的相关联的地址处的指令,
其特征在于,尤其在所述控制单元(ECU)的运行时间期间,在所
述覆盖存储器(OV)中的地址区域中存储旁路例程的至少一个功能性部
分,借助所述旁路例程应至少部分地取代所述原始的程序例程;或者在
所述覆盖存储器(OV)中存储作为旁路例程的第一部分的跳转指令,所
述跳转指令直接或间接地指向旁路例程的第二部分,该第二部分存储在
所述处理器能访问的地址区域内,并且
为了激活覆盖功能而创建关联关系信息,所述关联关系信息将所述
覆盖存储器的地址和/或地址区域与待取代的程序例程的或待取代的一
部分程序例程的地址或地址区域相关联,并且所述关联关系信息能够经
由所述控制单元的接口激活或去激活。
2.根据权利要求1所述的方法,其特征在于,所述只读存储器中的
被待取代的程序例程或者待取代的一部分程序例程占用的整个地址区域
通过所述覆盖存储器以等长的地址区域覆盖,在所述等长的地址区域中
至少部分地存储进行取代的旁路例程。
3.根据权利要求1所述的方法,其特征在于,在旁路例程的程序代
码长度大于待取代的程序例程的程序代码长度或大于待取代的一部分程
序例程的程序代码长度的情况下,所述只读存储器中的被待取代的程序

\t例程或待取代的一部分程序例程占用的整个地址区域在覆盖存储器中通
过等长的地址区域来覆盖,在所述等长的地址区域中存储旁路例程的第
一部分,该第一部分以如下跳转指令结束,即该跳转指令引起处理器在
程序执行时在由所述跳转指令指定的地址处继续运行,自该指定的地址
起存储所述旁路例程的至少一个另外的部分。
4.根据权利要求2或3所述的方法,其特征在于,在取代整个程序
例程时,所述旁路例程以如下向回跳转指令结束,即该向回跳转指令引
起所述处理器在执行程序时返回下述程序例程,即该程序例程调用待取
代的程序例程,尤其作为子程序例程调用;或者在取代仅一部分程序例
程时,所述旁路例程以如下跳转指令结束,即该跳转指令引起所述处理
器在所述原始的程序例程的下述指令的情况下继续执行程序,即所述指
令跟随待取代的所述一部分程序例程。
5.根据权利要求1所述的方法,其特征在于,旁路例程的整个功能
性代码存储在激活的覆盖存储器之外的存储区域中,并且在待取代的程
序例程的地址处的指令或日期借助于覆盖存储器用如下跳转指令覆盖,
即该跳转指令引起所述处理器在执行时在下述地址处继续运行,即该地
址通过所述跳转指令指定并且自该地址起存储所述旁路例程的功能性代
码,该功能性代码以向回跳转指令结束,该向回跳转指令引起所述处理
器返回到下述程序例程,即该程序例程调用待取代的程序例程,尤其作
为子程序例程调用。
6.根据权利要求1所述的方法,其特征在于,所述旁路例程的功能
性代码存储在激活的覆盖存储器之外的存储区域中,并且在待取代的程
序例程的地址处的指令在覆盖存储器中用如下跳转指令覆盖,即该跳转
指令引起所述处理器在执行时在下述地址处继续运行,即该地址通过所
述跳转指令指定,其中,所述跳转指令指向下述地址,即自该地址起程
序代码还执行所述旁路例程的功能性代码的调用,尤其其中,所述旁路
例程的功能性代码的调用在于所述程序代码之内被调用的子程序例程之
内进行。
7.根据上述权利要求中任一项所述的方法,其特征在于,所述覆盖

\t功能的激活在下述时间点进行,即在该时间点通过激活所述覆盖功能待
取代的机器代码不通过所述控制单元的处理器来执行。
8.根据权利要求7所述的方法,其特征在于,通过尤其是在经由接
口连接的影响设备上运行的、执行所述激活的逻辑,所述控制单元的处
理器的程序处理位置例如借助程序计数器监控,并且所述激活在下述时
间点进行,即在该时间点所述程序处理位置指向待取代的程序例程之外
的地址。
9.根据权利要求7所述的方法,其特征在于,通过尤其是在经由接
口连接的影响设备上运行的、执行所述激活的逻辑,触发/断开得以监控,
所述触发/断开通过设置在待取代的程序例程之外的程序代码设定,并且
所述激活在确定所述触发/断开发生变化时进行。
10.根据权利要求9所述的方法,其特征在于,所述触发通过变量访
问或者I/O引脚的状态变化构成。
11.根据权利要求7所述的方法,其特征在于,所述激活通过由所述
控制单元的处理器调用的子程序例程来实施。
12.根据权利要求7所述的方法,其特征在于,在待取代的程序例程
或待取代的一部...

【专利技术属性】
技术研发人员:M·德莱斯勒T·胡弗纳格尔B·凯勒斯
申请(专利权)人:帝斯贝思数字信号处理和控制工程有限公司
类型:发明
国别省市:德国;DE

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1