DE102020129562A1 - Test device and method and storage medium for operating a processor system - Google Patents

Test device and method and storage medium for operating a processor system Download PDF

Info

Publication number
DE102020129562A1
DE102020129562A1 DE102020129562.6A DE102020129562A DE102020129562A1 DE 102020129562 A1 DE102020129562 A1 DE 102020129562A1 DE 102020129562 A DE102020129562 A DE 102020129562A DE 102020129562 A1 DE102020129562 A1 DE 102020129562A1
Authority
DE
Germany
Prior art keywords
virtual platform
virtual
user space
space environment
program
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.)
Pending
Application number
DE102020129562.6A
Other languages
German (de)
Inventor
Lukas Jünger
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Audi AG
Original Assignee
Audi AG
Rheinisch Westlische Technische Hochschuke RWTH
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Audi AG, Rheinisch Westlische Technische Hochschuke RWTH filed Critical Audi AG
Priority to DE102020129562.6A priority Critical patent/DE102020129562A1/en
Publication of DE102020129562A1 publication Critical patent/DE102020129562A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable

Abstract

Die Erfindung betrifft eine Testvorrichtung (10) mit einem Prozessorsystem (12) sowie ein Speichermedium und ein Verfahren zum Betreiben des Prozessorsystems (12), wobei in dem Prozessorsystem (12) eine Userspaceumgebung (16) bereitgestellt wird, in der zumindest eine virtuelle Plattform (20) betrieben wird, wobei ein in der Userspaceumgebung (16), aber außerhalb der virtuellen Plattform (20) ausgeführtes Applikationsprogramm (18) Systemaufrufe (26) erzeugt, die eine von einem Betriebssystem (14) bereitgestellte Funktionalität durchführen können. Erfindungsgemäß wird ein durch das Applikationsprogramm (18) in der Userspaceumgebung (16) erzeugter Systemaufruf (26) in die virtuelle Plattform (20) umgeleitet und die durch diesen Systemaufruf (26) durchgeführte Funktionalität wird von einem virtuellen Betriebssystem (24) der virtuellen Plattform (20) bereitgestellt.

Figure DE102020129562A1_0000
The invention relates to a test device (10) with a processor system (12) and a storage medium and a method for operating the processor system (12), a user space environment (16) being provided in the processor system (12) in which at least one virtual platform ( 20) is operated, an application program (18) running in the user space environment (16) but outside the virtual platform (20) generating system calls (26) which can perform a functionality provided by an operating system (14). According to the invention, a system call (26) generated by the application program (18) in the user space environment (16) is redirected to the virtual platform (20) and the functionality performed by this system call (26) is carried out by a virtual operating system (24) of the virtual platform ( 20) provided.
Figure DE102020129562A1_0000

Description

Die Erfindung betrifft ein Verfahren zum Betreiben eines Prozessorsystems. Dabei wird in dem Prozessorsystem eine Userspaceumgebung bereitgestellt, in der zumindest eine virtuelle Plattform als Userspace-Software betrieben wird. Ein in der Userspaceumgebung, aber außerhalb der virtuellen Plattform ausgeführtes weiteres Applikationsprogramm erzeugt Systemaufrufe, die die Durchführung einer von einem Betriebssystem bereitgestellten Funktionalität auslösen. Zu der Erfindung gehören auch eine Testvorrichtung zum Durchführen des Verfahrens und ein Speichermedium mit Programmcodes zum Betreiben der Testvorrichtung.The invention relates to a method for operating a processor system. In this case, a user space environment is provided in the processor system, in which at least one virtual platform is operated as user space software. A further application program executed in the user space environment but outside the virtual platform generates system calls which trigger the execution of a functionality provided by an operating system. The invention also includes a test device for carrying out the method and a storage medium with program codes for operating the test device.

Zur Verifikation von Software für eingebettete Systeme, wie insbesondere Steuergeräte eines Kraftfahrzeugs, können Software-Simulationen des eingebetteten Systems auf der Grundlage von virtuellen Plattformen eingesetzt werden. Eine virtuelle Plattform kann dabei ein Gesamtsystemsimulator des Steuergeräts sein, der ein Steuergeräte-Prozessorsystem mit Betriebssystem und Gerätetreibern mittels einer virtuellen Maschine virtualisiert nachbildet und einen Fahrzeugbetrieb simuliert, um neue Software, insbesondere ein Applikationsprogramm für ein solches Steuergerät, testen zu können. Die virtuelle Plattform kann in der Userspaceumgebung eines anderen Prozessorsystems betrieben werden, einem sogenannten Simulationshost. Der Simulationshost kann eine andere Prozessorarchitektur aufweisen als das Steuergeräte-Prozessorsystem. Zum Beispiel kann das geplante eingebettete Ziel-Prozessorsystem des Steuergeräts ARMv8-basiert sein, während der Simulationshost in der Regel x86-64 basiert ist.Software simulations of the embedded system based on virtual platforms can be used to verify software for embedded systems, such as in particular control units of a motor vehicle. A virtual platform can be an overall system simulator of the control unit, which simulates a control unit processor system with operating system and device drivers using a virtual machine and simulates vehicle operation in order to be able to test new software, in particular an application program for such a control unit. The virtual platform can be operated in the user space environment of another processor system, a so-called simulation host. The simulation host can have a different processor architecture than the control unit processor system. For example, the planned embedded target controller processor system may be ARMv8-based, while the simulation host is typically x86-64 based.

Dies hat zur Folge, dass bisher ein Instruktionssatz-Simulator (ISS) eingesetzt werden muss, um die zu testende Zielsoftware auf dem Simulationshost ausführen zu können. Die Verwendung eines Instruktionssatz-Simulators ist jedoch mit signifikanten Performance-Einbußen verbunden, da die Instruktionen der Zielsoftware für den Simulationshost im Betrieb übersetzt werden müssen.The consequence of this is that previously an instruction set simulator (ISS) had to be used in order to be able to run the target software to be tested on the simulation host. However, the use of an instruction set simulator is associated with significant performance losses, since the instructions of the target software for the simulation host have to be translated during operation.

Aus der US 2016/0188451 A1 sind ein gattungsgemäßes Verfahren, ein Computerprogrammprodukt und eine Computervorrichtung zum Softwaretesten bekannt, wobei zumindest eine virtuelle Hardware-Komponente und eine Computervorrichtung bereitgestellt sind, die ein Verhalten einer Hardware-Komponente simulieren, die mit einer zu testenden Software assoziiert ist.From the US 2016/0188451 A1 a generic method, a computer program product and a computer device for software testing are known, wherein at least one virtual hardware component and a computer device are provided which simulate a behavior of a hardware component associated with a software to be tested.

Aus der US 2015/0339214 A1 ist ein Computersystem bekannt, das dazu ausgebildet ist, ein eingebettetes System, das einen Prozessor zur Ausführung von eingebetteter Software umfasst, zu simulieren.From the US 2015/0339214 A1 discloses a computer system configured to simulate an embedded system including a processor for executing embedded software.

