As is well known, embedded software development has many environmental dependencies, including dependencies at the software level:
1. Dependency on hardware2. Dependency on compilers3. Dependency on operating systems,
and dependencies on system platforms:1. Dependency on the input requirements of the actual project2. Dependency on portability3. Dependency on maintainability (the code needs to be maintainable)4. Dependency on interfaces
The embedded Integrated Development Environment (IDE) enables engineers to quickly create software for automotive ECUs (Electronic Control Units) that contain multiple hardware devices. The IDE supports co-simulation, debugging, and tracing across multiple SoCs and microcontrollers, high-speed simulation, and distributed processing software without the need for hardware.
Imagine a solution that allows users to seamlessly switch between virtual and physical SoCs, applying the same tools and automation scripts without any changes to the user’s workflow. This way, software developers can start the development process before the silicon is available and identify and fix potential bugs and security issues early, thus shortening time to market.
In the automotive industry, product development has shifted towards a “software-first” approach, where the value of a vehicle is determined by its software. Additionally, the “shift-left” software design methodology emphasizes software validation and verification early in the development cycle before hardware is available. This development environment will help automotive engineers transform their E/E architecture, facilitate early development of ECUs and new products, and ultimately achieve greater value.
The virtual prototype-based integrated development environment supports multiple devices and enables software development at the ECU level, aiding in the software-first approach. By providing a simulation environment in the early stages of product development, this platform allows for validation and application development before production devices and ECUs, thus realizing the Shift Left concept.
The integrated development environment supports a multi-device co-simulation environment. By integrating and connecting simulators like virtual platforms, this platform was previously designed for standalone devices such as SoCs and microcontrollers. This simulation environment is suitable for multi-device operation. By balancing different application functionalities and combining system-level software verification, design optimization can be achieved.
Furthermore, development tools for automatically generating device software code will be provided, along with a simulation environment for validation from MATLAB/Simulink models, enabling engineers to assess performance and begin application development before hardware and ECUs go into production.
Debugging and tracing tools allow for synchronized execution, execution control through breakpoints, and information tracking for ECUs containing multiple devices. With this tool, users can visually observe processing flows, evaluate performance curves, and predict potential issues that may arise when operating multiple complex devices within the same ECU.Implementing the same functionality in a multi-device co-simulation environment allows for debugging and tracing on a computer without an ECU.
Additionally, there is a high-speed simulator for rapid and large-scale simulations. Typically, in ECU-level simulations, the target software is often large, and simulation execution can take a long time. Distributed processing software can optimally allocate application functionalities to CPUs and IPs within different SoCs and microcontrollers in the ECU. Engineers can quickly develop applications without being constrained by ECU hardware configurations. For example, developers can add AI accelerators to existing ECUs to enhance system performance without redesigning applications to accommodate new devices.
Idian is now available for multi-device co-simulation environments, along with debugging and tracing tools. High-speed simulators for software development and distributed processing software for multiple devices have been launched to the market.