用于影响控制器的控制程序的方法

文档序号:8256764阅读:319来源:国知局
用于影响控制器的控制程序的方法
【技术领域】
[0001]本发明涉及一种按照权利要求1的前序部分的用于影响控制器的控制程序的方法。
【背景技术】
[0002]控制器在多个技术领域中大量使用。其中一个特别重要的应用领域是在汽车中的发动机、变速器和底盘的控制和在飞机中的推进装置的控制。在这样的控制器中,程序代码通常以二进制形式存储。相应的优选存储在只读存储器中的控制程序不可能轻易地改变。
[0003]一种用于影响控制器的方法由文献DE 10 2004 027 033 Al已知。

【发明内容】

[0004]在这种背景下本发明的任务在于,给出一种用于影响控制器的控制程序的方法,所述方法对现有技术进行改进。
[0005]该任务通过具有权利要求1的特征的用于影响控制器的控制程序的方法解决。本发明有利的设计是从属权利要求的主题。
[0006]按照本发明的第一主题,提供一种用于影响控制器的控制程序的方法,其中所述控制程序具有多个第一函数/功能(Funkt1n)并且至少一个所述第一函数构成用于控制促动器,并且设有存储器并且所述存储器具有以配置给第一函数的子程序占用的存储区,并且控制程序作为二进制的程序代码存在,其中在控制程序的程序代码中在调用一个所述第一函数的情况下存在转移地址并且所述转移地址指向与所述函数调用关联的子程序的存储器地址,并且其中所述子程序作为二进制的程序代码的序列存在并且在子程序的程序代码的所述序列的结尾存在返回指令,并且其中检查控制程序的程序代码中函数/功能调用的出现并且确定与函数调用关联的转移地址和返回指令的地址,由所述确定结果来确定以相应的子程序占用的存储区的大小,并且配置给第一函数的标志符连同存储区的相应配置给第一函数的大小和地址在显示单元中示出,其中所述显示单元构成为计算机系统的一部分并且借助所述计算机系统将至少一个所述第一函数选择为要清除的并将所选择的第一函数的大小和地址存储在一个信息结构中,并且解除所选择的第一函数的至少一个函数调用和/或通过第二函数代替第一函数,其中借助第二函数的程序代码覆盖所选择的第一函数的程序代码。
[0007]要指出的是,本文中,概念“信息结构”不仅是指文件,而且还是指文件结构以及工作程序内的数据结构。此外要指出的是,概念“子系统”是指所选择的、即要清除的函数或存储器的未被占用的区域优选图形显示的模型。在这里有利的是,为每个选择的第一函数和未被占用的自由的存储区分别配置一个子系统。此外指出,概念“标志符”主要是指子程序的所谓的暂时的第一名称。原则上设定,在确定真正的即“正确的”函数名之后,用“正确的”函数名代替暂时的第一名称。
[0008]用于影响控制器的控制程序的所述方法的一个优点是,即使对于已经用于控制发动机的较旧的控制器中,也能够实施对控制程序的改变,即所谓的更新,不必获知具有子程序的清单或其名称和转移地址的控制程序的源代码或控制程序的说明。利用本方法使用者很大程度上不受缺乏控制程序制造者所提供的信息的影响。在发动机的调校的领域中,所述方法也能够实现简单的和低成本的非常很大程度上对控制程序的干预。
[0009]在所述方法的一个改进方案中,选择多个要清除的第一函数并且由多个第二函数代替之。为此在显示单元中图形示出借助标志符命名的函数连同其大小和地址。随后选择要改变的或要清除的函数并且借助第二函数代替。此外优选的是,存储器除了以子程序占用的存储区以外还包含空闲的存储区。研究表明,有利的是,由选择为要清除而的第一函数占用的各个存储区并且还有空闲的存储区分别配置有唯一的段名并且所述段名存储在信息结构中。优选标志符对应于段名或标志符和段名相同。此后在用于每个自由的存储区的信息结构中存储标志符、子程序调用的转移地址、子程序长度、即大小和段名。配置段名的一个优点是,在存在多个存储区的情况下提供了另一个排序标准,并且能够实施分类、即按照段名的排序。
[0010]在一个改进方案中有利的是,通过对要清除的第一函数的存储区的地址和大小的分析,确定连续的各个存储区和所述各个存储区的大小和地址并将其存储在信息结构中。
[0011]在另一种实施形式中,借助计算机系统对于要清除的第一函数的每个存储区和/或对于每个自由的存储区在产生第二函数的程序代码之前产生空的子系统并且将其配置给所述存储区并且将子系统与所述存储区的配置关系存储在信息结构中和/或子系统中。特别优选的是,第二函数也配置给空的子系统。此外按照一种实施形式,给所述空的子系统配置元信息并将所述元信息存储在信息结构中和/或子系统中。
[0012]在另一种改进方案中,多个子系统通过程序调用相互关联并且将各子系统相关联的所述关联关系存储在信息结构和/或子系统中。研究表明,有利的是,对于每个子系统产生优选C文件形式的单独的程序代码。当然,也能够使用其他编程语言。
[0013]在一种优选的实施形式中,对于第二函数借助编译器产生二进制的程序代码,并且只要存在元信息则将所述元信息加入到所述二进制的程序代码中。
[0014]研究表明,有利的是,仅当所述配置的存储区超过预定的最小大小时,才在计算机系统中示出配置给第一函数的存储区。在另一种改进方案中有利的是,借助测试程序检查,所述选择的唯一的或多个第一函数的存储区对于第二函数的大小是否足够。
[0015]在另一种实施形式中,借助试探式的方法实施存储区的检查并且通过使用的程序段的数量和/或类型确定第二函数的存储器需求。在一种特别优选的实施形式中,在产生第二函数的二进制程序代码时,在将第二函数的二进制程序代码分配到多个存储区上时,根据所述分配情况将适当的转移指令嵌入到所产生的程序代码中。在这里适当的转移指令的命名尤其是理解为,在存储区的地址终点上调用转移指令,所述转移指令指向另一个存储区的地址起点。当然,程序代码的产生是指编译步骤,在所述编译步骤中由编程语言尤其是C程序步骤产生二进制的程序代码。尤其优选的是,将第二函数的二进制的程序代码写入所述一个或多个配置的存储区中。
[0016]在一种优选的改进方案中,在计算机系统中,在配置第二函数之后显示剩余的存储区。一个优点是,在存在多个第二函数的情况下能够连续地检查,对于另一个第二函数是否有足够的存储空间可供使用。
[0017]在一种改进方案中,在存储器中在所选择的第一函数的转移地址的目标地址上存储返回指令。当然,写入返回指令的地址对于第二函数的程序代码是隐藏的(ausblenden),并且不以第二函数的程序代码写入。如果没发现并且没解除选择的第一函数的函数调用并且因此还调用第一函数,则在执行程序代码时简单地返回并且继续执行程序。在调用第二函数时,调用被置于接着返回指令的存储器地址,或换句话说第二函数在跟随返回指令的存储器地址处才开始。由此在存储内容改变时提高安全性。
[0018]另一种实施形式是,在要清除的第一函数的存储区的前面已经存在空闲的存储区。两个区域组合成一个大的存储区并且为此产生唯一的子系统并将其配置给一个所述第二函数。为了现在保证,第一函数的调用不会在中间跳转到第二函数中,将返回指令置于第一函数的转移地址的最初的地址位置上。第二函数的程序代码占用存储区的其余的区域,然而不占用返回指令的地址。当然,所有对第二函数的调用指向第二函数的起始地址。
【附图说明】
[0019]接着参考附图进一步解释本发明。在这里同类的部分以相同的附图标记来标记。所示出的实施形式非常示意性地表示,即,距离和横向的和垂直的尺寸不是按比例的并且只要没有另外说明彼此也不具有可导出的几何关系。其中:
[0020]图1示出控制器结合显示单元的简化构造;
[0021]图2示出图1的描述中的存储器在存储内容改变之前和之后的较详细的划分;
[0022]图3示出按照本发明的方法的一种实施形式的简化图。
【具体实施方式】
[0023]图1的视图示出控制器E⑶,其具有存储器SPl和接口单元SI和处理器PC。控制器ECU借助接口单元SI与计算机系统GUI处于数据连接。计算机系统GUI具有未示出的显示单元。通常所述显示单元也称为图形界面单元。在控制单元E⑶中借助处理器PC执行控制程序。所述控制程序作为二进制的程序代码存在并且也可以称为主程序。所述控制程序具有多个在图2的图示中示出的第一函数F1A、F1B、F1C、...F1N。第一函数F1A、F1B、F1C、...FlN中的至少一部分的优选的任务是控制一个或多个未示出的促动器。此外第一函数F1A、FIB、F1C、...FlN配置有子程序。
[0024]控制程序由处理器PC执行,其中在控制程序的程序代码为了调用第一函数(F1A、
F1B、F1C、...F1N)存在转移地址。在这里转移地址指向与函数调用关联的子程序的存储器地址。相应的子程序和所述控制程序一样作为二进制的程序代码的序列存在。在所述子程序的程序代码的所述序列的结尾借助返回指令返回到主程序的预定的位置并且进一步执行控制程序的程序代码。
[0025]借助所述计算机系统CTI检查控制程序的程序代码中函数调用的出现并且确与所述函数调用关联的转移地址和返回指令的地址定,并且由所述确定结果导出存储器SPl用相应的子程序占用的存储区的大小。此外给所确定的子程序设置标志符。在这里概念“标志符”包括配置给子程序的名称。所确定的数据、即所确定的第一函数F1A、F1B、F1C、...FlN的大小和地址以及相应的标志符存储在图3的图示中示出的信息结构中。此外配置给第一函数F1A、FIB、F1C、...FlN的标志符连同存储区的配置给相应的第一函数F1A、F1B、F1C、...FlN的大小和地址在显示单元中示出。
[0026]图2的视图针对在图1的图示中示出的存储器SPl示出存储空间的示意性的占用情况。下面只解释与图1的图示的区别。在存储器SPl中存储有多个第一函数F1A、F1B、
FlC,...FIN。在一部分第一函数F1A、F1B、F1C、...FlN之间构成空闲的存储区FRl和FR2。借助计算机系统⑶I,从多个确定的第一函数F1A、FIB、F1C、...FlN中将第一个第一函数FlA和第二个第一函数FlB选择为要清除的。最后借助第一个第二函数F2A的程序代码和借助第二个第二函数F2B覆盖所选择的第一函数FlA和FlB的程序代码。
[0027]借助显示单元,在检查程序代码之后,第一个第二函数F2A和第二个第二函数F2B在此前的第一函数FlA和FlB的位置上存储,换句话说代替所选择的第一函数FlA和F1B。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1