Aus der DE 10 2016 115 314 A1 ist ein Verfahren zum Modifizieren und Simulieren einer Betriebssoftware eines technischen Systems bekannt. Hierbei wird die Betriebssoftware eines technischen Systems modifiziert, indem in der unmittelbar auf dem technischen System ausführbaren Betriebssoftware hardwareabhängige Softwareanteile nicht zur Ausführung kommen und stattdessen das funktionale Verhalten der hardwareabhängigen Softwareanteile durch Ersatzfunktionen nachgebildet wird. Die hardwareabhängigen Softwareanteile werden dazu automatisch identifiziert sowie die Ersatzfunktionen automatisch ermittelt oder erzeugt. Die derart modifizierte Betriebssoftware simuliert bei Ausführung auf einer geeigneten Simulationsumgebung das technische System unabhängig von dessen realer Hardware.From the DE 10 2016 115 314 A1 a method for modifying and simulating operating software of a technical system is known. In this case, the operating software of a technical system is modified in that hardware-dependent software components are not executed in the operating software that can be executed directly on the technical system and instead the functional behavior of the hardware-dependent software components is simulated using replacement functions. For this purpose, the hardware-dependent software parts are automatically identified and the replacement functions are automatically determined or generated. When executed in a suitable simulation environment, the operating software modified in this way simulates the technical system independently of its real hardware.

Der Erfindung liegt die Aufgabe zugrunde, eine Leistungsfähigkeit einer Testvorrichtung zur Entwicklung eines Steuergeräts für ein Kraftfahrzeug oder allgemein zur Entwicklung eines Prozessorsystems zu verbessern.The object of the invention is to improve the performance of a test device for developing a control device for a motor vehicle or generally for developing a processor system.

Die Aufgabe wird durch die Gegenstände der unabhängigen Patentansprüche gelöst. Vorteilhafte Ausführungsformen der Erfindung sind durch die abhängigen Patentansprüche, die folgende Beschreibung sowie die Figuren offenbart.The object is solved by the subject matter of the independent patent claims. Advantageous embodiments of the invention are disclosed by the dependent patent claims, the following description and the figures.

Durch die Erfindung wird ein Verfahren zum Betreiben eines Prozessorsystems bereitgestellt, wobei in dem Prozessorsystem eine Userspaceumgebung bereitgestellt wird, in der zumindest eine virtuelle Plattform betrieben wird, wobei ein in der Userspaceumgebung ausgeführtes Applikationsprogramm Systemaufrufe erzeugt, die eine von einem Betriebssystem bereitgestellte Funktionalität anfordern oder durchführen. Das heißt, Ausgangspunkt der Erfindung ist ein Prozessorsystem, beispielsweise ein Hostcomputer oder Simulationshost, der eine Userspaceumgebung aufweist. Mit Userspaceumgebung, beziehungsweise Userspace oder Benutzerumgebung, ist ein Benutzeradressraum gemeint, der Speicherbereiche des Prozessorsystems von einem Betriebssystemkern (Kernel) abgrenzt. In dieser Userspaceumgebung können eine virtuelle Plattform, die ein Gesamtsystem eines Steuergeräts nachbilden kann, und ein Applikationsprogramm ausgeführt werden. Das Applikationsprogramm kann beispielsweise ein Teil einer zu testenden Software sein, wobei das Applikationsprogramm Systemaufrufe (system call) erzeugen kann, um vom Betriebssystem bereitgestellte Funktionalitäten auszuführen. Mittels des Systemaufrufs wird dabei eine Kontrolle von dem Applikationsprogramm an den Betriebssystemkern abgegeben, damit dieser die durch den Systemaufruf bereitgestellte Funktionalität durchführt.The invention provides a method for operating a processor system, with a user space environment being provided in the processor system, in which at least one virtual platform is operated, with an application program running in the user space environment generating system calls that request or carry out a functionality provided by an operating system . This means that the starting point of the invention is a processor system, for example a host computer or simulation host, which has a user space environment. User space environment, or user space or user environment, means a user address space that delimits memory areas of the processor system from an operating system core (kernel). A virtual platform, which can simulate an overall system of a control device, and an application program can be executed in this user space environment. The application program can, for example, be part of software to be tested, with the application program being able to generate system calls in order to execute functionalities provided by the operating system. By means of the system call, control is given by the application program to the operating system kernel, so that the performs functionality provided by the system call.

Erfindungsgemäß wird das Applikationsprogramm außerhalb der virtuellen Plattform ausgeführt, wobei zumindest ein durch das Applikationsprogramm in der Userspaceumgebung erzeugter Systemaufruf in die virtuelle Plattform umgeleitet wird und die durch diesen Systemaufruf durchgeführte Funktionalität von einem virtuellen Betriebssystem der virtuellen Plattform bereitgestellt wird. Mit anderen Worten kann, um die Menge der ausgeführten Software in der virtuellen Plattform zu reduzieren, das Applikationsprogramm direkt in der Userspaceumgebung des Prozessorsystems ausgeführt werden, also außerhalb der virtuellen Plattform. Die durch das Applikationsprogramm erzeugten Systemaufrufe können in die virtuelle Plattform umgeleitet werden, damit die Funktionalität des Systemaufrufs von dem virtuellen Betriebssystem in der virtuellen Plattform bereitgestellt werden kann. Somit wird aus Sicht des Applikationsprogramms also nicht mehr mit dem Betriebssystem des Prozessorsystems, also dem Simulationshost, kommuniziert, sondern mit dem virtuellen Betriebssystem in der virtuellen Plattform. Auf diese Weise können mit dem Applikationsprogramm auf dem Simulationshost Stimuli für eine zu testende Software in der virtuellen Plattform, beispielsweise für Gerätetreiber des Betriebssystems in der virtuellen Plattform, schnell erzeugt werden, da das Applikationsprogramm nun nicht mehr vom Instruktionssatz-Simulator in der virtuellen Plattform ausgeführt wird und die damit verbundenen Performance-Einbußen entfallen. Dazu basieren das Betriebssystem in der Userspaceumgebung und das virtuelle Betriebssystem in der virtuellen Plattform vorzugsweise auf einem gleichen Betriebssystemstandard, insbesondere auf einem „Portable Operating System Interface“ (POSIX). Das Umleiten der Systemaufrufe in die virtuelle Plattform kann vorzugsweise durch Überwachen der Prozesse des Applikationsprogramms durchgeführt werden, wobei die Prozesse nach System aufrufen gefiltert werden können. Anschließend können die so abgefangenen Systemaufrufe in die virtuelle Plattform umgeleitet werden, so dass diese durch das virtuelle Betriebssystem, insbesondere einen virtuellen Betriebssystemkern, ausgeführt werden. Somit ergibt sich durch die Erfindung der Vorteil, dass das durch die virtuelle Plattform nachgebildete Steuergerät schnell und mit hoher Effizienz getestet und verbessert werden kann.According to the invention, the application program is executed outside of the virtual platform, with at least one system call generated by the application program in the user space environment being redirected to the virtual platform and the functionality performed by this system call being provided by a virtual operating system of the virtual platform. In other words, in order to reduce the amount of software executed in the virtual platform, the application program can be executed directly in the user space environment of the processor system, ie outside the virtual platform. The system calls generated by the application program can be redirected into the virtual platform so that the functionality of the system call can be provided by the virtual operating system in the virtual platform. Thus, from the point of view of the application program, communication is no longer with the operating system of the processor system, ie the simulation host, but with the virtual operating system in the virtual platform. In this way, stimuli for software to be tested in the virtual platform, for example for device drivers of the operating system in the virtual platform, can be quickly generated with the application program on the simulation host, since the application program is no longer executed by the instruction set simulator in the virtual platform and the associated performance losses are eliminated. For this purpose, the operating system in the user space environment and the virtual operating system in the virtual platform are preferably based on the same operating system standard, in particular on a “Portable Operating System Interface” (POSIX). The redirection of the system calls into the virtual platform can preferably be carried out by monitoring the processes of the application program, where the processes can be filtered by system calls. The system calls intercepted in this way can then be redirected to the virtual platform so that they are executed by the virtual operating system, in particular a virtual operating system core. The advantage resulting from the invention is that the control unit simulated by the virtual platform can be tested and improved quickly and with high efficiency.

