CN109960627A - 电子控制设备及其操作方法与计算机可读记录介质 - Google Patents
电子控制设备及其操作方法与计算机可读记录介质 Download PDFInfo
- Publication number
- CN109960627A CN109960627A CN201810775717.1A CN201810775717A CN109960627A CN 109960627 A CN109960627 A CN 109960627A CN 201810775717 A CN201810775717 A CN 201810775717A CN 109960627 A CN109960627 A CN 109960627A
- Authority
- CN
- China
- Prior art keywords
- function
- depth
- usage amount
- program
- executing
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3013—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability or availability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
-
- 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
-
- 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/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及电子控制设备及其操作方法与计算机可读记录介质。用于执行包括多个函数的至少一个程序的电子控制设备的操作方法,包括:识别多个函数的函数调用深度;将探针代码***至中断服务例程(ISR)和具有最大函数调用深度的最大深度函数;当执行具有探针代码***至最大深度函数的最大深度函数时,计算存储区的使用量;以及当执行探针代码时,输出最大函数调用深度或多个函数的函数调用深度以及执行ISR时的使用量。
Description
相关申请的引证
本申请要求于2017年12月14日提交的韩国专利申请第10-2017-0172033号的权益,通过引证将其结合于此,如同完全记载在本文中一般。
技术领域
本公开涉及用于监控存储器和用于在电子控制设备中显示使用的方法和装置,并且更具体地,涉及用于监控在由车辆中包括的电子设备执行多个控制程序以及控制例程中所使用的存储器的使用并用于向用户显示该使用的装置和方法。
背景技术
用于为驾驶员或乘客提供便利性的车辆包括多个电子控制设备。与通过使用化石燃料的发动机开动的车辆相比,诸如混合动力车辆、电动车辆以及氢动力车辆等环境友好型车辆包括数量更多的电子控制设备。
车辆中包括的电子控制设备或又称作“ECU”可包括具有微处理器安装在其中的嵌入式***。该嵌入式***是指包括用于执行特定功能的硬件和软件的应用***,并且该嵌入式***可用在诸如电气组件控制、机器人控制以及车辆过程控制等领域。
因为用于环境友好型车辆的控制***使用发动机以外的电动机的驱动力来驱动,所以该***包括用于控制电动机、逆变器等的各种控制器(诸如电动机控制器等)以及用于控制车辆的各种电气组件的整体操作的混合控制单元(HCU),因此,当管理每个控制器的实时操作***(RTOS)而没有任何问题时,可保持车辆的整体驱动性能。
当程序在车辆的控制***中执行时,会分配执行程序所需要的存储器。为程序分配的存储器包括代码区(或文本区)、数据区、堆区(heap area)以及栈区(stack area)。栈区是由程序自动使用的临时存储区并且存储临时使用的并且随后消失的数据,诸如局部参数、参数以及返回值。在车辆行驶时,控制***需要实时响应于车辆驾驶环境、用户/驾驶员输入、操纵等等,来监控、控制以及管理车辆中的电子设备。例如,用于管理车辆的控制***的实时操作***(RTOS)可在存储器的栈区中使用。
在执行多个程序或多个函数的过程中,在为每个程序、每个函数以及每个参数分配的栈区中,程序、函数和参数使用对其所分配的所有区域,并且侵占未分配给其的区域存储其信息。该情况被称为栈溢出。栈溢出可引起诸如程序崩溃的问题,并且车辆控制***中的栈溢出会对驾驶安全产生不利影响。
发明内容
本公开的目的是提供一种用于确定由用户相对于车辆中的存储器使用量确定的存储器量是否超出由用户要求栈的存储器使用量或最大值时的阈值的方法和装置。
本公开的另一目的是提供一种用于测量存储器使用量并预测是否出现错误以防止超过车辆存储器使用量要求的情况的方法和装置。
因为车辆控制器中的程序的栈在响应于用户请求而执行的函数或中断被调用最多次数的点处达到最大值,本公开的另一目的是提供一种用于利用对应点处的探针代码,检查栈的实际使用量的方法和装置。
本公开的另一目的是提供一种用于通过将探针代码***至由车辆控制***执行的函数和中断例程以计算每个函数的存储器使用量并且将探针代码***至具有最大调用深度的函数以确定最坏情形,来监控溢出是否出现并且防止存储器中的溢出的方法和装置。
本公开的另一目的是提供一种用于通过可视化并显示由车辆控制***执行的函数的执行路径或深度以及存储器的使用来易于维护、修理和管理车辆的方法和装置。
本发明的另外的优势、目的和特征将在以下描述中被部分阐述,并且对于本领域普通技术人员来说,部分在经下述分析之后将变得显而易见或可以从本公开的实践中了解到。可以通过在所写的说明书及其权利要求书以及附图中具体指出的结构实现和获得本公开的目的和其他优势。
为了实现这些目的和其他优势并且根据本公开的目的,根据本公开的示例性实施方式,一种用于执行包括多个函数的至少一个程序的电子控制设备的操作方法,该方法包括:识别多个函数的函数调用深度;将探针代码***至中断服务例程(ISR)和具有最大函数调用深度的最大深度函数;当执行具有探针代码***至最大深度函数的最大深度函数时,计算存储区的使用量;以及当执行探针代码时,输出最大函数调用深度或多个函数的函数调用深度以及执行ISR时的使用量。
探针代码可***至最大深度函数和ISR的开始和结束位置。
ISR可独立于程序而执行。
方法可进一步包括:比较响应于传输的函数调用深度而设置的使用量的阈值与传输的使用量;以及响应于比较结果执行自动防故障逻辑。
方法可进一步包括:显示用于执行自动防故障逻辑的原因和结果。
存储区可以是栈区。
计算使用量可包括:使用分配的栈区的开始和结束地址确定使用量的总量;使用从开始地址至当前地址的使用量确定当前使用量;以及确定当前使用量与总量的比率。
方法可进一步包括:显示函数调用深度、使用量以及可视化信息。
根据本公开的另一示例性实施方式,应用程序可记录在非暂时性计算机可读记录介质中,用于通过处理器执行程序来执行方法。
根据本公开的另一示例性实施方式,非暂时性计算机可读记录介质可具有记录在其上的用于通过处理器执行程序来执行方法的应用程序。
根据本公开的另一示例性实施方式,一种用于执行包括多个函数的至少一个程序的电子控制设备,包括:至少一个第一存储设备,被配置为存储至少一个程序;至少一个处理器,被配置为执行至少一个程序;以及第二存储设备,被配置为存储在执行存储在第一存储设备中的至少一个程序的程序中生成或需要的数据或值,其中,该至少一个处理器:识别通过程序执行的函数的函数调用深度;执行将探针代码***至中断服务例程(ISR)和具有最大函数调用深度的最大深度函数;当执行具有探针代码***至最大深度函数的最大深度函数时,计算第二存储设备中的存储区的使用量;以及当执行探针代码时,输出最大函数调用深度或多个函数的函数调用深度以及执行ISR时的使用量。
探针代码可***至最大深度函数和ISR的开始和结束位置。
ISR可独立于程序而执行。
该至少一个处理器可比较响应于传输的函数调用深度设置的使用量的阈值与传输的使用量;以及响应于比较结果执行自动防故障逻辑。
电子控制设备可进一步包括:显示设备,被配置为显示用于执行自动防故障逻辑的原因和结果或者显示函数调用深度、使用量以及可视化信息。
存储区可以是栈区。
当由程序执行的函数可由处理器调用时,可生成栈区,并且当函数终止时,回收栈区。
该至少一个处理器可使用分配的栈区的开始和结束地址确定使用量的总量;使用从开始地址至当前地址的使用量确定当前使用量;以及确定当前使用量与总量的比率。
电子控制设备可进一步包括:发送器,被配置为通过无线通信网络发送最大深度函数和中断服务例程(ISR)的函数标识符、函数调用深度、使用量以及可视化信息;以及以太网端口,被配置为发送最大深度函数和中断服务例程(ISR)的函数标识符、函数调用深度、使用量以及可视化信息。
第二存储设备可进一步包括用于存储全局、静态、阵列或结构的数据区以及根据需要动态分配的堆区,并且函数调用深度可通过深度优先搜索(DFS)算法识别。
应理解,本公开的以上总体描述和以下详细描述都是示例性和说明性的,并且旨在提供对所要求保护的本发明的进一步说明。
附图说明
为了提供对本发明的进一步理解而所包括的并且结合在本申请中并构成本申请的一部分的附图,示出了本发明的(多个)实施方式,并且与说明书一起用于说明本发明的原理。在图中:
图1是用于说明根据本公开的示例性实施方式的包括在车辆中的控制***与车辆诊断设备之间的连接的示图;
图2A和图2B是用于说明根据本公开的示例性实施方式的车辆中的连接至车辆控制***的设备的示图;
图3A和图3B是示出根据本公开的示例性实施方式的控制***的程序结构的示图;
图4示出根据本公开的示例性实施方式的控制***中的存储器的结构;
图5示出根据本公开的示例性实施方式的控制***的操作方法的第一实例;
图6示出根据本公开的示例性实施方式的控制***的程序的探针代码***至的位置的第一实例;
图7示出根据本公开的示例性实施方式的控制***的程序的探针代码***至的位置的第二实例;
图8示出根据本公开的示例性实施方式的确定包括在车辆控制***的程序中的函数的函数调用深度的方法的实例;
图9示出根据本公开的示例性实施方式的控制***中的程序的函数超过存储器的推荐使用量的情况;
图10示出根据本公开的示例性实施方式的控制***的程序中的函数超过存储器使用量的情况,通过该情况来预计溢出;
图11示出根据本公开的示例性实施方式的控制***的操作方法的第二实例;以及
图12示出根据本公开的示例性实施方式的控制***的配置。
具体实施方式
现在将详细参考本公开的优选实施方式,在附图中示出了本公开的优选实施方式的实例。此外,本文的元件的后缀“模块”和“单元”是为了便于描述而使用,并且因此可以可互换地使用而不具有任何可区别的含义或功能。
在示例性实施方式的描述中,将理解的是,当元件被称为在另一元件之“上”或“下”时,该元件可直接在另一元件上,或者可存在中间元件。此外,当元件被称为在另一元件“上”或“下”时,这可包括基于一个组件的上行方向或下行方向的含义。
图1是用于说明车辆中所包括的控制***与车辆诊断设备之间的连接的示图。
车辆20可包括第一电气设备22和第二电气设备28。第二电气设备28可包括多个输入模块28_1至28_m,该多个输入模块用于收集提供和发送给用户、驾驶员或乘客的驾驶所需的信息、驾驶中所需的信息或者用于增强驾驶安全的信息。第一电气设备22可包括多个控制模块22_1至22_n,该多个控制模块用于响应于由控制***24根据在驾驶中检测到的与车辆20的驾驶环境、驾驶员操纵以及驾驶状态相关的信息而确定、识别和发送的命令,来控制车辆20。在此,m和n是等于或大于2的自然数。
在此,第一电气设备22和第二电气设备28可包括相同控制器或控制模块,或者包括不同控制器或控制模块。第一电气设备22和第二电气设备28中分别包括的多个电子控制模块22_1至22_n和多个输入模块28_1至28_m可通过车辆网络连接至彼此以发送和接收数据。控制***24可包括用于基于收集的信息,根据预设程序和函数执行计算以生成和处理新的信息的信息处理设备等以及诸如传感器和照相机等信息收集设备。
多个电子控制模块22_1至22_n和多个输入模块28_1至28_m可通过经由控制***24的下层网络结构,操作地连接至彼此。控制***24可包括用于使用协议在不同通信网络或不同网络之间进行通信的计算机或软件,可以是用作进入不同网络的入口的网络点,以及可连接至用作不同类型网络之间的路径的网关。
用于诊断车辆20中安装的多个电子控制模块22_1至22_n和多个输入模块28_1至28_m的车辆诊断设备30可连接至或者可操作地连接至车辆20。电子控制模块的车辆诊断设备30可诊断使用不同通信方法通过多个车辆网络而连接的多个控制器。电子控制模块的车辆诊断设备30可与车辆物理分离,但是可以以通过车辆中安装的端口可连接的终端的形式配置。在一些实施方式中,电子控制模块的车辆诊断设备30可以以网络服务器的形式配置,用于检查车辆中安装的多个电子控制模块22_1至22_n和多个输入模块28_1至28_m以及通过有线和无线通信网络收集数据。
可存在用于在诊断设备30与控制***24之间传输用于执行诊断处理和诊断过程的数据和收集数据结果的输入和输出设备26。输入和输出设备26可以是由人类或其他***用来与计算机通信的硬件设备。例如,输入和输出设备26可包括安装在车辆中的车载诊断(OBD)端口32。在此,车载诊断(OBD)可是指用于检查和控制车辆20的电子/电气工作状态的诊断标准。在初始阶段,OBD用于增加诸如发动机等电子组件的维护效率,但是除了该目的外,OBD可用作为用于向驾驶员显示各种车辆信息项的行程计算机(行车计算机)的接口。
车辆20可包括以太网端口34。当车辆网络仅包括控制器局域网(CAN)时,可不需要以太网端口34。然而,随着安装在车辆20中的多个电子控制模块22_1至22_n的数目增加以及由多个电子控制模块22_1至22_n和多个输入模块28_1至28_m发送和接收的数据量增加,除控制器局域网(CAN)以外,车辆网络可额外使用以太网通信。例如,控制器局域网(CAN)的最大传输带宽可以是1Mbps。当使用该速度时,如果车辆中的多个电子控制模块22_1至22_n和多个输入模块28_1至28_m的数目增加以及数据流量由于实时视频传输(例如,Topview监控)等而显著增加时,仅使用CAN通信配置网络车辆存在限制。CAN-FD的数据传输速率可在多点网络中高达2Mbit/s并且在点到点通信中高达5Mbit/s,并且在以太网的情况下,另提出1Gbps的数据传输速率。因此,在检查和控制车辆20的电子/电气工作状态的过程中,可通过以太网端口34连接车辆诊断设备30。
此外,安装在车辆20中的远程信息处理设备36可用作输入和输出设备26。远程信息处理设备36可以是用于使用位置信息和无线通信网络提供车辆集成多媒体服务的设备的实例,可向驾驶员提供安全驾驶、应急援救、交通指南服务等,并且可向乘客提供诸如互联网、电影、游戏和多媒体等信息娱乐服务。远程信息处理设备36可与用于诊断车辆中的设备的工作的网络服务操作地相关联,可传输用于检查车辆中所安装的多个电子控制模块22_1至22_n和多个输入模块28_1至28_m和收集数据的诊断消息,并且可将从安装在车辆中的多个电子控制模块22_1至22_n和多个输入模块28_1至28_m发送的数据发送至网络服务器。
车辆20中的网络可包括以太网通信、控制器局域网(CAN)通信、具有灵活数据速率的CAN(CAN-FD)、本地互联网(LIN)通信、面向媒体的***传输(MOST)通信等。在此,输入和输出设备26可包括OBD端口32、以太网端口34以及远程信息处理设备36中的至少一个。
车辆20可包括使用不同通信方法的多个控制器,并且因此,输入和输出设备26与至少一个车辆网关可以以不同方法进行连接。例如,以太网端口34和远程信息处理设备36中的至少一个可基于以太网通信方法连接至至少一个车辆网关。另一方面,作为输入和输出设备26的OBD端口32可基于CAN通信方法连接至至少一个车辆网关。
控制***24可以是用于控制车辆20的驾驶的诸如电子控制单元(ECU)等设备,并且可操作地连接至多个电子控制模块22_1至22_n和多个输入模块28_1至28_m以输入和输出数据和命令。控制***24可以是用于执行包括多个函数的至少一个程序的电子控制设备。控制***24可包括:至少一个第一存储设备,用于存储至少一个程序;至少一个处理器,用于执行至少一个程序;以及第二存储设备,用于存储在执行第一存储设备中所存储的至少一个程序的过程中生成或需要的数据或值。
图2A和图2B是用于说明车辆中的连接至车辆控制***的设备的示图。详细地,图2A和图2B示出了图1所示的操作地连接至控制***24的第一电气设备22和第二电气设备28中所包括的多个电子控制模块22_1至22_n和多个输入模块28_1至28_m的实例。例如,图2A示出了用于向电子控制单元(ECU)输入数据的设备或模块,并且图2B示出了由电子控制单元(ECU)控制的或者用于传输数据的设备或模块。
参考图2A,电子控制单元(ECU)可操作地连接至空调开关106、气流计108、电子设备开关110、动力转向压力开关112、油门传感器114、冷却剂热敏传感器(coolant thermossensor)116、氧气传感器118、进气传感器120、诊断连接器122、离合器开关124、制动灯开关126、点火开关128、电池130、分配器(distributor,配电盘)132、爆震传感器102、爆震传感器控制器104等。电子控制单元(ECU)可识别从每个设备发送的状态信息,以收集关于车辆状态和驾驶员操纵的信息。
参考图2B,基于所收集的信息,电子控制单元(ECU)可控制怠速控制器/致动器(ISC或ISA)阀152、涡轮增压器指示器154、超增压警报蜂鸣器134、断路继电器136、喷油嘴138、诊断连接器122、压力调节器控制电磁阀140、废气闸门阀142、净化控制电磁阀(purgecontrol solenoid value)144、燃料泵电阻器/继电器146、点火器148、空调继电器150等。
参考图1和图2,在一些实施方式中,控制***(图2A和图2B的ECU或者图1的24)可监控并控制车辆的大多数设备,诸如发动机、电动机、制动器和传动装置。控制***可体现为包括至少一个处理器和至少一个存储器的计算设备,并且可存储用于与以上参考图1、图2A和图2B所描述的车辆中的多个设备操作连接的至少一个程序。
图3A和图3B是示出控制***的程序结构的示图。控制***中所包括的至少一个程序可包括多个函数。在此,函数可被认为要被调用以执行特定操作(诸如,通过收集的信息生成特定信息和数据或者响应于输入信息和数据来控制车辆中的设备)的部分代码或程序单元。详细地,图3A示出在执行程序的过程中依次调用函数的情况,并且图3B示出在执行程序的过程中经由各种调用路径调用函数的情况。
如图3A所示,函数1、2、3和4可响应于车辆驾驶期间的驾驶环境或驾驶员操纵而被依次调用和执行。然而,车辆驾驶环境或驾驶员操纵是非常复杂的,因此,图3A所示的程序中的函数被依次调用并执行的情况是非普遍的。
参考图3B,程序中的函数1、2、3、4、5、6、7和8可响应于车辆驾驶环境或驾驶员操纵,以各种顺序在各种路径中进行调用。参考图1、图2A和图2B,操作地连接至控制***的设备和装置是非常复杂的,并且因此,用于控制这些设备和装置的函数也会非常复杂。
图4示出控制***中的存储器的结构。
如附图所示,控制***中的存储器可包括多个区,包括代码区、数据区、以符号开始的块(BSS)区、堆区以及栈区。
详细地,代码区可以是配置程序的代码的存储区,并且可存储包括机器语言代码、函数等的Hex(十六进制)文件或BIN(二进制)文件。数据区可以是用于存储全局、静态、阵列、结构等的初始化数据片段并且可存储初始化数据。未初始化变量可存储在以符号开始的块(BSS)区中。在此,代码区、数据区以及BSS区可在程序编译时确定。例如,在执行程序时,可生成数据区,并且在程序终止时,可回收数据区。
关于堆区和栈区,在运行时间执行程序时,可确定存储器被占据的区域的大小。堆区可以是定位为根据需要动态分配存储器的存储区,可被称为动态存储区,并且可以是仅通过存储器地址值引用和使用的区域。栈区可以是由程序使用的临时存储区并且可存储临时使用并且随后消失的数据,诸如局部参数、参数以及返回值。当调用函数时,可生成栈区,并且当函数终止时,栈区可回收至***。栈区的大小可分配至每个进程,但是当程序位于存储器上时栈大小是固定的,并且因此,栈大小不能够在运行时间内改变,并且当执行命令时栈大小自动增加/减小,并且因此,存储器的最后一个地址通常被确定为一位置并且从存储器的最后一部分前的一部分可被分配至函数。
由于存储器的栈区的以上特征,当执行函数时,分配至函数的存储器空间可溢出(例如,当程序试图使用调用栈中的可用空间或更多时),这可被称为栈溢出。当作为分配至函数的存储器位置的栈指针超过栈函数的边界时,也会出现溢出。
如参考图3B描述的,每个函数在执行一次之后可能不终止,而是在执行其他函数之后可重新执行。此外,当程序包括一种用于在程序中定义函数时采用了引用本身的方法的递归函数时,可能难以保证栈区中由对应函数所占据的范围。
图5示出控制***的操作方法的第一实例。
如以上参考图1至图4所述的,控制***可包括和执行包括操作地连接至车辆中所包括的设备和装置的多个函数的至少一个程序。控制***的操作方法可包括:识别多个函数的函数调用深度(S12);将探针代码***至中断服务例程(ISR)和具有最大函数调用深度的最大深度函数(S14);计算具有探针代码***至其中的最大深度函数执行时的存储区的使用量(S16);以及当执行探针代码时,输出最大深度函数的函数调用深度,或者函数调用深度以及执行中断服务例程(ISR)时的使用量(S18)。
在一些实施方式中,包括在程序中的探针代码可***至最大深度函数和中断服务例程(ISR)的开始和结束。在此,ISR可以是用于响应于通过中断接收而生成的中断来处理具体函数的机器语言代码例程,并且可与由控制***执行的程序独立执行。例如,在顺次、并行以及随意执行程序中的多个函数时,包括在具有最深函数调用深度的函数或任意执行的中断服务例程(ISR)中的探针代码可检查并输出存储器设备的使用。
如以上参考图4所述的,存储器中的栈区可用于在执行程序中的函数之后进行的过程中存储数据等,并且栈指针(位置)可连续改变。栈区的整个大小固定,并且因此,可使用栈指针的位置识别栈区的使用程度。
尽管未示出,但是控制***的操作方法可进一步包括:比较响应于传输的函数调用深度而设置的使用量的阈值与传输的使用量;以及响应于比较结果执行自动防故障逻辑。当检查栈区的使用量并且在程序执行期间使用量超过推荐或提议水平时,控制***可执行安全逻辑以防止栈溢出出现。例如,当程序中调用的函数的深度是5时,存储器使用量的阈值可预设为70%。当具有5的深度的函数被调用时,如果检查存储器使用量并且实际使用量超过70%,则由此可知,在程序执行过程中使用了比期望更多的栈区。
当在控制***的存储器中出现如同溢出的错误时,以上参考图1和图2描述的车辆中的设备和装置不能被顺利控制。在该情况下,油门阀可能不能被适当控制,并且因此,可出现诸如突然意外加速的错误。
在一些实施方式中,当实际使用量超过参考值而不是诸如90%和95%的相对值时,可执行自动防故障逻辑。即,当存储器使用量占据存储器总量的大部分时,程序要执行的函数的额外执行可停止并且可执行用于降低存储器使用量的例程,由此防止溢出出现。
尽管未示出,但是控制***的操作方法可进一步包括:在执行自动防故障逻辑时,显示自动防故障逻辑的原因和结果。在车辆驾驶员或车辆的维护、维修和管理以及自动防故障逻辑的情况下,可监控通过车辆中的控制***执行的过程是否被顺利执行。
在一些实施方式中,为了计算存储器中栈区的使用量,可使用分配的栈区的开始和最后地址来预先确定总量。然后,从存储器的结束(开始地址)直到作为栈指针的当前地址可被确定为当前使用量。然后,可确定当前使用量与总量的比率。
当存储器中栈区的当前使用量通过探针代码可识别时,可显示当前调用和执行的函数的函数调用深度、当前使用量、当前时间信息等。这些类型的信息可通过可视化(诸如,表和图)显示给用户(驾驶员或管理器)以发送控制***中存储器的实时使用情况。当能够反馈控制***中存储器的实时使用情况时,车辆制造商、控制***开发商等可更容易地识别安装在当前车辆中的控制***的难题和问题,并且可向车辆所有者和驾驶员提供经由诸如重新调用以及固件升级等方法增强的程序。
图6示出控制***的程序的***有探针代码的位置的第一实例。
如附图所示,程序40可包括多个函数42和44。此外,控制***可包括独立于程序40的多个ISR 46和50。
程序中的探针代码66可被包括在程序40中的具有最深函数调用深度的最大深度函数44的开始位置中。探针代码66也可被包括在多个ISR 46和50所包括的函数48和52的开始位置中。
通常,包括在控制***中的程序可经由多个模拟和调试操作完成,并且存储器中出现溢出的情况可能不频繁。将要为程序分配的存储器的量可增加以防止溢出。尽管如此,但是当出现溢出时,在执行在程序中调用的函数中具有最深调用深度的最大深度函数44的过程中,出现溢出的可能性非常高。因此,用于检测溢出的探针代码66可被包括在具有最深函数调用深度的最大深度函数44中。这可防止在探针代码包括在程序中的多个函数中的每一个中时的控制***的资源浪费。
当探针代码68和70被包括在多个ISR 46和50所包括的函数48和52的开始位置中时,无论何时执行ISR,都可有利监控控制***中的存储器的使用情况。
图7示出控制***的程序的***有探针代码的位置的第二实例。
如附图所示,程序40可包括多个函数42和44。此外,控制***可包括独立于程序40的多个ISR 46和50。在本实施方式中,探针代码54和56可布置在程序40的开始和结束位置处。探针代码58、60、62和64也可包括在多个ISR 46和50的开始和结束位置中。
在一些实施方式中,在控制***中执行的多个程序40可以是多进程的。每个程序可具有一个线程,但是根据环境,可执行用于同时执行两个或多个线程的多线程。当执行多进程或多线程时,与存储器使用相关的当前情况可通过包括在每个程序或每个线程的开始和结束位置中的探针代码识别。
参考图6和图7,检测存储器的使用情况的效率可根据探针代码***的位置而显著变化。因此,响应于控制***中包括的程序的运行来确定***探针代码的位置是必要的。另一方面,当程序代码布置在每个程序中调用的每个函数时,控制***的总体性能可降低。
图8示出确定在车辆控制***的程序中包括的函数的函数调用深度的方法的实例。在一些实施方式中,可应用确定函数调用深度的各种方法,但是为了确定与存储器的栈区的使用情况相关的函数调用深度,可采用深度优先搜索(DFS)算法。
如附图所示,可假定在程序中包括八个函数1、2、3、4、5、6、7和8的情况。此外,可假定沿着之间的线连接执行八个函数(根据函数中的条件)之间的移动或调用的情况。在移动至任意道路之后,只要道路未被访问,深度优先搜索(DFS)算法都可不加区别地确定函数调用深度。首先,可假定位置从最大深度函数1开始,移动至第二函数2,并且从第二函数进行顺次调用。
详细地,如附图所示,根据函数之间的访问顺序,以‘1->2->4->8->5->8->6->3->7’的顺序访问函数。首先,当前位置是函数1,并且函数2和3未被访问,并且因此,当前位置首先移动至函数2(①)。然后,当前位置是函数2,函数1已被访问,并且函数4和5未被访问,并且因此,位置首先移动至函数4(②)。然后,当前位置是函数4,函数2已被访问,并且函数8未为访问,并且因此位置移动至函数8(③)。然后,当前位置是函数8,函数4已被访问,并且函数5、6和7未被访问,并且因此位置首先移动至函数5(④)。然后,在位置移动至函数5之后,函数2和函数8已被访问,并且因此,不再存在待被访问的位置,位置返回至先前访问的位置。然后,当前位置是函数8,函数4和5已被访问,并且函数6和7未被访问,并且因此,位置首先移动至函数6(⑤)。然后,当前位置是函数6,函数8已被访问,并且函数3未被访问,并且因此位置移动至函数3(⑥)。然后,当前位置是函数3,函数1和6已被访问,并且函数7未被访问,并且因此位置移动至函数7(⑦)。然后,当前位置是函数7,函数3已被访问,并且函数8已被访问,并且因此位置不再移动(⑧)。上述深度优先搜索(DFS)算法可使用栈区,并且当从诸如树形图或曲线图的材料结构调用函数的调用深度时,可有用地使用该深度优先搜索算法。
图9示出控制***中的程序的函数超过存储器的推荐使用量的情况。详细地,以下描述通过探针代码检测存储器的使用情况并且确定是否超过程序中的要求的过程。
如附图所示,假定控制***执行参考图6和图7描述的程序40以及多个ISR 46和50。此外,程序40以及多个ISR 46和50被调用的顺序可假定为程序40、程序40中的函数42和函数44、中断服务例程ISR 46、ISR 46中的函数50、ISR 52以及ISR 52中的函数54的顺序。
存储器的栈区可根据调用顺序从结束位置至开始位置(地址的相反顺序)依次分配至每个程序、ISR以及函数。在此,执行程序的函数,并且因此,可假定使用89%的分配栈区。例如,可响应于参考图6描述的探针代码68检查栈区中的存储器使用量。在此,当执行对应函数48和ISR 46时,可假定需求小于70%(阈值)。在响应于调用对应函数48而分配栈区之后,在检查存储器使用区域的时间点时,通过探针代码68检查出存储器的栈区超过并使用阈值(75%)时,可在对应时间点处在当前分配位置(栈指针)处识别超出需求。
可显示该信息,并且因此,用户(驾驶员或管理者)可预测出控制***中使用或者要使用比预定使用量(例如,89%的通过执行程序的函数而分配的栈区被使用)更大的栈区量,并且可经由连续监控防止错误出现或者防止错误。
图10示出控制***的程序中的函数超过预计有溢出的存储器使用量的情况。图10可假设执行与图9基本相同的程序和中断服务例程(ISR)。然而,如图9所示,当用户识别存储器的栈区中的存储器使用情况超过预定阈值或者即使用户识别到时,假设程序和ISR连续执行而没有任何措施来连续增加存储器使用量。
可假定控制***连续执行程序和ISR,并且通过参考图6描述的探针代码70可知存储器中的栈区的当前使用量达到89%。尽管阈值是70%,但是使用量增至89%,并且因此,诸如溢出的错误出现的可能性可确定为非常高。在该情况下,估计最坏情形,可显示需要执行用于防止错误的过程或处理(诸如,自动防故障逻辑)的情况。
图11示出控制***的操作方法的第二实例。
如附图所示,探针代码可***至通过控制***执行的函数或ISR的开始位置(S72)并且可***至具有最大调用深度的函数(S76)。
可发送通过控制***执行的函数或ISR的执行信息(S74)。在该情况下,执行信息可包括函数或中断服务例程(ISR)的标识(ID)、在调用过程中存储器的栈区被分配至函数或ISR之后存储器处的位置信息(例如,栈指针)等。每当调用和执行函数或ISR时都发送执行信息,每当调用函数或ISR时,都可持续监控存储器中的栈区的使用量。
然后,可发送具有最大调用深度的函数是否被执行的信息(S78)。当执行具有最大调用深度的函数时,可增加存储器中栈区的使用量。
当调用和执行具有最大调用深度的函数时,可检查存储器中栈区的当前使用量(S80)。在该情况下,可通过栈区中的当前地址与栈区的开始地址(例如,存储器的最后地址)之间的差值(例如,绝对值)计算当前使用量。
所计算的当前使用量可与预定阈值(例如,存储器的需要量)比较以检查当前使用量是否大于阈值(S82)。当当前使用量小于阈值时,通过其执行当前执行的函数或ISR的路径可被可视化或显示(S88)。在该情况下,存储器中的栈区溢出的可能性会非常低。
当当前使用量大于阈值时,可确定当前使用量是否达到或超过执行最坏情形的程度(S84)。当存储器中栈区的使用量接近栈区的总量并且不需要降低时,通过其执行当前执行的函数或ISR的路径可被可视化(例如,表和图,参考图9和图10)并被显示(S88)。
然而,当当前使用量达到执行最坏情形的程度时,可通知执行最坏情形(例如,自动防故障逻辑)以相对于存储器中栈区的当前使用量来识别超出了存储器使用量并且防止诸如溢出的问题(S86)。
然后,相对于存储器中栈区的当前使用量,通过其执行当前执行的逻辑、函数或ISR的路径可被可视化并显示(S88)。
图12示出控制***的配置。在此,控制***可以是用于执行包括多个函数的至少一个程序的计算设备。
如附图所示,控制***可包括:至少一个第一存储设备92,用于存储至少一个程序;至少一个处理器94,用于执行至少一个程序;以及第二存储设备96,用于存储在执行第一存储设备92中所存储的至少一个程序的过程中生成或需要的数据或值。
在一些实施方式中,第一存储设备92可以是用于即使不提供电力也存储程序等的设备,并且第二存储设备96可以是用于在电力提供至控制***时存储由处理器94执行的程序生成的数据和信息的设备。
在一些实施方式中,第一存储设备92和第二存储设备96可体现为一个存储器设备或者可体现为多个物理上分离的存储器设备。
控制***90可以是通过车辆网络100的安装在车辆中的设备或诊断设备98。
通过程序执行的函数的函数调用深度可通过控制***90中的至少一个处理器94识别。处理器94可执行***至具有最大函数调用深度的最大深度函数以及中断服务例程(ISR)的探针代码,并且当执行具有***其中的探针代码的最大深度函数时,计算第二存储设备中的存储区的使用量。当执行探针代码时,处理器94可输出执行具有最大深度函数的函数调用深度或中断服务例程(ISR)时的函数调用深度以及当前使用量。
在一些实施方式中,探针代码可***至最大深度函数和中断服务例程(ISR)的开始和结束。在此,ISR可独立于程序而执行。
通过至少一个处理器94,响应于发送的函数调用深度而设置的使用量的阈值可与传输使用量比较。根据比较结果,至少一个处理器94可执行自动防故障逻辑。在此,至少一个处理器94可执行多处理器或多线程。
尽管未示出,但是车辆或诊断设备可进一步包括用于显示通过至少一个处理器94执行的自动防故障逻辑的原因和结果的或者显示函数调用深度、使用量以及可视化信息的显示设备。
在此,用于检测存储器使用量的区域可以是栈区。当通过程序执行的函数被至少一个处理器94调用时,栈区可分配至对应函数,并且当函数终止时,栈可回收至***。
通过至少一个处理器94,可使用分配的栈区的开始地址和结束地址确定总量,并且可从开始地址至当前地址确定当前使用量。然后,至少一个处理器94可确定当前使用量与总量的比率的使用量。
尽管未示出,但是车辆或控制***可进一步包括最大深度函数和中断服务例程(ISR)的函数标识符、函数调用深度、用于发送使用量和可视化信息的发送器以及用于发送最大深度函数和中断服务例程(ISR)的函数标识符、函数调用深度以及使用量和可视化信息的以太网端口。
如上所述,根据本公开的实施方式,可防止存储器使用量超过要求的错误。根据本公开的实施方式,可测量用于指示是否执行最坏情形的最坏条件的存储器使用量,由此防止控制***中出现的错误。此外,根据本公开的实施方式,通过可视化执行软件的路径,用于容易分析错误的原因的数据和材料可根据存储器需求提供。
根据上述实施方式的方法也可体现为计算机可读记录介质上的计算机可读代码。计算机可读记录介质的实例包括只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘、光学数据存储设备等。
计算机可读记录介质也可分布在网络耦合计算机***中,从而以分布式方式存储和执行该计算机可读代码。另外,用于完成本公开的功能程序、代码和代码片段可通过本公开所属领域的程序员轻易解释。
根据本公开的装置可具有以下效果。
本公开可防止出现车辆安全性方面的问题,诸如由于车辆控制***的故障而突然意外加速。
此外,本公开可通过车辆控制***对分配至程序的存储区执行程序来监控存储区的使用,以经由调试增强车辆控制***的程序。
本领域技术人员将理解,利用本公开实现的效果不限于上文具体描述的,并且从结合附图进行的以上详细说明,本公开的其他优势将更清晰理解。
对于本领域技术人员显然的是,在不背离本公开的精神或范围的情况下,能够对本公开做出各种修改和变形。因此如果本发明的修改和变化在附加权利要求及其等同物的范围内,则本发明旨在覆盖该修改和变化。
Claims (19)
1.一种用于执行包括多个函数的至少一个程序的电子控制设备的操作方法,所述方法包括以下步骤:
识别所述多个函数的函数调用深度;
将探针代码***到中断服务例程和/或具有最大函数调用深度的最大深度函数;
当具有被***到所述最大深度函数的所述探针代码的所述最大深度函数被执行时,计算存储区的使用量;以及
当执行所述探针代码时,输出所述最大深度函数的所述函数调用深度或执行所述中断服务例程时的所述函数调用深度以及所述使用量。
2.根据权利要求1所述的方法,其中,所述探针代码***到所述最大深度函数和所述中断服务例程的开始位置和结束位置。
3.根据权利要求1所述的方法,其中,所述中断服务例程与所述至少一个程序分开执行。
4.根据权利要求1所述的方法,进一步包括:
将响应于所输出的函数调用深度而设定的所述使用量的阈值与所输出的使用量进行比较;以及
响应于比较结果执行自动防故障逻辑。
5.根据权利要求4所述的方法,进一步包括:显示所述自动防故障逻辑的原因和结果。
6.根据权利要求1所述的方法,其中,所述存储区是栈区。
7.根据权利要求6所述的方法,其中,计算所述使用量的步骤包括:
使用分配的所述栈区的开始地址和结束地址确定所述使用量的总量;
使用从所述开始地址直到当前地址的所述使用量确定当前使用量;以及
确定所述当前使用量与所述总量的比率。
8.根据权利要求1所述的方法,进一步包括:显示所述多个函数的所述函数调用深度、所述使用量以及可视化信息。
9.一种非暂时性计算机可读记录介质,具有记录在其上的应用程序,所述应用程序用于通过由处理器执行程序来执行根据权利要求1所述的方法。
10.一种用于执行包括多个函数的至少一个程序的电子控制设备,所述电子控制设备包括:
至少一个第一存储设备,被配置为存储至少一个所述程序;
至少一个处理器,被配置为执行至少一个所述程序;以及
第二存储设备,被配置为存储在执行所述第一存储设备中所存储的至少一个所述程序的过程中生成或需要的数据或值,
其中,所述至少一个处理器:
识别通过所述程序执行的函数的函数调用深度;
执行***到中断服务例程和/或具有最大函数调用深度的最大深度函数的探针代码;
当具有***到所述最大深度函数的所述探针代码的所述最大深度函数被执行时,计算所述第二存储设备中的存储区的使用量;以及
当执行所述探针代码时,输出所述最大深度函数的所述函数调用深度或者执行所述中断服务例程时的所述函数调用深度以及所述使用量。
11.根据权利要求10所述的电子控制设备,其中,所述探针代码***至所述最大深度函数和所述中断服务例程的开始位置和结束位置。
12.根据权利要求10所述的电子控制设备,其中,所述中断服务例程独立于所述程序执行。
13.根据权利要求10所述的电子控制设备,其中,所述至少一个处理器将响应于所输出的函数调用深度而设定的所述使用量的阈值与所输出的使用量进行比较,并且响应于比较结果执行自动防故障逻辑。
14.根据权利要求13所述的电子控制设备,进一步包括显示设备,所述显示设备被配置为显示用于执行所述自动防故障逻辑的原因和结果或者显示所述函数调用深度、所述使用量以及可视化信息。
15.根据权利要求10所述的电子控制设备,其中,所述存储区是栈区。
16.根据权利要求15所述的电子控制设备,其中,当由所述程序执行的函数被所述处理器调用时,生成所述栈区,并且当所述函数终止时,回收所述栈区。
17.根据权利要求15所述的电子控制设备,其中,所述至少一个处理器使用分配的所述栈区的开始地址和结束地址确定所述使用量的总量,使用从所述开始地址直到当前地址的所述使用量确定当前使用量,以及确定所述当前使用量与所述总量的比率。
18.根据权利要求10所述的电子控制设备,进一步包括:
发送器,被配置为通过无线通信网络发送所述最大深度函数和所述中断服务例程的函数标识符、所述函数调用深度、所述使用量以及可视化信息;以及
以太网端口,被配置为发送所述最大深度函数和所述中断服务例程的函数标识符、所述函数调用深度、所述使用量以及可视化信息。
19.根据权利要求10所述的电子控制设备,其中,所述第二存储设备进一步包括:用于存储全局的、静态的阵列或结构的数据区以及根据需要进行动态分配的堆区;并且
其中,所述函数调用深度通过深度优先搜索算法来识别。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170172033A KR102435347B1 (ko) | 2017-12-14 | 2017-12-14 | 전자 제어 장치용 메모리 감시 및 사용 표시 방법 및 장치 |
KR10-2017-0172033 | 2017-12-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109960627A true CN109960627A (zh) | 2019-07-02 |
CN109960627B CN109960627B (zh) | 2023-10-20 |
Family
ID=66815135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810775717.1A Active CN109960627B (zh) | 2017-12-14 | 2018-07-16 | 电子控制设备及其操作方法与计算机可读记录介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10740204B2 (zh) |
KR (1) | KR102435347B1 (zh) |
CN (1) | CN109960627B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111464417A (zh) * | 2020-04-09 | 2020-07-28 | 东风汽车集团有限公司 | 基于千兆以太网总线的车载网络架构及通讯方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101067798A (zh) * | 2007-06-14 | 2007-11-07 | 华南理工大学 | 一种动态探针方法及其在嵌入式***中的应用 |
US20090055813A1 (en) * | 2007-08-21 | 2009-02-26 | Gad Haber | Method for Enabling Profile-Based Call Site Tailor-ing Using Profile Gathering of Cloned Functions |
US20110154300A1 (en) * | 2009-12-18 | 2011-06-23 | Microsoft Corporation | Debugging From A Call Graph |
US20120096441A1 (en) * | 2005-10-21 | 2012-04-19 | Gregory Edward Warwick Law | System and method for debugging of computer programs |
CN102486750A (zh) * | 2010-12-06 | 2012-06-06 | 现代自动车株式会社 | 用于车辆嵌入式软件的动态分析的设备 |
US20120324194A1 (en) * | 2011-06-14 | 2012-12-20 | International Business Machines Corporation | Adjusting the amount of memory allocated to a call stack |
US20130042223A1 (en) * | 2011-08-10 | 2013-02-14 | Nintendo Company Ltd. | Methods and/or systems for determining a series of return callstacks |
US20170255453A1 (en) * | 2016-03-07 | 2017-09-07 | Fujitsu Limited | Information processing device and method of displaying program execution state |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7458078B2 (en) * | 2003-11-06 | 2008-11-25 | International Business Machines Corporation | Apparatus and method for autonomic hardware assisted thread stack tracking |
US7711988B2 (en) * | 2005-06-15 | 2010-05-04 | The Board Of Trustees Of The University Of Illinois | Architecture support system and method for memory monitoring |
KR100846451B1 (ko) * | 2006-12-12 | 2008-07-16 | 한국전자통신연구원 | 멀티 쓰레드 기반 센서 운영체제 환경에서의 스택 할당방법 |
US20100131803A1 (en) * | 2008-11-25 | 2010-05-27 | Express Logic | Computation of stack usage in embedded computing systems |
KR20120126873A (ko) * | 2011-05-13 | 2012-11-21 | 현대자동차주식회사 | Uds 통신 기반의 자동차용 소프트웨어 동적 분석 장치 |
KR20130061449A (ko) | 2011-12-01 | 2013-06-11 | 대림산업 주식회사 | 콘크리트 강도 발현 촉진용 무기질 혼합재료, 및 이를 포함하는 조강형 해양콘크리트 |
KR101378058B1 (ko) * | 2012-03-30 | 2014-03-27 | 국방과학연구소 | 임베디드 시스템에서의 동적 메모리 관리방법 |
KR101470162B1 (ko) | 2013-05-30 | 2014-12-05 | 현대자동차주식회사 | 메모리 스택 사이즈 모니터링 방법 |
-
2017
- 2017-12-14 KR KR1020170172033A patent/KR102435347B1/ko active IP Right Grant
-
2018
- 2018-05-22 US US15/985,956 patent/US10740204B2/en active Active
- 2018-07-16 CN CN201810775717.1A patent/CN109960627B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120096441A1 (en) * | 2005-10-21 | 2012-04-19 | Gregory Edward Warwick Law | System and method for debugging of computer programs |
CN101067798A (zh) * | 2007-06-14 | 2007-11-07 | 华南理工大学 | 一种动态探针方法及其在嵌入式***中的应用 |
US20090055813A1 (en) * | 2007-08-21 | 2009-02-26 | Gad Haber | Method for Enabling Profile-Based Call Site Tailor-ing Using Profile Gathering of Cloned Functions |
US20110154300A1 (en) * | 2009-12-18 | 2011-06-23 | Microsoft Corporation | Debugging From A Call Graph |
CN102486750A (zh) * | 2010-12-06 | 2012-06-06 | 现代自动车株式会社 | 用于车辆嵌入式软件的动态分析的设备 |
US20120324194A1 (en) * | 2011-06-14 | 2012-12-20 | International Business Machines Corporation | Adjusting the amount of memory allocated to a call stack |
US20130042223A1 (en) * | 2011-08-10 | 2013-02-14 | Nintendo Company Ltd. | Methods and/or systems for determining a series of return callstacks |
US20170255453A1 (en) * | 2016-03-07 | 2017-09-07 | Fujitsu Limited | Information processing device and method of displaying program execution state |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111464417A (zh) * | 2020-04-09 | 2020-07-28 | 东风汽车集团有限公司 | 基于千兆以太网总线的车载网络架构及通讯方法 |
Also Published As
Publication number | Publication date |
---|---|
US10740204B2 (en) | 2020-08-11 |
US20190188104A1 (en) | 2019-06-20 |
CN109960627B (zh) | 2023-10-20 |
KR20190071208A (ko) | 2019-06-24 |
KR102435347B1 (ko) | 2022-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4155198B2 (ja) | 車両の制御システムの異常検知装置 | |
EP1722248B1 (en) | A relay test device and method | |
KR101558383B1 (ko) | 차량의 스마트 센서 또는 액추에이터의 고장 진단 방법 | |
JP4578289B2 (ja) | 機械制御装置、保守制御システム、及び、保守制御方法 | |
US20190180521A1 (en) | Vehicle maintenance operation | |
KR20190029186A (ko) | 엔진 오프 타임 모니터링용 타이머의 고장 진단 방법 | |
US20160217023A1 (en) | Monitoring unit, control system, and monitoring program | |
RU2593737C2 (ru) | Способ и система для диагностики рабочей функции кузова, относящейся к транспортным средствам | |
JP7037748B2 (ja) | 電子制御ユニット及び接続認証方法 | |
JP2008199253A (ja) | 異常診断システム及び診断情報管理装置 | |
EP1712424B1 (en) | Vehicle control apparatus | |
JP2007139478A (ja) | 車両診断装置及び車両診断システム | |
CN109960627A (zh) | 电子控制设备及其操作方法与计算机可读记录介质 | |
CN104793608A (zh) | 一种踏板部件自学习的方法 | |
JP2003099120A (ja) | システムの機能性の監視方法,その監視装置,メモリ素子,コンピュータプログラム | |
JP2022045711A (ja) | 処理装置、通信システム、及び処理装置用プログラム | |
JP2016055673A (ja) | 故障診断装置、および電子制御装置 | |
JP5223512B2 (ja) | 車両用異常解析システム、車両用異常解析方法、及び車両用故障解析装置 | |
CN113685259B (zh) | 一种发动机节温器故障判断方法、装置以及设备 | |
Palai | Vehicle level approach for optimization of on-board diagnostic strategies for fault management | |
CN114384887B (zh) | 一种排放诊断方法、装置与电子设备 | |
JP4747683B2 (ja) | 車載電子制御システム及びその故障診断方法、並びに車載電子制御装置 | |
JP6500650B2 (ja) | 車両診断装置、車両診断方法 | |
WO2017104832A1 (ja) | アイドルストップ制御装置、及び故障診断システム | |
CN102981494A (zh) | 一种电动汽车mcu健康状态监测诊断方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |