Evolution of Architectures and Automotive Software
In recent years, the automotive industry has been in the midst of several major transformations. This situation has led to major changes in trends and requirements. Numbers and scales of required features such as connectivity, autonomous driving, driver assistance systems, and electrification have been increasing every year. Both the features and mounting of ECUs have been increasing. Furthermore, vehicle electronic and electrical architectures (E/E architectures) have been evolving in response to the increasing complexity of the systems.
Controlling such systems requires coordinated operation by the multiple devices of which the ECU is comprised.
Problems in the Development of Automotive Software
The following problems arise in the development of software in an environment which requires the coordinated operation of multiple devices.
- 1. Difficult of determining which device is leading to problems in software operation
- In a system in which various software is running on multiple devices and much of the operation is interlinked, a defect in software running on one device may lead to an error in the software running on other devices. In such cases, identifying the cause of the problem requires not only debugging of the defective software but also understanding the behavior of software which was simultaneously running on other devices.
- 2. Difficult of identifying the times at which the system has a large load
- In some cases, a system consisting of multiple devices cannot realize full utilization of the performance of the hardware due to the concentration of processing loads around specific times. Although proceeding with the profiling of a single device by using existing performance measurement tools remains possible, understanding the loads on the system as a whole with a focus on specific times is not easy.
Efforts Made by and Solutions from Renesas
Renesas is working on the development of solutions for resolving the problems in developing software for multiple devices that were described above. In the remainder of this post, we introduce one such solution, synchronous logging (sync logging).
Sync logging is a solution for the debugging or profiling of systems which consist of multiple devices. This solution provides a means for understanding what processing was proceeding in each of the multiple devices at the same time. To understand the behavior of each device, the user will use a Linux tool such as strace or perf along with log messages embedded in the software. The information on the times of log messages helps the user to identify the reasons for errors because this allows confirmation of the behavior of the software running on other devices at the times when the errors occurred.
The user will also use a Linux commands or tools such as perf, top, or vmstat, which output a log of the time information, as a means for understanding the states of resource usage on each of the devices. Such commands or tools help the user to understand the state of the system loads at specific times because the information on the states of resource usage can be analyzed by synchronizing the times of log messages with the time information the commands or tools provide.
The system for sync logging consists of the trace manager and trace monitor tools, which respectively run on the host PC and the devices. The data that are output by the software or tools which run on the devices are sent to the trace manager on the host PC by the trace monitor. The trace manager outputs the data which have been sent from the multiple devices in order of time. Analyzing the output data enables the user to understand the information on what processing by the software on each device was proceeding at the same time or the weights of the system loads that were being applied.
State of Development and Future Expansion
Sync logging has been developed with environments for the evaluation of the R-Car S4 and R-Car V4H as the targets. In the future, support for sync logging will be expanded to include next-generation R-Car products and other automotive MCU products as the targets. In addition, Renesas is continuously working on the addition of features and improvements to usability by expanding the range of tools to be supported and displaying the collected data in ways that are easy to understand.
If you are interested in the software development environment for multiple devices, contact us through the support page.