Somit muss lediglich Software auf der virtuellen Plattform selber laufen, die direkt mit der simulierten Hardware kommuniziert, wie das Betriebssystem mit den Gerätetreibern, ein Hypervisor oder sogenannte Trusted-Execution-Environments. Das Applikationsprogramm zum Testen der Software der virtuellen Plattform kann jedoch außerhalb der virtuellen Plattform betrieben werden, was zu einer Performance-Verbesserung führt.Thus, only software that communicates directly with the simulated hardware needs to run on the virtual platform itself, such as the operating system with the device drivers, a hypervisor or so-called Trusted Execution Environments. However, the application program for testing the software of the virtual platform can be operated outside of the virtual platform, which leads to an improvement in performance.

Zu der Erfindung gehören auch Ausführungsformen, durch die sich zusätzliche Vorteile ergeben.The invention also includes embodiments that result in additional advantages.

In einer Ausführungsform ist vorgesehen, dass ferner ein Ergebnis der von dem virtuellen Betriebssystem durchgeführten Funktionalität zurück zum Applikationsprogramm in die Userspaceumgebung übermittelt wird. Das bedeutet, dass einerseits der Systemaufruf von dem Applikationsprogramm in der Userspaceumgebung in die virtuelle Plattform umgeleitet wird und andererseits das Ergebnis der durchgeführten Funktionalität des Systemaufrufs aus der virtuellen Plattform zurück zu dem Applikationsprogramm gesendet wird. So kann das Applikationsprogramm unter Vortäuschung einer anderen Hardware betrieben werden, wodurch Software effizient getestet werden kann.In one embodiment it is provided that a result of the functionality performed by the virtual operating system is transmitted back to the application program in the user space environment. This means that on the one hand the system call is redirected from the application program in the user space environment to the virtual platform and on the other hand the result of the performed functionality of the system call is sent from the virtual platform back to the application program. In this way, the application program can be operated under the guise of other hardware, which means that software can be tested efficiently.

Besonders bevorzugt ist vorgesehen, dass in der virtuellen Plattform ein Server betrieben wird, der den Systemaufruf aus der Userspaceumgebung empfängt, wobei der Systemaufruf mittels eines Stub-Programms in einer virtuellen Userspaceumgebung der virtuellen Plattform auf einem Kernel des virtuellen Betriebssystems wiederholt wird und wobei das Ergebnis des Systemaufrufs von dem Stub-Programm zurück an den Server übergeben wird, der das Ergebnis zurück in die Userspaceumgebung überträgt. Mit anderen Worten kann in der virtuellen Plattform ein Server betrieben werden, an den der Systemaufruf gesendet werden kann, insbesondere über Interprozesskommunikation wie beispielsweise einen Unix Domain Socket. Somit kann der Systemaufruf in die virtuelle Plattform gelangen, in der ein Stub-Programm, das in einer virtuellen Userspaceumgebung der virtuellen Plattform betrieben wird, den Systemaufruf auf dem Betriebssystemkern des virtuellen Betriebssystems zur Ausführung wiederholt. Anschließend kann das Ergebnis von dem Server wieder zurück in die Userspaceumgebung des Applikationsprogramms übertragen werden. Ein Stub-Programm kann ein einfacher und kurzer Programmcode sein, der dazu ausgebildet sein kann, den Systemaufruf zur Ausführung auf dem virtuellen Betriebssystem durchführen zu lassen und das Ergebnis der Funktionalität des virtuellen Betriebssystems zu erhalten, um dieses vom Server zurück in die Userspaceumgebung des Applikationsprogramms zu senden. Das heißt, das Stub-Programm kann in der virtuellen Plattform als Stellvertreter für das Applikationsprogramm dienen. Hierdurch ergibt sich der Vorteil, dass auf einfache Art und Weise der Systemaufruf in die virtuelle Plattform übertragen werden kann und eine Ausführung auf dem Kernel des virtuellen Betriebssystems erreicht wird.It is particularly preferred that a server is operated in the virtual platform, which receives the system call from the user space environment, the system call being repeated by means of a stub program in a virtual user space environment of the virtual platform on a kernel of the virtual operating system and the result being repeated of the system call is passed from the stub program back to the server, which transmits the result back into the userspace environment. In other words, a server can be operated in the virtual platform to which the system call can be sent, in particular via interprocess communication such as a Unix domain socket. The system call can thus get into the virtual platform, in which a stub program, which is operated in a virtual user space environment of the virtual platform, repeats the system call on the operating system kernel of the virtual operating system for execution. The result can then be transferred back from the server to the user space environment of the application program. A stub program can be a simple and short program code that can be designed to execute the system call for execution on the virtual operating system and to obtain the result of the functionality of the virtual operating system in order to return it from the server to the user space environment of the application program to send. This means that the stub program can serve as a proxy for the application program in the virtual platform. This results in the advantage that the system call can be transferred to the virtual platform in a simple manner and execution on the kernel of the virtual operating system is achieved.

Vorzugsweise ist vorgesehen, dass das Stub-Programm in vorgegebenen Zeitabständen beim Server nach Vorhandensein des Systemaufrufs anfragt, wobei der Systemaufruf an das Stub-Programm zur Ausführung übertragen wird, falls festgestellt wird, dass der Systemaufruf im Server vorhanden ist. Beispielsweise können der Server und das Stub-Programm einen geteilten Speicher (shared memory) aufweisen, auf dem der Server den empfangenen Systemaufruf ablegt. Dieser geteilte Speicher kann durchgehend, insbesondere in vorgegebenen Zeitabständen, von dem Stub-Programm nach neuen Systemaufrufen durchsucht werden, wobei, falls ein neuer Systemaufruf im geteilten Speicher gefunden wird, kann der Systemaufruf vom Stub-Programm zur Durchführung der Funktionalität des virtuellen Betriebssystems verwendet werden. Anschließend kann in umgekehrter Richtung das Ergebnis wieder zurück über den geteilten Speicher vom Server in die Userspaceumgebung übertragen werden. Somit kann eine effiziente Testvorrichtung zum Testen von Software bereitgestellt werden.Provision is preferably made for the stub program to query the server at predetermined time intervals for the presence of the system call, with the system call being transferred to the stub program for execution if it is determined that the system call is present in the server. For example, the server and the stub program may have shared memory where the server places the received system call. This shared memory can be continuously, especially at predetermined time intervals, searched by the stub program for new system calls, and if a new system call is found in shared memory, the system call can be used by the stub program to perform the functionality of the virtual operating system . Then, in the opposite direction, the result can be transferred back from the server to the user space environment via the shared memory. An efficient test device for testing software can thus be provided.

Eine weitere Ausführungsform sieht vor, dass die Systemaufrufe des Applikationsprogramms in der Userspaceumgebung von einem Prozessverfolgungsprogramm abgefangen werden. Das Prozessverfolgungsprogramm kann beispielsweise die Ausführung des Applikationsprogramms beobachten und seinen Speicher sowie Register untersuchen und/oder ändern. Wird das Applikationsprogramm vom Prozessverfolgungsprogramm verfolgt, kann jeder Systemaufruf erkannt und nach der Erzeugung zunächst gestoppt werden. Dieser gestoppte Systemaufruf kann dann kopiert werden, um ihn als Nachricht in die virtuelle Plattform zu senden. Beispielsweise kann das Prozessverfolgungsprogramm in einer Unix-Umgebung unter Verwendung eines Process Trace System Calls (ptrace) umgesetzt werden. Hierdurch ergibt sich der Vorteil, dass die Systemaufrufe effizient abgefangen und anschließend in die virtuelle Plattform umgeleitet werden können.A further embodiment provides that the system calls of the application program in the user space environment are intercepted by a process tracking program. The process tracking program can, for example, observe the execution of the application program and examine and/or change its memory and registers. If the application program is tracked by the process tracking program, each system call can be recognized and initially stopped after it has been generated. This stopped syscall can then be copied to send as a message into the virtual platform. For example, the process tracer can be implemented in a Unix environment using a Process Trace System Call (ptrace). This has the advantage that the system calls can be efficiently intercepted and then redirected to the virtual platform.

