用于影响控制程序的方法和建模系统的制作方法

文档序号:9249096阅读:172来源:国知局
用于影响控制程序的方法和建模系统的制作方法
【技术领域】
[0001]本发明涉及一种根据权利要求1的前序部分所述的用于影响控制程序的方法以及一种用于执行所述方法的建模系统。
【背景技术】
[0002]由DE 10 2004 027 033 Al已知一种用于影响控制程序的方法。
[0003]电子控制器在大量复杂的技术系统中、特别是机动车辆中用于完成调节任务。当然,控制器程序、下面称为控制程序多数具有多个子程序,其中常见的控制程序使用10000个或更多个控制变量.利用在控制器中执行的控制程序主要对执行器,例如喷油嘴或电动转向机进行操控,读取传感器的值、例如转速传感器或加速度传感器、空气量传感器或废气探测器的值,并对这些值进行分析评估和处理。由于可能对于安全性重要的应用,在很多控制器中对于控制程序的可靠性和无故障性上提出了很高的要求。相应地,开发也是复杂的并且在要进行大量的系列测试。这里希望的是,在开发和再开发或继续开发或者测试控制器时,就已经对控制程序的函数或至少对控制程序的函数的变量进行改变。为此目的由现有技术已知专门的服务函数,所述函数设计成,使控制程序的第一功能失效并通过事后植入的第二功能替代第一功能,其方式例如是,由第一函数描述的变量事后用第二函数的输出来描述。服务函数的调用或者可以在控制程序的开发期间在所谓的源代码层面嵌入程序代码中,或者所述服务函数在完成控制程序之后事后嵌入。
[0004]希望根据上面的说明对控制程序进行改变并为此目的例如希望事后将服务函数嵌入控制程序代码中的函数开发人员或测试工程师通常不能获得控制程序的源代码。但通常能够获得例如十六进制或srec文件形式的二进制码连同所属的例如ASAP2文件形式的控制器说明文件,用于对控制器进行校正、测量或闪存编程。如上一段所述,对控制程序的函数的改变此时必须基于控制程序的二进制码进行。但此时对于负责这项任务的开发人员面临这样的问题,即,要识别二进制码的要改变的函数。对二进制码的也称为句法剖析(parsing)的分析尽管允许识别函数调用和这种函数调用所属的存储器地址,但这种调用不能简单地与与确定的函数对应。换而言之,尽管可以确认,一个函数存储在确定的存储器地址,但不能确认该函数是控制程序的哪个函数。

【发明内容】

