Visit Us: Hall 4, Stand 325

Green Hills Software's embedded software technology thought-leaders will present technical sessions in the embedded world conference and demonstrate optimized solutions on our stand (Hall 4, Stand 325) to help embedded designers build and deploy software with maximum performance, absolute security, in the fastest time-to-market. Green Hills will also demonstrate its leading support for today's latest processors.

Redeem free-of-charge exhibition ticket now!

Register Free!

Click here to register now. Enter the voucher code B377428 to receive your free-of-charge exhibition ticket in advance (instead of Euro 25.00).

Demo Kiosks
  • High-Performance Safety-Critical Digital Instrument Clusters
    See a variety of solutions for safety-critical reconfigurable instrument clusters on the latest automotive-grade processors and integrated with industry-leading graphics partners.

  • Secure Connected Car
    Watch how the u-blox secure telematics platform delivers high-speed connectivity options for IVI, automated driving, and V2X by consolidating Linux applications with safety- and security-critical vehicle functions and services. The demo features the u-blox LTE Cat 6 TOBY-L4 hardware with the secure and flexible INTEGRITY RTOS.

  • Autonomous Vehicle Software Simulation & Code Generation
    The ANSYS ADAS/AV Open Simulation Platform is a model-based simulator and code generator that helps autonomous vehicle projects bridge the gap from R&D to safety-certified production deployments.

  • Renesas: Safe & Secure Automotive ECU Consolidation
    This automotive electronics demonstration showcases the trusted consolidation of multiple eCockpit functions, including rear-view camera, heads-up display, and digital instrument cluster with rich, smooth 3D graphics. The safety-certified INTEGRITY RTOS with INTEGRITY Multivisor virtualization combines with the 64-bit Renesas Armv8 R-Car H3 automotive processor to provide a trusted foundation for a single scalable platform that can host guest operating systems while concurrently running safety-critical applications.

  • ISS DLM Digital Signing Service (DSA)
    The DSA provides secure cryptographic signing services to create code signatures for software and firmware to prove authenticity and origin source. Extending rights management, the DSA is also used for secure feature enablement and in-app purchases.

  • ISS DLM Over-The-Air (DOTA) Service
    DLM TRUST offers digital signature, identity certificate, and key generation services to develop secure embedded devices. See how drag-and-drop code signing and work flows help implement secure boot that is interoperable with leading security hardware and cryptographic software libraries.

  • Advanced debugging with MULTI
    This demonstration shows how developers in the embedded world can dramatically improve debugging productivity by using the powerful MULTI IDE and Green Hills Probe for source-level debugging of the kernel, boot loaders, applications and device drivers. Flexible modes of debugging include JTAG stop-mode debugging and run-mode debugging.

  • Securing the Internet of Things
    Protecting connected devices against unwanted intrusion is vital. This demonstration shows how easily malware implanted on an unprotected Linux-based device can be used to steal credit card data (a technique used to catastrophic effect in credit card breaches at major US retailers). But the demonstration also shows how the isolation architecture of the INTEGRITY RTOS can quickly and easily secure the device and prevent card details from being stolen.

Conference Classes & Sessions

The embedded world conference comprises half hour technology sessions from leading industry experts on special topics. Greg Davis, Director of Engineering, Compilers at Green Hills Software will be presenting a class on C/C++. Sessions are as follows:

Greg Davis Class

Writing Secure and Reliable C/C++ Code
Wednesday 28 February, Time: 10:30 AM - 11:00 AM
The security of your code is a function of its reliability. Compile-time checking in C and C++ can catch many sources of errors, but there are numerous errors that may cause run-time failures. Many of these failures are unlikely to show up during product testing, and will only show up later as costly product glitches and even costlier security vulnerabilities. This class describes the top sources of run-time errors and how to avoid them in order to write secure and reliable code.

Guidelines for Writing Efficient C/C++ Code
Wednesday 28 February, Time: 11:00 AM - 11:30 AM
With ineffective programming, even a perfect compiler cannot generate efficient code. This talk will focus on the hows and whys of programming with today's modern compilers and how to get good performance out of them. Examples will be given to illustrate how simple source code transformations can result in big savings regardless of the compiler used. The talk will cover the choice of data types, variable scopes, the restrict keyword, floating point arithmetic, assembly statements, structure packing, loop optimizations, and volatile memory.