Besonders bevorzugt ist vorgesehen, dass die vom Prozessverfolgungsprogramm abgefangenen Systemaufrufe auf Vorliegen einer vorgegebenen Bedingung geprüft werden, wobei die abgefangenen Systemaufrufe nur dann in die virtuelle Plattform umgeleitet werden, falls die vorgegebene Bedingung vorliegt. Ansonsten können die abgefangenen Systemaufrufe zur Durchführung der Funktionalität an das Betriebssystem der Userspaceumgebung durchgelassen werden. Das bedeutet, dass nur Systemaufrufe, die beispielsweise in der virtuellen Plattform getestet werden sollen, durch die Bedingung vorgegeben werden können, wobei alle weiteren Systemaufrufe weiterhin durch das Betriebssystem des Prozessorsystems verarbeitet werden können. Somit kann eine Menge der Systemaufrufe, die in die virtuelle Plattform übertragen wird, reduziert werden und nur auf die zu testenden Systemaufrufe eingeschränkt werden. Hierdurch kann eine Effizienz des Verfahrens weiter verbessert werden.Provision is particularly preferably made for the system calls intercepted by the process tracking program to be checked for the presence of a specified condition, with the intercepted system calls only being redirected to the virtual platform if the specified condition is present. Otherwise, the intercepted system calls can be passed through to the operating system of the userspace environment to perform the functionality. This means that only system calls that are to be tested in the virtual platform, for example, can be specified by the condition, with all other system calls still being able to be processed by the operating system of the processor system. Thus, a set of system calls that is transferred to the virtual platform can be reduced and only restricted to the system calls to be tested. As a result, the efficiency of the method can be further improved.

Eine weitere Ausführungsform sieht vor, dass durch die virtuelle Plattform eine vom Prozessorsystem verschiedene Prozessorarchitektur nachgebildet wird. Beispielsweise kann das Prozessorsystem als eine Prozessorarchitektur eine x86-Architektur, die auch als AMD64, x64 oder x86-64 bezeichnet werden kann, aufweisen, also eine Mikroprozessorarchitektur und die damit verbundenen Befehlssätze die bei gängigen Herstellern für Personal Computern (PC) verwendet werden. Die virtuelle Plattform, die insbesondere ein Steuergerät eines Kraftfahrzeugs nachbilden kann, kann beispielsweise eine ARM-Architektur (ARM - Advanced RISC Machine) aufweisen, die im Bereich der eingebetteten Systeme oftmals verwendet wird. Ferner kann das Prozessorsystem weitere Prozessorarchitekturen umfassen, wie beispielsweise 32-Bit-Architekturen oder MIPS-Architekturen („Microprocessor without interlocked pipeline stages“), wobei diese Aufzählung nicht abschließend ist. Durch diese Ausführungsform ergibt sich der Vorteil, dass mittels des Verfahrens auf einem herkömmlichen Prozessorsystem ein Steuergerät virtuell nachgebildet werden kann, wodurch ein Testen kostengünstiger und effizienter durchgeführt werden kann.A further embodiment provides that a processor architecture different from the processor system is simulated by the virtual platform. For example, the processor system can have an x86 architecture as a processor architecture, which can also be referred to as AMD64, x64 or x86-64, ie a microprocessor architecture and the instruction sets associated therewith which are used by common manufacturers for personal computers (PC). The virtual platform, which in particular can simulate a control unit of a motor vehicle, can have, for example, an ARM architecture (ARM—Advanced RISC Machine) that is often used in the field of embedded systems. The processor system can also include other processor architectures, such as 32-bit architectures or MIPS architectures (“Microprocessor without Interlocked Pipeline Stages”), although this list is not exhaustive. This embodiment results in the advantage that a control unit can be simulated virtually on a conventional processor system by means of the method, as a result of which testing can be carried out more cost-effectively and efficiently.

In einer weiteren Ausführungsform ist vorgesehen, dass die virtuelle Plattform ein Steuergerät in einem Kraftfahrzeug oder einem Verbund von Steuergeräten in einem Kraftfahrzeug oder einen Teil des Kraftfahrzeugs nachbildet. Mit anderen Worten kann eine Entwicklung eines Applikationsprogramms für ein Steuergerät eines Kraftfahrzeugs unterstützt werden. Hierzu kann die virtuelle Plattform eine Wechselwirkung oder Interaktion mit zumindest einem Steuergerät in einem Kraftfahrzeug oder einem Verbund von Steuergeräten simulieren. Damit können Systemaufrufe des Applikationsprogramms in der virtuellen Plattform in derselben Weise betrieben werden, wie es sich in der Userspaceumgebung des Kraftfahrzeugs oder des Steuergeräts ergeben würde. Das simulierte Kraftfahrzeug ist bevorzugt als Kraftwagen, insbesondere als Personenkraftwagen oder Lastkraftwagen, oder als Personenbus oder Motorrad ausgestaltet.A further embodiment provides that the virtual platform simulates a control device in a motor vehicle or a network of control devices in a motor vehicle or a part of the motor vehicle. In other words, development of an application program for a control unit of a motor vehicle can be supported. For this purpose, the virtual platform can simulate an interaction or interaction with at least one control unit in a motor vehicle or a network of control units. In this way, system calls of the application program can be operated in the virtual platform in the same way as would result in the user space environment of the motor vehicle or the control device. The simulated motor vehicle is preferably designed as a motor vehicle, in particular as a passenger car or truck, or as a passenger bus or motorcycle.

Erfindungsgemäß ist auch eine Testvorrichtung mit einem Prozessorsystem bereitgestellt, wobei in der Testvorrichtung ein Programmcode dazu eingerichtet ist, zumindest eine virtuelle Plattform in dem Prozessorsystem zu betreiben und ein Verfahren nach einem der vorhergehenden Ausführungsformen durchzuführen. Ein solches Prozessorsystem kann beispielsweise auf einer ARM-Architektur oder eine x86-Architektur beruhen. Der Programmcode für das Prozessorsystem kann des Weiteren dazu eingerichtet sein, in dem Prozessorsystem oder in einem weiteren Prozessorsystem zusätzlich einen Simulator für eine simulierte Hardwareplattform zu betreiben. Somit steht auf dem Prozessorsystem ein Simulator bereit, welcher eine simulierte Hardwareplattform (virtuelle Plattform) nachbildet, die sich von der eigentlichen Hardwareplattform des Prozessorsystems der Testvorrichtung unterscheiden kann. Die simulierte Hardwareplattform kann in der beschriebenen Weise beispielsweise eine Fahrzeugsystemumgebung sein. Der Programmcode für die Testvorrichtung ist vorzugsweise dazu eingerichtet, eine Ausführungsform des erfindungsgemäßen Verfahrens durchzuführen. Somit steht mit der Testvorrichtung eine Möglichkeit bereit, ohne Kraftfahrzeug ein Applikationsprogramm, beispielsweise für ein Steuergerät eines Kraftfahrzeugs, zu entwickeln und/oder zu testen.According to the invention, a test device with a processor system is also provided, a program code being set up in the test device to operate at least one virtual platform in the processor system and to carry out a method according to one of the preceding embodiments. Such a processor system can be based on an ARM architecture or an x86 architecture, for example. the pro Furthermore, gram code for the processor system can be set up to additionally operate a simulator for a simulated hardware platform in the processor system or in a further processor system. A simulator is thus available on the processor system, which emulates a simulated hardware platform (virtual platform), which can differ from the actual hardware platform of the processor system of the test device. The simulated hardware platform can be a vehicle system environment, for example, in the manner described. The program code for the test device is preferably set up to carry out an embodiment of the method according to the invention. The test device thus offers the possibility of developing and/or testing an application program, for example for a control unit of a motor vehicle, without a motor vehicle.