[0005]在这个背景下,本发明的目的在于,给出一种方法和一种建模系统来改进现有技术。
[0006]所述目的通过具有权利要求1的特征的用于影响控制程序的方法来实现。本发明有利的实施形式是从属权利要求的主题。
[0007]根据本发明的主题,提供一种用于影响控制器的控制程序的方法,所述控制程序具有多个第一函数和分配给第一函数的子程序,所述第一函数中的至少一个第一函数构造成用于控制执行器,所述控制器具有第一存储器用于存放控制程序,在控制程序的程序代码中在调用其中一个第一函数时存在转移地址并且所述转移地址指向与该函数调用相关联的第一函数的存储器地址,并且所调用第一函数或其相配的子程序作为二进制的程序代码序列存在,在程序代码的序列的末尾处存在返回指令,所述返回指令带有分配给该返回指令的返回地址,并且所调用的第一函数的程序代码的序列包含第一数量的变量访问,即写访问和/或读访问,并给每个变量访问分配一个存储器地址,并且给至少一个变量分配第一值,其中,检查控制程序中函数调用的出现,并确定函数调用的地址,并检查第一函数的程序代码中的变量访问以及确定与相应的第一函数相关联的读和写的变量的地址,并且将所确定的第一函数和分配给相应的第一函数的变量地址连同与第一函数调用相关联的转移地址存储在第一分配表中,并通过第一分配表与预先规定的第二分配表的比较,给第一函数的至少一部分分配函数名,并用第二值替代其中一个变量的至少一个第一值。根据本发明,预先规定的第二分配表至少包含控制程序的变量与其存储器地址的对应关系以及控制程序的函数与由相应函数出发访问的变量的对应关系。
[0008]这里要指出,与第一函数相关联的转移地址附加地存储在第一分配表中。此外,还要指出,用语“影响”与用语“改变”等效地使用。此外,这里对程序的改变也是指对至少一个变量的改变,特别是对影响执行器功能的变量的改变。变量的改变根据本发明也可以直接访问分配给变量的存储器地址实现。一个变量的改变根据本发明还可以通过改变控制程序代码中的写规则来实现,特别是这样改变,即,使包含对于该变量的写规定的函数失效,并且该函数通过另一个具有对于该变量的另外的写规定的函数来替代。一个变量的改变根据本发明还可以这样实现,即,使控制程序代码中对该变量的写访问失效。
[0009]根据本发明的方法的优点在于,能够在不知道程序代码和/或源代码的情况下以简单的方式改变或影响控制器的控制程序。特别是根据本发明的方法允许,识别控制程序的二进制代码中的预先规定的函数并且在后面改变或替换所述函数。为此,通过根据本发明的当前方法确定,哪些函数名连同与给这些函数名相配的变量属于在控制程序的二进制代码中发现的函数调用的哪些地址。
[0010]特别是可以事后影响已经装配的控制器的控制程序。为此,利用现有的接口,特别是借助为此设置的影响装置,例如dSPACE DC1-GSI2。另一个优点是,通过识别存在于程序中的第一函数,在很多情况下可以不必获知程序代码或者不需要存在第一函数的完整文档。特别是当确定的函数的基本功能以及由该函数写和读的变量已知时,可以通过在现有技术中作为函数绕行已知的方法使该函数失效并用具有类似功能的函数替代该函数,前提是,在控制程序的二进制代码中要替代的函数的存储器地址是已知的。通过所述方法确定二进制代码中的第一函数或其地址以及在所述第一函数中读和写的变量的地址,并将其存储在第一分配表中。通过与预先规定的第二分配表的比较,可以给所调用的第一函数的存储器地址分配函数名。
[0011]在一个改进方案中,在检查控制程序的程序代码时,对于相应的变量确定相配的读访问和相配的写访问并将其存入第一分配表中。在将第一分配表与预先规定的第二分配表比较时,检查与变量相配的读访问和相配的写访问的一致性。此时有利的是,通过显示单元示出一致性程度。
[0012]在另一个改进方案中,在第二分配表中给每个第一函数分配一个函数名和确定数量的变量,其中,每个变量具有名称和存储器地址并且在比较时对于存储在第一分配表中的第一函数根据至少在两个分配表中在相应的第一函数下存储的变量的数量和名称方面的一致性程度来指派函数名,并示出一致性程度。有利的是,仅在完全一致或仅在一致性在一个阈值以上时才自动执行函数名的指派。
[0013]在一个实施形式中,当第一分配表和第二分配表之间在变量的数量和名称方面的一致性不完全时,替代自动指派函数名,执行手动指派。为此例如可以在显示单元中对比显示所确定的第一函数连同所发现的变量的数量和名称并显示在第二分配表中列出的所发现的变量的数量和名称。也可以在相同的显示单元中对于每个函数显示描述一致性程度的参量,例如为用百分比表示的一致性。
[0014]在一个本发明的有利的实施形式中,如果对于在控制程序中发现的函数调用没有发现具有相同数量和名称的变量的函数名,则采用探索法。有利的是,告知使用者具有最大一致性的函数名。在另一个有利的实施形式中,如果不存在完全的一致,则输出指示,并告知一致性程度。这种探索法是有利的,因为在实用中,第一和第二分配表在内容上可能是彼此不同的,特别是可能出现这样的情况,分配给函数的变量或函数调用被个别错误地分配,或所分配的变量或函数调用部分地没有记录在文档中,或者在分析二进制代码时被疏漏。
[0015]在一个优选的实施形式中,只有当在比较时一致性程度超过预先规定的阈值时,才执行输出。换而言之,只有当在两个分配表之间进行比较时对于变量的数量和名称一致性程度超过所述阈值时,才在显示单元中示出第一函数。所述阈值优选为至少50%、最优选为至少80%。
[0016]在另一个实施形式中,如果在比较两个分配表时,对于在检查控制程序中(发现)的第一函数,都没有确定存在完全的一致性,则通过影响装置输出消息。
[0017]在一个优选的实施形式中,只有当在比较时一致性程度超过阈值时,才自动给一个函数指派函数名。在一个可能的实施形式中,只有当在比较时一致性程度超过预先规定的或能预先规定的阈值时,才自动给一个函数指派函数名。在另一个可能的实施形式中,恰好当在比较时一致性程度超过第一阈值,并且同时一致性次佳的函数名的一致性程度低于第二阈值时,才自动给一个函数指派函数名。在另一个可能的实施形式中,恰好当在比较时一个函数的一致性程度超过预先规定的或能预先规定的第一阈值并且同时该函数的一致性程度与一致性次佳的函数的一致性程度的差值超过预先规定的或能预先规定的第二阈值时,才自动给该函数指派函数名。
[0018]在另一个实施形式中,利用对比样本来验证比较的结果。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1