Understanding the Shared Memory Model in C and C++
Wednesday 28 February, Time: 11:30 AM - 12:30 PM
For many years, threading was a subject that was ignored by the standards for many years, forcing multicore designers to adopt architecture-specific or OS-specific techniques. However, recently the new editions of C and C++ describe a portable thread model that can replace most of the previous techniques. The biggest addition was not with threading itself, but with the details of shared memory. Different architectures handle shared memory very differently, so an approach that worked fine on your Intel-based workstation will probably fail on your embedded target. Fortunately, the new standards added a portable programming API for doing shared memory and inter-thread synchronization that works regardless of the underlying processor and operating system. Learn how to use C and C++ to write portable, efficient, and reliable algorithms using shared memory.

Other technical experts from Green Hills Software will present the following sessions:

Hack-Proofing Your C/C++ Code – Greg Davis
Tuesday 27 February, Time: 5:00 PM - 5:30 PM
While 85% of embedded designs use C and C++, these languages are notorious for their inherent lack of safety. Many of the most common sources of errors are unlikely to show up during testing, and may manifest themselves later as costly product glitches. This talk focuses on the tools and techniques that can be used to augment any software design paradigm. Techniques include coding conventions, automatic run-time error checking, manual compile-time and run-time assertions, static analysis, and the most common mistakes to avoid.

Balancing Functional Safety with Performance Intensive Systems – Marcus Nissemark
Wednesday 28 February, Time: 2:00 PM - 2:30 PM
One major driver of autonomous driving systems is the challenge of creating performance intensive systems, where sensor fusion algorithms need to calculate and correlate events related to the surroundings. While autonomous driving is clearly an automotive example, other markets of the embedded industry also confront similar challenges. This drives the need for fast multicore CPUs and the usage of GPUs for computation, creating heavy computing platforms. There is little consideration of real-time behavior and functional safety requirements in these systems, but those topics are important to consider in real applications. This talk will elaborate on this topic and discuss different solutions to these problems.

Comparing Automotive Secure Gateway Design Approaches – Dr. Carmelo Loiacono
Wednesday 28 February, Time: 5:00 PM - 5:30 PM
Considering the complexity of today’s cars, guaranteeing their security is not an obvious task. In this scenario, a hacker could attack the on-board networks of the car, even without having physical access. Moreover, sending malicious messages to ECUs over the CAN bus can potentially compromise the safety of the vehicle. For preventing such kind of attacks, a Secure Gateway, which is part of the automotive architecture, was introduced. Since the Secure Gateway is a complex system, bad design can compromise the security, and potentially the safety, of the car. This session will focus on analyzing Secure Gateway design methods. We compare the different design approaches and give guidelines to guarantee the security of the whole system. Finally, we discuss the advantages of using a separation kernel and the important hardware requirements for Secure Gateways.

Practical Use of MISRA C and C++ – Greg Davis
Thursday 1 March, Time: 9:30 AM - 11:00 AM

C and C++ are powerful, yet compact programming languages, but they permit programming practices that are not well suited for high reliability systems. MISRA C/C++ is a collection of rules that define a subset of the languages that is less error-prone and more suitable for critical systems, such as in avionics, medical systems, and defense. This class will provide an introduction to MISRA C/C++, when it should be used, and when it should not. It will also provide an introduction to the most important rules of MISRA and how they help ensure a reliable system.

Tips and Tricks for Debugging – Greg Davis
Thursday 1 March, Time: 1:30 PM - 2:30 PM

There is no shortage of courses and books written on programming and software design. Yet despite the fact that developers spend 80% of their time debugging code, relatively little attention is paid to debugging. This talk goes over a number of top techniques in how to get to the bottom of problems using a modern debugger and readily available tools. Design techniques to make debugging easier are also discussed.

Embedded Hypervisors: Hype or Reality? – Jack Greenbaum
Thursday 1 March, Time: 1:30 PM - 2:00 PM

This presentation explores how hypervisors are an increasingly vital piece in the security puzzle, enabling security-by-separation at the SoC level. Hypervisors, with their ability to host isolated guest virtual machines, can also help manage systems with real time requirements, legacy software, and requirements for rich operating systems. Hypervisors can manage the platform resources so that real time operating systems, Linux and bare metal applications can simultaneously exist, but in isolation from one another. This isolation can significantly help with security, safety, and resource management as well as enable additional functionality and efficiency in embedded systems.

For more information and to register for the embedded world conference, click here.