Um ein Prozessorsystem dahingehend zu ertüchtigen, dass es als erfindungsgemäße Testvorrichtung betrieben werden kann, ist durch die Erfindung auch ein Speichermedium mit einem Programmcode bereitgestellt. Dieser Programmcode umfasst Programminstruktionen, die dazu eingerichtet sind, bei Ausführen in einer Ausführungsform der beschriebenen Testvorrichtung, insbesondere mit zumindest einem Prozessorsystem, eine Ausführungsform des erfindungsgemäßen Verfahrens durchzuführen. Ein solches Speichermedium kann beispielsweise eine DVD (Digital Versatile Disc - Optischer Datenspeicher) oder ein Flash-Speicher oder eine Festplatte oder ein Arbeitsspeicher (RAM) sein.In order to upgrade a processor system so that it can be operated as a test device according to the invention, a storage medium with a program code is also provided by the invention. This program code includes program instructions which are set up to carry out an embodiment of the method according to the invention when executed in an embodiment of the test device described, in particular with at least one processor system. Such a storage medium can be, for example, a DVD (Digital Versatile Disc—optical data memory) or a flash memory or a hard disk or a random access memory (RAM).

Zu der Erfindung gehört auch eine Steuervorrichtung für ein Kraftfahrzeug, wobei das Kraftfahrzeug bevorzugt als Kraftwagen, insbesondere als Personenkraftwagen oder Lastkraftwagen, oder als Personenbus oder Motorrad ausgestaltet ist. Die Steuervorrichtung kann eine Datenverarbeitungsvorrichtung oder eine Prozessoreinrichtung aufweisen, die dazu eingerichtet ist, eine Ausführungsform des erfindungsgemäßen Verfahrens durchzuführen. Die Prozessoreinrichtung kann hierzu zumindest einen Mikroprozessor und/oder zumindest einen Mikrocontroller und/oder zumindest einen FPGA (Field Programmable Gate Array) und/oder zumindest einen DSP (Digital Signal Processor) aufweisen. Des Weiteren kann die Prozessoreinrichtung Programmcode aufweisen, der dazu eingerichtet ist, bei Ausführen durch die Prozessoreinrichtung die Ausführungsform des erfindungsgemäßen Verfahrens durchzuführen. Der Programmcode kann in einem Datenspeicher der Prozessoreinrichtung gespeichert sein.The invention also includes a control device for a motor vehicle, the motor vehicle preferably being designed as a motor vehicle, in particular as a passenger car or truck, or as a passenger bus or motorcycle. The control device can have a data processing device or a processor device that is set up to carry out an embodiment of the method according to the invention. For this purpose, the processor device can have at least one microprocessor and/or at least one microcontroller and/or at least one FPGA (Field Programmable Gate Array) and/or at least one DSP (Digital Signal Processor). Furthermore, the processor device can have program code which is set up to carry out the embodiment of the method according to the invention when executed by the processor device. The program code can be stored in a data memory of the processor device.

Die Erfindung umfasst auch die Kombinationen der Merkmale der beschriebenen Ausführungsformen. Die Erfindung umfasst also auch Realisierungen, die jeweils eine Kombination der Merkmale mehrerer der beschriebenen Ausführungsformen aufweisen, sofern die Ausführungsformen nicht als sich gegenseitig ausschließend beschrieben wurden.The invention also includes the combinations of features of the described embodiments. The invention also includes implementations that each have a combination of the features of several of the described embodiments, unless the embodiments were described as mutually exclusive.

Im Folgenden sind Ausführungsbeispiele der Erfindung beschrieben. Hierzu zeigt:

  • 1 eine schematische Darstellung einer Testvorrichtung gemäß einer beispielhaften Ausführungsform;
  • 2 ein Verfahrensdiagramm einer beispielhaften Ausführungsform des Verfahrens.
Exemplary embodiments of the invention are described below. For this shows:
  • 1 a schematic representation of a test device according to an exemplary embodiment;
  • 2 a process diagram of an example embodiment of the process.

Bei den im Folgenden erläuterten Ausführungsbeispielen handelt es sich um bevorzugte Ausführungsformen der Erfindung. Bei den Ausführungsbeispielen stellen die beschriebenen Komponenten der Ausführungsformen jeweils einzelne, unabhängig voneinander zu betrachtende Merkmale der Erfindung dar, welche die Erfindung jeweils auch unabhängig voneinander weiterbilden. Daher soll die Offenbarung auch andere als die dargestellten Kombinationen der Merkmale der Ausführungsformen umfassen. Des Weiteren sind die beschriebenen Ausführungsformen auch durch weitere der bereits beschriebenen Merkmale der Erfindung ergänzbar.The exemplary embodiments explained below are preferred embodiments of the invention. In the exemplary embodiments, the described components of the embodiments each represent individual features of the invention that are to be considered independently of one another and that each also develop the invention independently of one another. Therefore, the disclosure is also intended to encompass combinations of the features of the embodiments other than those illustrated. Furthermore, the described embodiments can also be supplemented by further features of the invention that have already been described.

In den Figuren bezeichnen gleiche Bezugszeichen jeweils funktionsgleiche Elemente.In the figures, the same reference symbols designate elements with the same function.

In 1 ist eine schematische Darstellung einer Testvorrichtung 10 gemäß einer beispielhaften Ausführungsform gezeigt. Die Testvorrichtung 10 kann beispielsweise ein Computer sein, der in einem Entwicklungslabor, das heißt in einem Raum, in einem Gebäude oder in einem Server des Internets oder einer Cloud vorgesehen sein kann. Mittels der Testvorrichtung 10 kann eine Softwareentwicklung beziehungsweise ein Test für ein Steuergerät eines Kraftfahrzeugs ermöglicht sein.In 1 1 is a schematic representation of a test device 10 according to an exemplary embodiment. The test device 10 can be a computer, for example, which can be provided in a development laboratory, ie in a room, in a building or in a server of the Internet or a cloud. Software development or a test for a control unit of a motor vehicle can be made possible by means of the test device 10 .

