CN105320597B - 用于中断电子控制器的总程序的执行的方法 - Google Patents
用于中断电子控制器的总程序的执行的方法 Download PDFInfo
- Publication number
- CN105320597B CN105320597B CN201510319803.8A CN201510319803A CN105320597B CN 105320597 B CN105320597 B CN 105320597B CN 201510319803 A CN201510319803 A CN 201510319803A CN 105320597 B CN105320597 B CN 105320597B
- Authority
- CN
- China
- Prior art keywords
- program
- execution
- total
- memory block
- value
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23283—Debugging, breakpoint
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种用于中断电子控制器的总程序的执行的方法,总程序具有:包括第一变量的第一程序,第一程序在第一存储区中存储或读取第一变量的第一值;包括第二变量的第二程序,第二程序在第一存储区中存储或读取第一变量的第一值,在第一和第二程序之间建立关联,形成图形建模环境,其具有图形模型元素,借助建模环境规定停止条件,借助其确定导致总程序的执行的中断的程序状态变化,执行总程序,在其执行期间探测程序状态变化并且将如下视为程序状态变化:开始和/或结束第一和/或第二程序的执行和/或对第一存储区的第一值进行读访问和/或写访问和/或第一存储区的第一值改变,以及如果发生停止条件中规定的程序状态变化,中断总程序的执行。
Description
技术领域
本发明涉及一种用于中断电子控制器的总程序的执行的方法。
背景技术
控制器是主要在现场装入的电子模块,在所述电子模块上例如电子控制或调节。电子控制器特别是在汽车领域中使用并且在那里例如控制机械的或电的执行器或评价传感器数据。控制器属于嵌入式系统。因此在控制器上执行用于控制电子装置的、用于处理数据和用于通信的总程序。
在电子控制器的总程序的开发过程中通常的是,许多开发人员同时进行程序设计工作。总程序的各个方面(如一方面程序架构、也就是说各个程序或单功能的关联或通信,和另一方面各个函数或程序本身)在此利用不同的工具经常基于模型地开发。该分布式的过程是容易出错的。
对电子控制器的程序架构、尤其是在汽车领域中提出特别的要求。汽车领域必须通过程序架构保证:单功能或程序在最高功能安全的前提下可以被再次使用、替换、标定和集成。用于满足所述要求在汽车领域中存在不同的标准,例如“汽车开放系统架构(Automotive Open System Architecture)”(AUTOSAR),以此预定用于总程序1的架构的规范。
在总程序借助建模环境按照标准或规范组合之后,通常在开发过程结束时接着测试,其中检查:总程序1是否按照结构模型和规范的要求,是否给出单程序的正确的功能,并且总程序的各组成部分是否正确地共同作用。
由2014年dSPACE有限公司的产品目录(http://www.dspace.com/de/gmb/home/medien/product_info.cfm的40-49页)已知用于电子控制器的总程序的图形建模的建模环境201SystemDesk,该建模环境也支持基于模拟的测试以用于检查之前提到的各方面。
至今为了结合基于模拟的测试来检查总程序,存在源代码调试和测量变量绘图的可能性。
发明内容
在这种背景下,本发明的任务在于,给出一种高效的方法,该方法进一步扩展现有技术。
该任务通过一种用于中断电子控制器的总程序的执行的方法来解决,其中,总程序具有:包括第一变量的第一程序,其中,第一程序将第一变量的第一值存储到存储器的第一存储区中或从存储器的第一存储区中读取第一变量的第一值;以及包括第二变量的第二程序,其中,第二程序将第一变量的第一值存储在存储器的第一存储区之外或从存储器的第一存储区中读取第一变量的第一值,以便在第一程序和第二程序之间建立关联,其中,形成图形建模环境,并且建模环境具有图形模型元素,其中,在图形建模环境中第一程序通过第一模型元素代表,并且第二程序通过第二模型元素代表,并且在第一程序和第二程序之间的关联通过第三模型元素代表,其特征在于,借助建模环境规定停止条件,其中,借助停止条件确定导致中断总程序的执行的程序状态变化,执行总程序,在总程序执行期间探测程序状态变化并且将如下情况视为程序状态变化:开始和/或结束第一和/或第二程序的执行,和/或对第一存储区的第一值进行读访问和/或写访问,和/或第一存储区的第一值改变,以及如果发生停止条件中所规定的程序状态变化,则中断总程序的执行。
本发明的优点在于,直观、快速且简单地规定在用于总程序的架构的建模环境内的停止条件,以此可以快速且不复杂地测试总程序。借此确保控制器的总程序的高的功能安全,这特别是在机动车的对安全关键的控制中、例如干预到转向装置或驱动装置中的控制中具有非常大的意义。
借助例如通过开始程序的执行来中断总程序的执行,在测试时例如确定,是否、何时并且在何种上下文中在执行总程序时执行程序或单功能此外通过在对存储器的值的读访问或写访问时中断总程序的执行来确定可能不希望的或未授权的操作。
此外,按照本发明的方法提供一种高效且简单的可能性:从架构模型出发来发现总程序的架构和/或各个程序的执行中的错误,并且在此绕开已知的方法的之前所提到的缺点。
按照本发明的方法的另一个优点在于,可以这样规定停止条件,使得多个程序状态变化可以相互在因果上和/或在时间上(temporal)组合,并且当程序状态变化按照所述组合而发生时,才停止总程序的执行。以此当在程序状态变化(例如执行程序或对存储器的值进行访问)之后其它程序状态变化(例如执行另一个程序或对存储器的另一个值进行访问)出现时(这被理解为在时间上的关联),则可以例如中断程序执行。当发生程序状态变化并且同时存储器的值取确定的值时(这被理解为在因果上的关联),则也可以中断程序执行。
在测试总程序中的已知问题在于,总程序或各个程序/函数的高级语言源代码不已知或不可理解,例如当存在目标代码或加密代码时。至今为了测试必须首先找到代码中的位置,所述位置对应于模型中确定的元素,以便在那里设置用于源代码调试的断点。最后程序代码通常也分布到多个文件上,这使常规的源代码调试变得困难。
在一种实施形式中优选,这样规定停止条件,使得在第一步骤中选择第一模型元素和/或第二模型元素,在第二步骤中进行选择和/或输入,其中,利用所述选择和/或输入来规定:在开始和/或结束第一程序的执行时和/或在开始和/或结束第二程序的执行时,应该中断程序执行,并且在开始和/或结束第一程序的执行时和/或在开始和/或结束第二程序的执行时,中断总程序的执行。
在另一种实施形式中优选,这样规定停止条件,即,在第一步骤中选择第三模型元素,在第二步骤中进行选择和/或输入,其中利用所述选择和/或输入来规定:在对第一存储区的第一值进行读访问和/或写访问时和/或在第一存储区的第一值改变时,应该中断程序执行,并且在对第一存储区的第一值进行读访问和/或写访问时和/或在第一存储区的第一值改变时,中断总程序的执行。
通过按照所述两个前面的实施形式借助图形模型元素来规定停止条件,显著加速并且直观设计用于测试的配置过程。在此同时避免错误,所述错误可能通过将程序代码组成部分手动地配置给图形模型元素产生。
在一种附加的实施形式中,第一变量通过图形的第四模型元素代表,并且这样规定停止条件,使得在第一步骤中选择第四模型元素,在第二步骤中进行选择和/或输入,其中,利用所述选择和/或输入来规定:在对第一存储区的第一值进行读访问和/或写访问时和/或在第一存储区的第一值改变时,应该中断程序执行,并且在对第一存储区的第一值进行读访问和/或写访问时和/或在第一存储区的第一值改变时,中断总程序的执行。
在最后提到的实施形式中,建模环境包含其他的图形模型元素,其例如代表程序的变量或接口。借助附加的模型元素可以规定停止条件,所述停止条件与通过模型元素代表的变量或存储区相关联。
在一种实施形式中优选,建模环境具有分级的树状结构,其中,所述分级的树状结构具有节点,并且所述节点代表第一程序和/或第一变量和/或第一存储区,其中,这样规定停止条件,使得在第一步骤中选择节点,在第二步骤中进行选择和/或输入,其中,利用所述选择和/或输入来规定:在开始和/或结束第一程序的执行时和/或在对第一存储区的第一值进行读访问和/或写访问时和/或在第一存储区的第一值改变时,应该中断程序执行。
分级的树状结构提供一种用于代表程序和/或变量的备选的显示形式。在树状结构中,程序架构的细节比在以图形模型元素的示图可更快速地理解,因此如果停止条件在分级的树状结构中进行规定,则在这里通过测试方法的较快且较简单的配置产生优点。
在另一种实施形式中优选,第一程序具有子程序和/或函数,并且开始和/或结束子程序的执行和/或开始和/或结束函数的执行被视为程序状态变化,并且在开始和/或结束子程序的执行时和/或在开始和/或结束函数的执行时,中断总程序的执行。
在一种备选的实施形式中,总程序借助图形建模环境按照AUTOSAR标准的规范来建模,其中存在总程序的程序代码和/或第一程序的程序代码,其中,所述程序代码至少部分地满足AUTOSAR标准的规范,并且第一模型元素和/或第二模型元素和/或第三模型元素和/或第四模型元素代表总程序的程序代码的组成部分和/或第一程序的程序代码的组成部分。
这样形成另一种实施形式,使得AUTOSAR标准定义RTE(运行时环境)事件并且所述RTE事件被视为程序状态变化并且当发生RTE事件时,中断总程序的执行。
为所述架构使用与AUTOSAR一致的规范得出如下优点,即,由此能够实现图形模型元素对总程序的程序代码的所述组成部分的高效配置。这通过符号进行,所述符号通过所述标准确定并且与程序状态变化的出现相关联。所述符号在此是程序内被命名的实体。可执行的程序单元的符号构成对于编译程序/连接程序通过名称可见的变量和函数。所述变量和函数映射到相应的标志符、亦即源代码中的变量和函数定义上,可执行的程序单元由所述源代码产生。在AUTOSAR标准中,函数的命名跟随确定的名称方案(Namensschemen)。例如在AUTOSAR运行环境(也通过简称RTE所已知)上的明确的读访问的名称如下构造:“Rte_Read_<p>_<o>”,其中<p>代表端口名称并且<o>代表变量原型的名称,亦即处于发送器-接收器界面内的要读取的值的容器的名称,所述界面将端口分类。所述符号可以被监控,即可以探测改变或调用。
在另一种实施形式中,设有源代码调试程序,并且总程序的执行和程序状态变化的探测借助源代码调试程序这样实施,使得借助停止条件确定源代码中的断点并且将所述断点传输给源代码调试程序。
使用源代码调试程序一方面带来优点,即,在这里可以使用已经存在的用于探测和中断程序执行的机制。在使用源代码调试程序时的另一个优点在于,程序和/或总程序的源代码不必修改。
这样形成一种附加的实施形式,使得总程序的程序代码的所述组成部分和/或第一程序的程序代码的所述组成部分占据在程序代码内的明确的位置,确定所述位置,并且在所述位置之前和/或之后插入用于探测程序状态变化和/或中断总程序的执行的程序语句,或通过用于探测程序状态变化和/或中断总程序的执行的程序语句来代替程序代码的所述组成部分。
最后提到的实施形式具有如下优点,即,该方法在执行总程序的情况下借助可以处理器指令系统的模拟来实施。
按照另一种进一步扩展方案所述方法这样进行,即,总程序的程序代码的所述组成部分和/或第一程序的程序代码的所述组成部分占据程序代码内的明确的位置,确定所述位置,并且显示总程序和/或程序的程序代码段,其中,所述程序代码段包含所述组成部分并且在停止条件中规定的程序状态变化通过所述组成部分进行。
由此可以快速识别,哪些源代码区段负责发生停止条件。
按照另一种进一步扩展方案,如果所述程序状态变化不导致程序执行的中断,则将程序状态变化存储在按时间排序的数据库中。
由此能够检查总程序的执行在时间上的发展。这样能够识别,在哪个相对的或绝对的时刻开始和结束程序,以及程序访问了哪些存储区。此外示出存储区的改变和具体值。
在另一种实施形式中,进行对第一存储区中的第一变量的第一值的修改。修改在中断总程序的执行之后实施。在所述修改之后继续总程序的执行。
附图说明
以下参考附图更详细地阐述本发明。在这里,同类的部件以相同的附图标记标明。图中:
图1示出按照本发明的方法的流程的实施形式;
图2示出图形建模环境的按照本发明的实施形式的示意视图;
图3示出分级的树状结构的实施形式。
具体实施方式
图2示意性示出用于总程序1的架构的图形建模环境201的一种可能的实施形式,其由现有技术已知。图2包含图形建模环境201、第一模型元素202、第二模型元素203、第三模型元素205和第四模型元素204。
总程序1在该实施形式中包括第一程序和第二程序,其中,第一程序11通过第一模型元素202并且第二程序21通过第二模型元素203代表。所述程序彼此例如这样关联,使得第一程序11将第一变量12的第一值存储到存储器的第一存储区中,并且包括第二变量的第二程序21从存储器的第一存储区中读取第一变量12的第一值。该关联在图形建模环境201通过第三模型元素205代表。在示出的实施形式,第一变量12通过图形的第四模型元素204代表。
借助建模环境,如其在图2中示出的,可以在架构层面上将程序的单功能集成在总程序1的组件中以及定义它们之间的通信。此外可以定义总程序1的不同的程序组件和变量的要求和标志。
总程序1的架构描述在总程序1内的基本的组件及其相互作用,其中,总程序1包括至少一个程序或至少一个单功能。所述架构可以包含关于总程序1的结构和组件化的信息,但也可以包含关于各组件之间的通信及其对硬件或软件资源的映射(Abbildung)的信息。
为了开发程序架构经常使用图形建模环境。在这里相应的程序或程序的部分及其连接以及所述架构的其他元素可以通过图形模型元素、例如块和线代表。这简单并且直观地设计开发流程。连接线通常表征数据、即存储区的值的传输或要求。传输的数据可以触发程序状态变化3,例如程序或程序的部分的执行,所述程序在模型中可以通过块示出。但程序状态变化3也可以不同地触发,例如通过时间上的触发。数据的传输或改变同样可以视为程序状态变化3。
在定义并且规定架构之后,组件包括其通信接口的说明可以传送给相应的函数开发人员,以便其可以执行程序的功能性。在该步骤执行之后,所述执行或程序可以交回给架构开发人员或软件集成商,其中在建模环境201中组合所述执行并且可以产生总程序1。
尤其是在电子控制器的总程序1的开发中可能发生控制器典型的错误。这由控制器的总程序1的架构的特点造成:在控制器的总程序1中,各个程序可以在运行环境内执行,所述运行环境通过控制器运行系统借助不同的驱动器和服务可以耦合到控制器的硬件和绑定在其上的I/O功能或通信系统上。控制器的软件的所有组件的连接可以通过接口建立。控制器程序的架构的另一个特点在于,总程序1的相互连接的程序可以在不同的控制器上执行,而所述程序不必适配于相应的控制器。
在电子控制器的总程序1的开发中的重要的错误来源在于系统的分布。与常规的程序相反,电子控制器的总程序1具有许多单功能或程序,所述单功能或程序例如通过总线(例如CAN、Flexray等)通信。这通常对于开发人员难以全面掌握。
在电子控制器的总程序1的开发中另一个的错误来源在于开发的分布和在转发数据时与此联系的可能的错误,例如错误的版本或错误的编译程序标记以及与开发相关联的复杂的工具链。
因此不仅在架构的建模和集成中而且在程序或程序的部分的开发中可能尤其是在用于电子控制器的程序和架构中发生不同的错误。这些错误可以在基于模拟的测试和实验中确定。此外,在总程序1中的程序的相互作用时也可能出现各个程序的执行和设计错误,所述执行和设计错误在单元或模块测试中未出现,所述单元或模块测试测试分离的程序的功能性。如果出现错误,则必须发现错误原因,所述错误原因经常不处于错误首先可见的地方,例如在实验中的测量变量的绘图中或在自动测试中到确定的值上。
所述错误可以是不同的类型。这样错误来源在于,在架构模型中给出的预先规定并不或只部分地转化到程序的执行中。这于是例如可以显示为,确定的程序写入到数据区中,其按照架构模型不应该所述数据区进行访问,由此所述程序可能非法地影响和改变数据。
为了发现错误,通常使用基于模拟的测试方法。为此通常总程序1所基于的源代码(或对于软件组件、程序、运行环境、控制器运行系统、服务、驱动器等必需的源代码文件)或其部分被编译、链接,并且由此产生的总程序1随后被执行。该执行可以在此直接在控制器上进行或作为虚拟的控制器在离线模拟中进行。在离线模拟中,模拟器不连接到物理的控制器上并且借此独立于实时。
图1示出按照本发明的方法的流程的一种实施形式,其中,执行第一步骤101、第二步骤102、第三步骤103、第四步骤104、第五步骤105、第六步骤106、第七步骤107和/或第八步骤108。
在第一步骤101中借助图形建模环境201规定停止条件2,其中,借助停止条件2确定导致中断总程序1的执行的程序状态变化3。
在一种实施形式中在该步骤中优选,这样规定停止条件2,使得在第一步骤中选择第一模型元素202和/或第二模型元素203,在第二步骤中进行选择和/或输入,其中,利用选择和/或输入规定:在开始和/或结束第一程序11的执行时和/或在开始和/或结束第二程序21的执行时,应该中断程序执行,并且在开始和/或结束第一程序11的执行时和/或在开始和/或结束第二程序21的执行时,中断总程序1的执行。
在另一种实施形式中在该步骤中优选,这样规定停止条件2,使得在第一步骤中选择第三模型元素205,在第二步骤中进行选择和/或输入,其中,利用所述选择和/或输入来规定:在对第一存储区的第一值进行读访问和/或写访问时和/或在第一存储区的第一值改变时,应该中断程序执行,并且在对第一存储区的第一值进行读访问和/或写访问时和/或在第一存储区的第一值改变时,中断总程序1的执行。
相应的模型元素的选择例如可以通过鼠标点击模型元素进行。所述选择和/或输入也可以借助列表进行,其中,在列表中多个模型元素可供选择。选择和/或输入也可以借助对模型元素的标志符的文字说明进行。一种可能的实现形式规定,鼠标点击用于代表第一程序11的模型元素的结果是出现弹出菜单,其中在弹出菜单中说明,在这里应该规定停止条件2,紧接着在另一个步骤中说明,总程序1的执行在开始第一程序11的执行时应该中断。用于规定停止条件的另一种可能性2是以“第一程序=开始”形式的文字说明。
另一种用于规范停止条件2的形式在于,通过AUTOSAR标准定义的RTE事件被视为程序状态变化3,在所述程序状态变化中应该中断总程序1的执行。RTE事件可以按照在www.autosar.org下给出AUTOSAR规范例如是所谓的TimingEvent、BackgroundEvent、DataReceivedEvent、DataWriteCompletedEvent、OperationInvokedEvent或InternalTriggerOccurredEvent。
可能的停止条件2可以与模型元素类型有关。可以在模型元素上定义的可能的停止条件2是例如程序的开始或终止或子程序、函数、可运行程序或程序的任务的开始和终止。
停止条件2的定义的一种可能的实施形式可以在于,通过鼠标点击模型元素打开菜单,在所述菜单中可以选择配备有停止条件2。此外可以打开附加的窗口,用于停止条件2的其他参数可以在所述窗口中给出。
在一种可能的实施形式中,可以通过鼠标点击模型元素、例如程序组成部分、端口或连接线例如借助菜单而获得输入,以此停止条件2特定为相应的模型元素所定义。此外可以预定对与相应的元素连接的可能的程序状态变化3和存储区的选择。随后一个或多个程序状态变化3和/或存储区可以配备有停止条件2。
在按照本发明的方法的一种可能的实施形式的第二步骤102中,图形模型元素映射在总程序1或程序的程序代码中的对应的位置上。
例如机器代码、二进制代码、汇编程序代码、源代码、中间代码或源文本可以被视为程序代码。
对于映射可以使用程序架构中的信息,其中,所述映射可以非常高效地实施,如果所述架构满足预定的规范的话。所述规范例如可以通过AUTOSAR标准预定。架构的规范可以预定用于对程序、子程序、任务、数据项、函数、可运行程序和/或变量命名的规则。
映射、也就是说确定通过图形模型元素代表的程序代码中的位置能够通过如下方式实现,即,总程序1借助图形建模环境201按照AUTOSAR标准的规范建模,并且存在总程序1的程序代码和/或第一程序11的程序代码,其中,所述程序代码至少部分地满足AUTOSAR标准的规范,并且第一模型元素202和/或第二模型元素203和/或第三模型元素205和/或第四模型元素204代表总程序1的程序代码的组成部分和/或第一程序11的程序代码的组成部分。
所述映射在一种实施形式中借助确定总程序1的程序代码的组成部分和/或第一程序11的程序代码的组成部分的位置进行,其中,程序代码的组成部分代表第一模型元素202和/或第二模型元素203和/或第三模型元素205和/或第四模型元素204。所述组成部分可以例如是指令,利用所述指令发起第一程序11的执行或发起对存储区的存储器访问。
在按照本发明的方法的一种可能的实施形式的第三步骤103中进行对程序代码中的断点的确定和将断点传输给源代码调试程序、例如程序“GNU调试程序”。程序代码中确定的位置理解为断点,其中在所述位置处执行指令,并且在所述指令之前或之后应该停止程序执行。在一种实施形式中,用于程序代码中的所有位置的断点传输给源代码调试程序,所述断点与图形模型元素相关联。在另一种实施形式中,仅在程序代码中的如下位置传输给源代码调试程序,在所述位置上执行指令,并且所述指令与图形模型元素关联,其中,对相应的图形模型元素规定停止条件2。指令与图形模型元素的关联例如通过如下方式给出,即,通过所述指令,发起程序的执行,其中,所述程序通过图形模型元素代表,或通过所述指令发起对存储区存储器访问,并且存储区配置有变量,其中,所述变量通过图形模型元素代表。
在按照本发明的方法的一种备选的实施形式中,在第三步骤103中进行,将用于探测程序状态变化3和/或中断总程序1的执行的程序语句插入在程序代码的组成部分的位置之前和/或之后,或程序代码的组成部分通过用于探测程序状态变化3和/或中断总程序1的执行的程序语句来代替。通过程序语句例如使程序或总程序1的汇编程序代码或二进制代码中的目标地址转向。在另一种实施形式中,通过程序语句调用附加的函数,所述函数包含用于探测和中断程序执行的机制。
在按照本发明的方法的一种可能的实施形式的第四步骤104中开始总程序1的执行。该步骤在一种实施形式中包括,借助第一程序11与第二程序的、利用建模环境201描述的通信产生可执行的总程序1,例如通过编译和链接。该步骤在一种实施形式中也包括运行环境的产生,其在AUTOSAR规范的范围中已知为RTE,其中,所述运行环境理解为总程序1的部分。
在一种按照本发明的实施形式中,编译、链接总程序1所基于的源代码、亦即用于软件组件、运行环境、控制器运行系统、服务、驱动器或类似物或其部分的源代码文件,并且随后执行由此产生的总程序1。该执行可以在此直接在控制器上进行或作为虚拟的控制器在离线模拟中进行。
在按照本发明的方法的一种可能的实施形式的第五步骤105中,在总程序1的执行期间探测程序状态变化3,其中,开始和/或结束第一和/或第二程序21的执行和/或对第一存储区的第一值进行读访问和/或写访问和/或第一存储区的第一值改变被视为程序状态变化3。在一种实施形式中,探测在此借助在第三步骤103中描述的操作方式进行,亦即借助源代码调试程序或借助添加给程序代码的程序语句。在一种备选的实施形式中,探测借助模拟环境实施,其中,模拟环境控制和监控总程序1的执行。另一种可能的实施形式规定目标控制器的处理器指令系的模拟,其用于探测。Hook函数的使用构成一种附加的按照本发明的实施形式,利用所述Hook函数可以实施探测。
在按照本发明的方法的一种可能的实施形式的第六步骤106中,在探测程序状态变化3之后进行检查:探测的程序状态变化3是否应该导致程序执行的中断。
在第六步骤106中的检查为肯定时,在按照本发明的方法的一种可能的实施形式的第七步骤107中,中断程序执行。
在第六步骤106中的检查为否定时,在按照本发明的方法的一种可能的实施形式的第八步骤108中,继续进行程序状态变化3的探测。
在本发明的一种实施形式中,在总程序1的执行中断之后显示源代码段,其中,所述源代码段配置给停止条件2的发生。
在另一种按照本发明的实施形式中,在程序执行中断时,修改在存储区中的变量的值或停止条件2并且随后继续进行总程序1的执行。
按照本发明的一种实施形式可以此外包括,在探测的事件之后将所述探测在表格式的图中按时间排序地存储,和/或第一变量12的值和/或第二变量的值和/或第一程序11的开始、执行或结束和/或第二程序21的开始、执行或结束在图形建模环境201中图形地显示。所述表格式的图在一种实施形式中在每个探测之后更新并且包含其他的属性、例如存储区的赋值。在这里例如存储和显示程序或程序块的开始和终止以及对存储区的值的读访问和写访问。
在一种实施形式中,可以在执行总程序1期间或在总程序1的执行中断期间将第一变量12的值和/或第二变量的值和/或第一程序11的开始、执行或结束和/或第二程序21的开始、执行或结束在图形建模环境201中显示。其可以这样形成,使得在出现程序状态变化3时例如程序启动或终止时,或对存储区访问或对其改变时,例如以颜色变换或动画的形式强调相应的模型元素。此外存储区的当前值可以在模型元素的附近以图形示出。
图3示出分级的树状结构的一种可能的实施形式,其中,分级的树状结构在该实施形式中具有七个节点,并且第一节点301代表总程序1,第二节点302代表第一程序11,第三节点303代表第一变量12,第四节点304代表第一存储区,第五节点305代表第二程序21,第六节点306代表第二变量并且第七节点307代表第一存储区。在一种实施形式中,这样规定停止条件2,使得在第一步骤中选择第二节点302,并且在第二步骤中进行选择和/或输入,其中,利用所述选择和/或输入来规定:在开始和/或结束第一程序11的执行时,应该中断程序执行。
Claims (13)
1.用于中断电子控制器的总程序(1)的执行的方法,
其中,总程序(1)具有:
包括第一变量(12)的第一程序(11),其中,第一程序(11)将第一变量(12)的第一值(13)存储到存储器的第一存储区(14)中,以及
包括第二变量(22)的第二程序(21),其中,第二程序(21)从存储器的第一存储区(14)中读取第一变量(12)的第一值(13),以便在第一程序(11)和第二程序(21)之间建立关联,
其中,形成图形建模环境(201),并且图形建模环境(201)具有图形模型元素,其中,在图形建模环境(201)中,第一程序(11)通过第一模型元素(202)代表,并且第二程序(21)通过第二模型元素(203)代表,并且在第一程序和第二程序之间的关联通过第三模型元素(205)代表
其特征在于,
借助图形建模环境(201)规定停止条件(2),其中,借助停止条件(2)确定导致总程序(1)的执行的中断的程序状态变化(3),
执行总程序(1),
在总程序(1)执行期间探测程序状态变化(3)并且将如下情况视为程序状态变化(3):
开始和/或结束第一程序(11)和/或第二程序(21)的执行,和/或
对第一存储区的第一值进行读访问和/或写访问,和/或
改变第一存储区的第一值,以及
如果发生在停止条件(2)中所规定的程序状态变化(3),则中断总程序(1)的执行。
2.按照权利要求1所述的方法,其中,规定停止条件(2),使得:
在第一步骤中选择第一模型元素(202)和/或第二模型元素(203),
在第二步骤中进行选择和/或输入,其中,利用所述选择和/或输入来规定:
在开始和/或结束第一程序(11)的执行时,和/或
在开始和/或结束第二程序(21)的执行时
中断程序执行,并且
在开始和/或结束第一程序(11)的执行时和/或在开始和/或结束第二程序(21)的执行时,中断总程序(1)的执行。
3.按照权利要求1所述的方法,其中,规定停止条件(2),使得:
在第一步骤中选择第三模型元素(205),
在第二步骤中进行选择和/或输入,其中,利用所述选择和/或输入来规定:
在对第一存储区的第一值进行读访问和/或写访问时,和/或
在第一存储区的第一值改变时
中断程序执行,并且
在对第一存储区的第一值进行读访问和/或写访问时,和/或
在第一存储区的第一值改变时
中断总程序(1)的执行。
4.按照权利要求1所述的方法,其中,第一变量(12)通过图形的第四模型元素代表,并且规定停止条件(2),使得
在第一步骤中选择第四模型元素(204),
在第二步骤中进行选择和/或输入,其中,利用所述选择和/或输入来规定:
在对第一存储区的第一值进行读访问和/或写访问时,和/或
在第一存储区的第一值改变时
中断程序执行,并且
在对第一存储区的第一值进行读访问和/或写访问时,和/或
在第一存储区的第一值改变时
中断总程序(1)的执行。
5.按照权利要求1所述的方法,其中,图形建模环境(201)具有分级的树状结构,其中,分级的树状结构具有节点,并且所述节点代表
第一程序(11)和/或
第一变量(12)和/或
第一存储区(14),
其中,规定停止条件(2),使得:
在第一步骤中选择节点,
在第二步骤中进行选择和/或输入,其中,利用所述选择和/或输入来规定:
在开始和/或结束第一程序(11)的执行时,和/或
在对第一存储区的第一值进行读访问和/或写访问时,和/或
在第一存储区的第一值改变时
中断程序执行。
6.按照权利要求1所述的方法,其中,第一程序(11)具有子程序和/或函数,并且
开始和/或结束子程序的执行和/或开始和/或结束函数的执行被视为程序状态变化(3),并且
在开始和/或结束子程序的执行时,和/或
在开始和/或结束函数的执行时
中断总程序(1)的执行。
7.按照权利要求4所述的方法,其中,总程序(1)借助图形建模环境(201)按照AUTOSAR标准的规范来建模,并且
存在总程序(1)的程序代码和/或第一程序(11)的程序代码,其中,所述程序代码至少部分地满足AUTOSAR标准的规范,并且
第一模型元素(202)和/或第二模型元素(203)和/或第三模型元素(205)和/或第四模型元素(204)代表总程序(1)的程序代码的组成部分和/或第一程序(11)的程序代码的组成部分。
8.按照权利要求7所述的方法,其中,所述AUTOSAR标准定义RTE事件,并且所述RTE事件被视为程序状态变化(3),并且当发生RTE事件时,中断总程序(1)的执行。
9.按照权利要求7或8所述的方法,其中,设有源代码调试程序,并且总程序(1)的执行和程序状态变化(3)的探测借助源代码调试程序实施,使得借助停止条件(2)确定在源代码中的断点并且将所述断点传输给源代码调试程序。
10.按照权利要求7所述的方法,其中,总程序(1)的程序代码的所述组成部分和/或第一程序(11)的程序代码的所述组成部分占据在程序代码内的明确的位置,确定所述位置,
并且在所述位置之前和/或之后插入用于探测程序状态变化(3)和/或中断总程序(1)的执行的程序语句,
或者通过用于探测程序状态变化(3)和/或中断总程序(1)的执行的程序语句来代替程序代码的所述组成部分。
11.按照权利要求7所述的方法,其中,总程序(1)的程序代码的组成部分和/或第一程序(11)的程序代码的所述组成部分占据在程序代码内的明确的位置,确定所述位置,并且显示总程序(1)和/或所述第一程序的程序代码,其中,所述程序代码包含所述组成部分,并且在停止条件(2)中规定的程序状态变化(3)通过所述组成部分进行。
12.按照权利要求1所述的方法,其中,如果程序状态变化不导致程序执行的中断,则将程序状态变化(3)存储在按时间排序的数据库中。
13.按照权利要求1所述的方法,其中,进行对第一存储区中的第一变量(12)的第一值的修改,所述修改在中断总程序(1)的执行之后实施,在所述修改之后继续总程序(1)的执行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP14174029.0 | 2014-06-26 | ||
EP14174029.0A EP2960731A1 (de) | 2014-06-26 | 2014-06-26 | Verfahren zur Unterbrechung der Ausführung eines Gesamtprogramms eines elektronischen Steuergeräts |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105320597A CN105320597A (zh) | 2016-02-10 |
CN105320597B true CN105320597B (zh) | 2018-02-16 |
Family
ID=51136312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510319803.8A Active CN105320597B (zh) | 2014-06-26 | 2015-06-11 | 用于中断电子控制器的总程序的执行的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20150378754A1 (zh) |
EP (1) | EP2960731A1 (zh) |
CN (1) | CN105320597B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458726A (zh) * | 2007-12-13 | 2009-06-17 | 鸿富锦精密工业(深圳)有限公司 | 线切割程序生成系统及方法 |
CN101782894A (zh) * | 2009-01-20 | 2010-07-21 | 索尼公司 | 算术程序转换装置、算术程序转换方法及程序 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5485620A (en) * | 1994-02-25 | 1996-01-16 | Automation System And Products, Inc. | Integrated control system for industrial automation applications |
US6044305A (en) * | 1996-10-04 | 2000-03-28 | Fisher Controls International, Inc. | Method and apparatus for debugging and tuning a process control network having distributed control functions |
US6412106B1 (en) * | 1999-06-16 | 2002-06-25 | Intervoice Limited Partnership | Graphical system and method for debugging computer programs |
JP3803019B2 (ja) * | 2000-08-21 | 2006-08-02 | 富士通株式会社 | 制御プログラム開発支援装置 |
US20040031019A1 (en) * | 2002-05-20 | 2004-02-12 | Richard Lamanna | Debugger for a graphical programming environment |
EP2612206A1 (en) * | 2010-08-31 | 2013-07-10 | ABB Technology AG | Method for debugging of process or manufacturing plant solutions comprising multiple sub-systems |
-
2014
- 2014-06-26 EP EP14174029.0A patent/EP2960731A1/de not_active Withdrawn
-
2015
- 2015-06-11 CN CN201510319803.8A patent/CN105320597B/zh active Active
- 2015-06-25 US US14/750,122 patent/US20150378754A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458726A (zh) * | 2007-12-13 | 2009-06-17 | 鸿富锦精密工业(深圳)有限公司 | 线切割程序生成系统及方法 |
CN101782894A (zh) * | 2009-01-20 | 2010-07-21 | 索尼公司 | 算术程序转换装置、算术程序转换方法及程序 |
Also Published As
Publication number | Publication date |
---|---|
US20150378754A1 (en) | 2015-12-31 |
CN105320597A (zh) | 2016-02-10 |
EP2960731A1 (de) | 2015-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6385765B1 (en) | Specification and verification for concurrent systems with graphical and textual editors | |
US8943423B2 (en) | User interface indicators for changed user interface elements | |
US9535821B1 (en) | Displaying violated coding rules in source code | |
US20190163446A1 (en) | Systems and methods for evaluating compliance of implementation code with a software architecture specification | |
EP1906275B1 (en) | Natively retaining project documentation in a controller | |
Silva et al. | Model-based user interface testing with spec explorer and concurtasktrees | |
Morgado et al. | Dynamic reverse engineering of graphical user interfaces | |
US20140214396A1 (en) | Specification properties creation for a visual model of a system | |
EP2141587A1 (en) | Method and system for generating of a control flow graph for representing a program code | |
Arcaini et al. | The ASMETA approach to safety assurance of software systems | |
JP2021501953A (ja) | エンジンデバッグ、テスト、較正、及び調節を制御するためのソフトウェア環境 | |
KR20210061446A (ko) | 안전 관련 데이터 스트림 검출 방법 | |
JP2015088188A (ja) | 制御装置の制御プログラムに影響を与えるための方法 | |
Bombieri et al. | Functional qualification of TLM verification | |
KR101701800B1 (ko) | 차량 전장용 제어 소프트웨어를 위한 타스크 작동순서 가시화 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
CN105320597B (zh) | 用于中断电子控制器的总程序的执行的方法 | |
Beringer et al. | Verification of AUTOSAR software architectures with timed automata | |
Brezočnik et al. | SpinRCP: the Eclipse rich client platform integrated development environment for the Spin model checker | |
Gerlitz et al. | Flow sensitive slicing for MATLAB/Simulink models | |
US9600245B2 (en) | Computer-implemented method for generating control unit program code and message management environment relating thereto | |
US9632912B1 (en) | Method and system for debugging a program | |
Greenyer et al. | Towards Automated Defect Analysis Using Execution Traces of Scenario-Based Models | |
Graf et al. | Gaining insight into executable models during runtime: Architecture and mappings | |
Hallerstede et al. | A Mechanized Semantics for Component-Based Systems in the HAMR AADL Runtime | |
Jaradat et al. | The role of architectural model checking in conducting preliminary safety assessment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: Paderborn, Germany Patentee after: Desbeth Co.,Ltd. Address before: Paderborn, Germany Patentee before: DSPACE DIGITAL SIGNAL PROCESSING AND CONTROL ENGINEERING GmbH |