Few areas in the car have more demanding embedded electronics requirements than engine and transmission controllers—known as powertrain. Powertrain designers require the fastest and smallest code possible. Deeply embedded, powertrain systems are rigorously tested for absolute correctness in severe heat, cold and vibration scenarios. They must meet government emissions regulations, thrill the driver, and survive for decades. New twists include hybrid vehicles with dual-engine controllers, and full electric vehicles. Finally, multicore processors have made implementing the millions of lines of code in these systems even more complex
Software controls modern powertrain systems
The electronic components in modern engine control and transmission systems run a variety of specialized applications, including:
- engine management software to coordinate fuel, spark and other subsystems to meet legislative exhaust emission regulations, provide greater fuel economy, increase power, and provide customer quality features such as cruise control and improved cold-weather engine starting
- electronic transmission control software to monitor engine and car speed as well as the loads on throttle, brake pedal, and engine to change gear ratios for an easier and smoother driving experience
- diagnostics software to enable carmaker system engineers and mechanics to test and correct engine management and transmission systems
- hybrid electric vehicle controllers to intelligently manage and combine propulsion from the internal combustion engine and electric propulsion system, also managing regenerative braking, electrical generator and start-stop systems
- battery management/power management controllers to intelligently manage and control the critical batter system during use and charging
With the sophisticated capabilities of the Green Hills offerings, powertrain developers can more easily and quickly overcome the wide range of demanding embedded electroncis requirements they face.
Overcoming severe memory limits
Powertrain applications have some of the vehicle's most severe memory constraints. Leading the industry with the smallest code sizes, optimizing C/C++ compilers from Green Hills Software enable system developers to avoid buying bigger, more expensive memory parts. Likewise, more features can be added without adding memory to gain a competitive advantage or comply with growing emissions requirements.
Driven by these code size challenges, silicon manufacturers have added special features to their processors that allow advanced compilers to significantly shrink an application's code size. Green Hills compilers have been tailored to exploit these features and produce code much smaller than less capable compilers.
Green Hills optimizing compilers enable powertrain developers to reduce memory costs by reducing code to the smallest size possible.
Ensuring the fastest execution
While requirements on memory grow, government and customer trends are forcing powertrain software producers to add increasingly complex software algorithms that require more processor speed. Examples include stringent emissions regulations, advanced cruise control, better fuel efficiency, and anti-knock algorithms.
Green Hills compilers have been rigorously optimized for these modern processors to help meet these new requirements. Green Hills compilers consistently produce the highest performance code in the industry. Green Hills compilers continually dominate the Automotive benchmarks published by EEMBC®, the independent consortium of embedded processor manufacturers (for more information on EEMBC and specific benchmark scores visit www.eembc.org).
Frequency of independent compiler selection for certified EEMBC out-of-the-box scores on 32- and 64-bit general-purpose processors.
Building bug-free applications
The best way to ship bug-free code is to never introduce the bug in the first place. Recalling a vehicle model is an expensive, last-resort-only option. The products from Green Hills Software include the following capabilities designed to help you develop the most reliable code.
Run-time error detection/p>
The MULTI IDE’s Run-Time Error Checking utility enables accurate and easy identification of the location of a variety of run-time errors. By pinpointing the source line where the error first occurs, error checking can save hours otherwise spent hunting down bugs. Errors detected include:
- accessing an element beyond an array’s declared bounds
- assigning an out-of-range value to a variable or field
- an unhandled case in a switch statement
- dividing by zero
- accessing invalid memory through a pointer—memory leak detection
Optimizing C/C++ compilers
For over 30 years, customers have relied on Green Hills optimizing compilers to generate quality executable code for dozens of automotive applications in the US, Europe, and Asia on leading 32- and 64-bit powertrain processors.
Green Hills C and C++ compilers generate highly optimized code while strictly adhering to industry-standard language requirements. They support a variety of user-selectable features, including programming language, target architecture, performance level, and debugging level. Green Hills compilers include a command-line interface for easy automation as well as a tight integration with the MULTI IDE for easy customization and project visibility.
MISRA C support
Green Hills' MISRA C Adherence Wizard includes automated support for the MISRA C programming guidelines to help programmers write safer code. MISRA identifies aspects of the C language that should be avoided due to ambiguity and susceptibility to common programming mistakes.
With MULTI, system developers can select exactly which MISRA C rules to enforce. Selections can be made graphically or from the command line. At compile time, the violations of MISRA C rules are reported. Violations that can only be detected at run-time are are also automatically detected and reported by MULTI’s run-time error detection.
At compile time, Green Hills' MISRA C Adherence Wizard gives developers an easy way to improve code quality.
VectorCAST automated module test system
VectorCASTis a leading module test system that automates component level testing of software applications. This state of-the-art automation includes the tasks of building complete test harnesses, test cases and execution reports. Prior to VectorCAST, you were required to manually generate test code to isolate individual software components before any testing could begin. VectorCAST removes this preparation work with automatic test code generation. Different VectorCAST modules have been integrated with the MULTI IDE, Green Hills compilers, and the INTEGRITY RTOS to allow testing directly on an embedded target development system.
MathWorks Embedded Coder and Simulink integration
Working through MULTI, Embedded Coder from MathWorks translates MATLAB and Simulink models into compact code, generates executables optimized for the target processor through Green Hills optimizing compilers for download and debug on the target. The code can be executed on a wide range of microprocessors supported by MULTI. With the Embedded Coder product, you can run processor-in-the-loop simulation tests in the MULTI debugger, or on the embedded hardware using your Simulink model as the test harness.
Slashing development costs
MULTI and the TimeMachine suite slash the time and costs of developing powertrain software applications. MULTI’s components were all created by Green Hills and are seamlessly integrated with MULTI’s debugger, editor, and—when present—real-time operating system.
The MULTI IDE’s powerful debugger offers advanced features for viewing data during program execution including a customizable Register View window that enables programmers to visualize all register resources of interest. With MULTI’s Cross-Reference Browser, programmers can view the role played by any specific variable or procedure throughout a program. MULTI provides comprehensive task- and kernel-aware debugging. MULTI can display multiple threads, including thread rosters, system objects, stack usage, semaphore usage and status, and a variety of other thread- and system- specific information.
A truly innovative tool, the TimeMachine Suite extends the familiar MULTI debugger interface with functions that let developers run back in time. TimeMachine enables unintrusive debugging of program behavior that lead up to the manifestations of a bug or problem. As a result, TimeMachine eliminates trial-and-error debugging and makes bugs much easier to fix.
The TimeMachine Suite uses the MULTI source-level debugger to run and step an applications back in time, PathAnalyzer and Function Flow tools, and the MULTI EventAnalyzer and Performance Profiler. TimeMachine is powered by trace history data that is collected using the instruction set simulator or the SuperTrace Probe. Using the same MULTI debugger, users can step, run, and set breakpoints backward in time. Likewise, the Profiler and other integrated tools are powered through trace data. Moreover, no new tools need to be learned.
The TimeMachine debugging suite enables developers to step, run, and debug forwards and backwards through code to pinpoint the root cause of a problem.
Industry standards for best multicore trace and debug interfaces
The Green Hills Probe uses the industry’s leading multicore debug and trace interfaces for fast download, fast and stable run-control and deep-visibility trace data gathering. Supported architectures include all leading 32- and 64-bit processor automotive architectures.
Open and rich scripting
All debugging commands accessible from a button or menu can be executed from the MULTI command pane. To automate command debugging tasks, commands can be saved to a script and run at the command prompt or automatically when debugging a program.
MULTI itself can be externally controlled through the open and rich Python programming language.
With 4GB of high-speed trace memory and 40 Gbits/second aggregate bandwidth, Green Hills Probe V4 is the fastest and most capable JTAG and trace debug probe Green Hills Software has ever made.
For system optimiztion and analyses, the MULTI Performance Profiler provides unequaled insight into program behavior by precisely specifiying how much processor time is consumed by each task, function, source line, and assembly language instgructions, making it easy to:
- find performance problemsn
- tfind coverage gaps and track test coverage of specifric code
- share profile data with other uses
- collect and merge profile data from several tests or profile recordings
The Profiler's interface streamlines analyses, showing how often and for how long different tasks, functions, instructions, etc were called so you can pinpoint where to target optimization and testing efforts.
Real-Time Operating Systems
- Deeply Embedded — the µ-velOSity microkernel offers a tiny 2KB footprint and simple programming model for microcontroller architectures, certifiable up to ISO 26262 ASIL D
- The µ-visor virtualization solution for micontrollers features robust hardware-enforced software separation, multiple-OS support, and real-time efficiency to safely and securely consolidate critical workloads on resource-constrained processors
Software Development tools
- MULTI IDE and Green Hills toolchain are qualified to the highest functional safety levels, including ISO 26262 (ASIL D) and IEC 61508 (SIL 4) and EN 50128 (SIL 4)
- Green Hills Optimizing Compilers for C, C++, and Embedded C++ generate the fastest and smallest production-quality code on a broad range of automotive processor architectures
- MULTI IDE includes multicore debugger, profiler, simulator, run-time error checking, project builder, editor and much more
- TimeMachine revolutionary debugging suite. Run and step an application back in time to find even the most difficult bugs in minutes.
- MISRA C Adherence Wizard for building in code quality at the time of compilation
- DoubleCheck integrated static source code analyzer
- Integration with MathWorks' Embedded Coder and Simulink for modeling, simulation and PIL testing
Hardware Development tools
- Green Hills Probe V4 for multicore hardware bring-up, low-level debugging and trace-powered analysis tools
AUTOSAR Classic and Adaptive
- Green Hills suppports the development and integrated of both AUTOSAR Classic and Adaptive from the leading global providers of AUTOSAR
- Automotive connectivity includingCAN, Ethernet AVB/TSN, DoIP, SOME/IP, RTP/RTCP, gPTP Slave/Bridging, Wireless, USB, Bluetooth, and IPv4/v6 TCP/IP stack
- File systems featuring partition journaling, wear leveling flash storage and more
- Embedded Cryptographic Toolkit provides FIPS 140-2 compliant services for securing embedded devices through secure boot, secure data storage, secure networks (SSL, TSL, IPSec, SSH) and digitally signed secure OTA firmware updates
Device Lifecycle Management (DLM)
- Integrated products and services that enable embedded product manufacturers to monetize, manage and protect hardware and software intellectual property
Rich ecosystem for powertrain
Green Hills understands the value of providing integrated, total solutions directly to its powertrain customers. In addition to offering the industry's most comprehensive solutions, we have partnered with best-in-class technology providers to integrate their complementary products with the Green Hills Platform for Powertrain, including:
- Accelerated 2D and 3D graphics and UI kits
- Automotive connectivity
- AUTOSAR Classic and Adaptive support for the leading AUTOSAR stack providers
- Operating systems including Linux, Android, and ROS
- Applications development and services
- Co-simulation and co-verification
- Database and storage including embedded databases and flash devices
- Code quality, test, and management including automated testing and code coverage analysis tools
- Application modeling and simulation for building and evaluating applications early in the software lifecycle
- Network protocols and security for communications within the vehicle network and to the external world
- Automotive processors from leading semiconductor manufacturers
For a complete list of ecosystem partners for Green Hills Platforms for Automotive click here.