Die Testvorrichtung 10 kann eine Hardware, insbesondere ein Prozessorsystem 12, sein, das beispielsweise auf einer x86-Architektur basiert. Insbesondere kann das Prozessorsystem 12 einen Betriebssystemkern 14 aufweisen und eine Userspaceumgebung 16 (Userspace) bereitstellen. Die Userspaceumgebung 16 kann insbesondere einen zum Betriebssystemkern 14 getrennten Speicherbereich darstellen. In der Userspaceumgebung 16 kann ein Applikationsprogramm 18 betrieben werden, wobei das Applikationsprogramm 18 insbesondere in der Userspaceumgebung 16 entwickelt und/oder getestet werden kann, um in einem Kraftfahrzeug, beispielsweise in einem Steuergerät eines Kraftfahrzeugs, betrieben zu werden. Ein solches Applikationsprogramm 18 kann beispielsweise eine Fahrerassistenzfunktionalität realisieren.The test device 10 can be hardware, in particular a processor system 12, which is based on an x86 architecture, for example. In particular, the processor system 12 can have an operating system kernel 14 and can provide a user space environment 16 (user space). In particular, the user space environment 16 can represent a memory area that is separate from the operating system core 14 . An application program 18 can be operated in user space environment 16, wherein application program 18 can be developed and/or tested in particular in user space environment 16 in order to be operated in a motor vehicle, for example in a control unit of a motor vehicle. Such an applique tion program 18 can, for example, implement a driver assistance functionality.

Problematisch bei einem Test des Applikationsprogramms 18 in der Userspaceumgebung 16 ist es, dass ein Steuergerät, in dem das Applikationsprogramm installiert werden soll, üblicherweise auf einer anderen Prozessorarchitektur basiert als das Prozessorsystem 12. Daher kann vorgesehen sein, dass in der Userspaceumgebung 16 eine virtuelle Plattform 20 betrieben wird, die ein Gesamtsystem des Kraftfahrzeugs oder des Steuergeräts nachbilden kann. Hierzu können beispielsweise Gerätetreiber, eine Hardware 22 und ein virtuelles Betriebssystem 24 in der virtuellen Plattform simuliert werden. Insbesondere kann vorgesehen sein, dass die virtuelle Plattform 20 eine ARM-Architektur simuliert, die üblicherweise für ein Steuergerät im Kraftfahrzeug verwendet wird.The problem with a test of the application program 18 in the user space environment 16 is that a control unit in which the application program is to be installed is usually based on a different processor architecture than the processor system 12. It can therefore be provided that in the user space environment 16 a virtual platform 20 is operated, which can simulate an overall system of the motor vehicle or the control unit. For this purpose, for example, device drivers, hardware 22 and a virtual operating system 24 can be simulated in the virtual platform. In particular, it can be provided that the virtual platform 20 simulates an ARM architecture that is usually used for a control unit in a motor vehicle.

Bisher war es vorgesehen, dass das Applikationsprogramm 18 innerhalb der virtuellen Plattform 20 ausgeführt wird, um eine Funktionalität des Applikationsprogramms 18 und des virtuellen Betriebssystems 24, insbesondere von Gerätetreibern, zu testen. Wegen der unterschiedlichen Prozessorarchitektur wurde dafür ein Instruktionssatz-Simulator (nicht gezeigt) verwendet, um das Verhalten des Prozessorsystems 12 nachahmen zu können. Durch die Verwendung eines Instruktionssatz-Simulators wird die Testvorrichtung 10 jedoch stark verlangsamt, das heißt es entstehen hohe Performanz-Einbußen.It was previously provided that the application program 18 is executed within the virtual platform 20 in order to test a functionality of the application program 18 and the virtual operating system 24, in particular device drivers. Because of the different processor architecture, an instruction set simulator (not shown) was used to mimic the behavior of the processor system 12. However, the use of an instruction set simulator greatly slows down the test device 10, that is to say there are high losses in performance.

Um diese Performanz-Einbußen zu umgehen, ist daher vorgesehen, dass das Applikationsprogramm 18 außerhalb der virtuellen Plattform 20 in der Userspaceumgebung 16 ausgeführt wird. Um dennoch eine Testmöglichkeit für das Applikationsprogramm 18 bereitzustellen, werden jedoch Systemaufrufe (system call) 26, die üblicherweise bei Ausführung in der Userspaceumgebung 16 eine Funktionalität des Betriebssystemkerns 14 ausführen, in die virtuelle Plattform 20 umgeleitet, damit diese ihre Funktionalität auf dem virtuellen Betriebssystem 24 der virtuellen Plattform 20 durchführen. Hierbei wird besonders bevorzugt für das Prozessorsystem 12 und die virtuelle Plattform 20 ein gleiches Betriebssystem verwendet, beispielsweise Unix oder ein unixoides System. Insgesamt kann mittels der virtuellen Plattform 20 also ein Gesamtsystem, beispielsweise eines Steuergerätes mit zugehöriger Software, nachgebildet werden, das durch das Applikationsprogramm 18 von außerhalb der virtuellen Plattform 20 getestet werden kann, wobei zugleich auch das Applikationsprogramm 18 im Verbund getestet werden kann.In order to avoid these losses in performance, it is therefore provided that the application program 18 is executed outside of the virtual platform 20 in the user space environment 16 . However, in order to provide a test option for the application program 18, system calls 26, which usually execute a functionality of the operating system kernel 14 when executed in the user space environment 16, are redirected to the virtual platform 20 so that their functionality can be carried out on the virtual operating system 24 of the virtual platform 20 perform. The same operating system is particularly preferably used for the processor system 12 and the virtual platform 20, for example Unix or a Unix-like system. Overall, virtual platform 20 can be used to simulate an overall system, for example a control unit with associated software, which can be tested by application program 18 from outside virtual platform 20, with application program 18 also being able to be tested in the network at the same time.

Vorzugsweise kann vorgesehen sein, dass nachdem die Funktionalität von dem virtuellen Betriebssystem 24 durchgeführt wurde, ein Ergebnis wieder zurück in die Userspaceumgebung 16 an das Applikationsprogramm 18 übermittelt wird. So kann ein Großteil von Applikationsprogrammen, die getestet werden sollen, aus der virtuellen Plattform 20 ausgelagert werden, was die Performanz verbessert. Des Weiteren kann der Instruktionssatz-Simulator, der das Prozessorsystem 12 verlangsamen würde, eingespart werden, was zusätzlich zu einer Beschleunigung führt.Provision can preferably be made for a result to be transmitted back to the application program 18 in the user space environment 16 after the functionality has been carried out by the virtual operating system 24 . A large part of the application programs that are to be tested can thus be swapped out of the virtual platform 20, which improves the performance. Furthermore, the instruction set simulator, which would slow down the processor system 12, can be saved, which additionally leads to an acceleration.

In 2 ist ein Verfahrensdiagramm einer beispielhaften Ausführungsform zum Betreiben der Testvorrichtung 10 dargestellt, um einen oder mehrere Systemaufrufe 26 in die virtuelle Plattform 20 umzuleiten. Ein Applikationsprogramm 18, das insbesondere in der Userspaceumgebung 16 des Prozessorsystems 12 betrieben werden kann, kann einen Systemaufruf 26 zur Ansteuerung einer Funktionalität des Betriebssystemkerns 14 des Prozessorsystems 12 erzeugen. Dieser Systemaufruf 26 kann vorzugsweise von einem Prozessverfolgungsprogramm 28 abgefangen werden. Dazu kann das Prozessverfolgungsprogramm 28 das Applikationsprogramm 18 überwachen und Prozesse des Applikationsprogramms 18, insbesondere Systemaufrufe 26, erkennen und stoppen. Somit gelangen die Systemaufrufe 26 nicht mehr zum Betriebssystemkern 14 des Prozessorsystems 12. Diese gestoppten Systemaufrufe 26 können dann, beispielsweise über eine Interprozesskommunikation, an einen Server 30 in die virtuelle Plattform 20 umgeleitet werden.In 2 Illustrated is a process diagram of an exemplary embodiment for operating test apparatus 10 to redirect one or more system calls 26 into virtual platform 20. FIG. An application program 18, which can be operated in particular in the user space environment 16 of the processor system 12, can generate a system call 26 for controlling a functionality of the operating system kernel 14 of the processor system 12. This system call 26 can preferably be intercepted by a process tracking program 28 . For this purpose, the process tracking program 28 can monitor the application program 18 and recognize and stop processes of the application program 18 , in particular system calls 26 . The system calls 26 thus no longer reach the operating system core 14 of the processor system 12. These stopped system calls 26 can then be redirected to a server 30 in the virtual platform 20, for example via interprocess communication.

Vorzugsweise kann vorgesehen sein, dass zuvor der abgefangene Systemaufruf 26 durch das Prozessverfolgungsprogramm 28 auf Vorliegen einer vorgegebenen Bedingung geprüft wird, wobei der abgefangene Systemaufruf nur dann an den Server 30 in die virtuelle Plattform 20 umgeleitet wird, falls die vorgegebene Bedingung vorliegt. Somit können die Systemaufrufe 26 nach Funktionalitäten gefiltert werden, die durch die virtuelle Plattform 20 getestet werden sollen. So kann die Effizienz der Testvorrichtung 10 weiter gesteigert werden, da nicht so viele Systemaufrufe 26 in die virtuelle Plattform 20 umgeleitet werden müssen.Provision can preferably be made for the intercepted system call 26 to be checked beforehand by the process tracking program 28 for the presence of a specified condition, with the intercepted system call only being redirected to the server 30 in the virtual platform 20 if the specified condition is present. The system calls 26 can thus be filtered according to functionalities which are to be tested by the virtual platform 20. In this way, the efficiency of the test device 10 can be further increased since not so many system calls 26 have to be redirected to the virtual platform 20 .

Der Server 30, der den Systemaufruf 26 empfangen kann, kann diesen beispielsweise in einem geteilten Speicher (shared memory) ablegen, wobei ein Stub-Programm 32 den geteilten Speicher des Servers 30 vorzugsweise in vorgegebenen Zeitabständen nach Vorhandensein des Systemaufrufs 26 überprüfen kann und eine weitere Verarbeitung des Systemaufrufs 26 durchführt, falls dieser von dem Stub-Programm gefunden wird. Das Stub-Programm 32 kann ein einfaches Programm sein, das in einer virtuellen Userspaceumgebung der virtuellen Plattform 20 betrieben wird und den Systemaufruf 26 auf einem Kernel des virtuellen Betriebssystems 24 wiederholt. So kann der Systemaufruf 26 auf dem Kernel des virtuellen Betriebssystems 24 die zugewiesene Funktionalität durchführen, wobei ein Ergebnis von dem Stub-Programm 32 wieder zurück an der Server 30 übergeben werden kann, der das Ergebnis aus der virtuellen Plattform 20 zurück an das Applikationsprogramm 18 in der Userspaceumgebung 16 übermittelt. Somit kann erreicht werden, dass ein Systemaufruf 26 von dem Applikationsprogramm 18 in der Userspaceumgebung 16 des Prozessorsystems 12 nicht durch den Betriebssystemkern 14 empfangen und ausgeführt wird, sondern in die virtuelle Plattform 20 umgeleitet und vom virtuellen Betriebssystem 24 ausgeführt wird. Folglich kann das Applikationsprogramm 18 außerhalb der virtuellen Plattform 20 unter Vermeidung von Performanz-Einbußen getestet werden. The server 30, which can receive the system call 26, can store it, for example, in a shared memory (shared memory), with a stub program 32 preferably checking the shared memory of the server 30 at predetermined time intervals after the presence of the system call 26 and another Performs processing of system call 26 if found by the stub program. The stub program 32 can be a simple program that operates in a virtual user space environment of the virtual platform 20 and repeats the system call 26 on a kernel of the virtual operating system 24 . So the system call 26 on the Kernel of the virtual operating system 24 perform the assigned functionality, a result of the stub program 32 can be passed back to the server 30, which transmits the result from the virtual platform 20 back to the application program 18 in the user space environment 16. It can thus be achieved that a system call 26 from the application program 18 in the user space environment 16 of the processor system 12 is not received and executed by the operating system kernel 14 but is redirected to the virtual platform 20 and executed by the virtual operating system 24 . Consequently, the application program 18 can be tested outside of the virtual platform 20 while avoiding performance losses.

Insgesamt zeigen die Beispiele, wie durch die Erfindung eine Beschleunigung von virtuellen Plattformen durch Ausführung von Ziel-Userspacesoftware auf dem Simulationshost erreicht werden kann.Overall, the examples show how the invention can be used to accelerate virtual platforms by executing target user space software on the simulation host.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of documents cited by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturPatent Literature Cited

  • US 2016/0188451 A1 [0004]US 2016/0188451 A1 [0004]
  • US 2015/0339214 A1 [0005]US 2015/0339214 A1 [0005]
  • DE 102016115314 A1 [0006]DE 102016115314 A1 [0006]

Claims (10)

Verfahren zum Betreiben eines Prozessorsystems (12), wobei in dem Prozessorsystem (12) eine Userspaceumgebung (16) bereitgestellt wird, in der zumindest eine virtuelle Plattform (20) betrieben wird, wobei ein in der Userspaceumgebung (16) ausgeführtes Applikationsprogramm (18) Systemaufrufe (26) erzeugt, wobei die Systemaufrufe (26) die Durchführung einer von einem Betriebssystem (14) bereitgestellten Funktionalität auslösen, dadurch gekennzeichnet, dass das Applikationsprogramm (18) außerhalb der virtuellen Plattform (20) ausgeführt wird und zumindest ein durch das Applikationsprogramm (18) in der Userspaceumgebung (16) erzeugter Systemaufruf (26) in die virtuelle Plattform (20) umgeleitet wird und die durch diesen Systemaufruf (26) durchgeführte Funktionalität von einem virtuellen Betriebssystem (24) der virtuellen Plattform (20) bereitgestellt wird.Method for operating a processor system (12), wherein a user space environment (16) is provided in the processor system (12), in which at least one virtual platform (20) is operated, with an application program (18) running in the user space environment (16) making system calls (26), the system calls (26) triggering the implementation of a functionality provided by an operating system (14), characterized in that the application program (18) is executed outside of the virtual platform (20) and at least one application program (18 ) generated system call (26) in the user space environment (16) is redirected to the virtual platform (20) and the functionality performed by this system call (26) is provided by a virtual operating system (24) of the virtual platform (20). Verfahren nach Anspruch 1, wobei ferner ein Ergebnis der von dem virtuellen Betriebssystem (24) durchgeführten Funktionalität zurück zum Applikationsprogramm (18) in die Userspaceumgebung (16) übermittelt wird.procedure after claim 1 , In addition, a result of the virtual operating system (24) carried out functionality is transmitted back to the application program (18) in the user space environment (16). Verfahren nach Anspruch 2, wobei in der virtuellen Plattform (20) ein Server (30) betrieben wird, der den Systemaufruf (26) aus der Userspaceumgebung (16) empfängt und der Systemaufruf (26) in einer virtuellen Userspaceumgebung der virtuellen Plattform mittels eines Stub-Programms (32) auf einem Kernel des virtuellen Betriebssystems widerholt wird und das Ergebnis des Systemaufrufs (26) von dem Stub-Programm (32) zurück an den Server (30) übergeben wird, der das Ergebnis zurück in die Userspaceumgebung (16) überträgt.procedure after claim 2 , wherein a server (30) is operated in the virtual platform (20), which receives the system call (26) from the user space environment (16) and the system call (26) in a virtual user space environment of the virtual platform by means of a stub program (32 ) is repeated on a kernel of the virtual operating system and the result of the system call (26) is passed back from the stub program (32) to the server (30), which transfers the result back to the user space environment (16). Verfahren nach Anspruch 3, wobei das Stub-Programm (32) in vorgegebenen Zeitabständen beim Server (30) nach Vorhandensein des Systemaufrufs (26) anfragt, wobei der Systemaufruf (26) an das Stub-Programm (32) zur Ausführung übertragen wird, falls festgestellt wird, dass der Systemaufruf (26) im Server (30) vorhanden ist.procedure after claim 3 , wherein the stub program (32) queries the server (30) at predetermined time intervals for the presence of the system call (26), the system call (26) being transferred to the stub program (32) for execution if it is determined that the system call (26) is present in the server (30). Verfahren nach einem der vorhergehenden Ansprüche, wobei die Systemaufrufe (26) des Applikationsprogramms (18) in der Userspaceumgebung (16) von einem Prozessverfolgungsprogramm (28) abgefangen werden.Method according to one of the preceding claims, wherein the system calls (26) of the application program (18) in the user space environment (16) are intercepted by a process tracking program (28). Verfahren nach Anspruch 5, wobei die vom Prozessverfolgungsprogramm (28) abgefangenen Systemaufrufe (26) auf Vorliegen einer vorgegebenen Bedingung geprüft werden, wobei die abgefangenen Systemaufrufe (26) nur dann in die virtuelle Plattform (20) umgeleitet werden, falls die vorgegebene Bedingung vorliegt, und andernfalls an ein Betriebssystem des Prozessorsystems (12) weitergleitet werden.procedure after claim 5 , wherein the system calls (26) intercepted by the process tracer (28) are checked for the presence of a predetermined condition, the intercepted system calls (26) being redirected to the virtual platform (20) only if the predetermined condition is present, and to a otherwise Operating system of the processor system (12) are forwarded. Verfahren nach einem der vorhergehenden Ansprüche, wobei durch die virtuelle Plattform (20) eine vom Prozessorsystem (12) verschiedene Prozessorarchitektur nachgebildet wird.Method according to one of the preceding claims, wherein a processor architecture different from the processor system (12) is simulated by the virtual platform (20). Verfahren nach einem der vorhergehenden Ansprüche, wobei die virtuelle Plattform (20) ein Steuergerät in einem Kraftfahrzeug oder einen Verbund von Steuergeräten in einem Kraftfahrzeug oder einen Teil des Kraftfahrzeugs nachbildet.Method according to one of the preceding claims, wherein the virtual platform (20) simulates a control device in a motor vehicle or a combination of control devices in a motor vehicle or a part of the motor vehicle. Testvorrichtung (10) mit einem Prozessorsystem (12), wobei in der Testvorrichtung (10) ein Programmcode dazu eingerichtet ist, zumindest eine virtuelle Plattform (20) in dem Prozessorsystem (12) zu betreiben und ein Verfahren nach einem der vorhergehenden Ansprüche durchzuführen.Test device (10) with a processor system (12), wherein a program code is set up in the test device (10) to operate at least one virtual platform (20) in the processor system (12) and to carry out a method according to one of the preceding claims. Speichermedium mit einem Programmcode, der Programminstruktionen umfasst, die dazu eingerichtet sind, bei Ausführen in einer Testvorrichtung (10) mit zumindest einem Prozessorsystem (12) ein Verfahren nach einem der Ansprüche 1 bis 8 durchzuführen.Storage medium with a program code which comprises program instructions which are set up to, when executed in a test device (10) with at least one processor system (12), a method according to one of Claims 1 until 8th to perform.
DE102020129562.6A 2020-11-10 2020-11-10 Test device and method and storage medium for operating a processor system Pending DE102020129562A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102020129562.6A DE102020129562A1 (en) 2020-11-10 2020-11-10 Test device and method and storage medium for operating a processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020129562.6A DE102020129562A1 (en) 2020-11-10 2020-11-10 Test device and method and storage medium for operating a processor system

Publications (1)

Publication Number Publication Date
DE102020129562A1 true DE102020129562A1 (en) 2022-05-12

Family

ID=81256170

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020129562.6A Pending DE102020129562A1 (en) 2020-11-10 2020-11-10 Test device and method and storage medium for operating a processor system

Country Status (1)

Country Link
DE (1) DE102020129562A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150339214A1 (en) 2014-05-23 2015-11-26 Mentor Graphics Corporation Non-intrusive software verification
US20160188451A1 (en) 2014-12-30 2016-06-30 Emc Corporation Software testing
DE102016115314A1 (en) 2016-08-18 2018-02-22 Dspace Digital Signal Processing And Control Engineering Gmbh Modifying and simulating the operating software of a technical system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150339214A1 (en) 2014-05-23 2015-11-26 Mentor Graphics Corporation Non-intrusive software verification
US20160188451A1 (en) 2014-12-30 2016-06-30 Emc Corporation Software testing
DE102016115314A1 (en) 2016-08-18 2018-02-22 Dspace Digital Signal Processing And Control Engineering Gmbh Modifying and simulating the operating software of a technical system

Similar Documents

Publication Publication Date Title
EP3274825B1 (en) Method and execution environment for the secure execution of program instructions
DE102005026040B4 (en) Parameterization of a simulation working model
DE19983768B4 (en) A method of executing firmware written for different instruction set architectures
EP3001313A1 (en) Methods for simulating an application program of an electronic control device on a computer
DE102014110096A1 (en) Test device for real-time test of a virtual control device
DE102006019292A1 (en) Modeling programmable devices
DE102017211433B4 (en) Procedure for performing a function test of a control unit in a hardware-in-the-loop test, HIL test, and HIL test bench and control unit
DE102012211981A1 (en) Method and apparatus for creating and testing a controller program
EP3336730B1 (en) Method for creating a model compatible with a simulation apparatus
EP3285165A1 (en) Modification and simulation of the operating software of a technical system
DE112013002012T5 (en) A method of detecting malware in an operating system kernel
DE102018110020A1 (en) A method for generating a model of a technical system executable on a test device and test device
DE102012016539A1 (en) Configuration technique for a controller with inter-communicating applications
DE102009050161A1 (en) A method and apparatus for testing a system having at least a plurality of parallel executable software units
DE102020129562A1 (en) Test device and method and storage medium for operating a processor system
DE102016115314A1 (en) Modifying and simulating the operating software of a technical system
DE102020213809A1 (en) Method for operating a control device when testing software in the control device and method for operating a test computer when testing software in a control device
DE102020115820B3 (en) Test device and method and storage medium for operating a processor system
DE102010014720A1 (en) Method for verifying code of target program used for software for automotive electronics for engine, involves comparing output test variables corresponding to each program section of target program and program code
DE102022211509A1 (en) Method for the automated execution of software tests on a program to be tested in an embedded system
DE102022204717A1 (en) Method for testing a computer program
DE102022202541A1 (en) Method for testing a computer program
DE102022112221A1 (en) Method for installing a machine learning model trained using a training platform into a processor circuit of a motor vehicle as well as a computer-readable storage medium, test platform and motor vehicle
DE102022202339A1 (en) Software troubleshooting procedure
DE102022112141A1 (en) Method for creating a simplified virtual control device

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: AUDI AKTIENGESELLSCHAFT, DE

Free format text: FORMER OWNERS: AUDI AKTIENGESELLSCHAFT, 85057 INGOLSTADT, DE; RWTH AACHEN, KOERPERSCHAFT DES OEFFENTLICHEN RECHTS, 52062 AACHEN, DE