Technical Publications

Nucleus Platform Solutions

Posted in: Development Tools

Electronic devices are evolving at a breakneck pace as manufacturers strive to differentiate from the crowd with more features, lower power consumption, and a better user experience. Such enhancements might be great for the end user, but they cause major headaches for the software developer who must deliver ever more sophisticated software on top of ever more complex silicon, and still get products out the door on time and within budget. What's needed is a new kind of development platform which empowers electronic devices: flexible enough to be reused across a wide range of products and scalable enough to exploit the unique capabilities of any target silicon. Introducing Nucleus Platform Solutions from Mentor Graphics ...

Download

How a Compiler Can Aid Embedded Software Developers

Posted in: Development Tools
When a software developer is acquiring a compiler, a primary consideration is the code quality produced by the compiler. But other features that are not required by the ANSI language description (that are tailored to embedded developer needs) can make the developer's task simpler to maintain. This paper investigates some desirable features of compilers used in embedded application development, and some techniques for making use of these features.
Download

Embedded Performance Trends

Posted in: Development Tools
Hardware performance features available for embedded software to exploit are reviewed, including both recent advances as well as past trends. Hardware performance depends on clock speed and a large and still growing bag of tricks to discover and exploit concurrency in the problem being solved. The embedded software designer should be aware of the underlying hardware performance features in order to make the best design decisions. In particular, the recent advances in SIMD instruction sets, hardware multi-threading and single chip, multicore processors require explicit measures to exploit them in software.
Download

Debugging Optimized Code

Posted in: Development Tools
Debugging optimized code has been a topic of interest in academic as well as in industrial circles for a long time. Even after putting a lot of effort into this field, there is much to be done. The paper discusses the various problems encountered while debugging optimized code and tries to classify those problems.
Download

Power Optimizations and Fine-Grained Allocation

Posted in: Development Tools
In the race to manufacture embedded devices that run longer on a single battery charge, power optimization has become a major requirement in embedded tools. This elusive pot of gold has many hypotheses and theories in achieving acceptable savings. This paper talks about what factors affect optimizations, popular software power optimization schemes and also brings to light one of the potential applications of Fine-Grained Allocation (FGA) technology. Many compilers solely optimize code very early in the game, but fine-grained allocation allows more optimization at link time in addition to compiler optimizations! This technique empowers the developer to handcraft a complete executable according to unique embedded application needs.
Download

The Power and Flexibility of Link-Time Decisions

Posted in: Development Tools
Historically, linkers have been regarded as fairly simple tools. Their main functionality is to combine objects together, determine the layout of the final image, and resolve external symbols. This paper describes a basic model of the linking process and examines some shortcomings in this model. The powerful features of linkers are also described.
Download

Post-Mortem Debugging of Embedded RTOS Applications

Posted in: Development Tools
This paper describes a methodology and possible implementations and applications for doing remote post-mortem debugging of an embedded RTOS application using crash dumps. The methodologies described can also be applied to other debugging scenarios, i.e. not crash-related post-mortem debugging, but in situations where other erroneous or undefined behavior occurs.
Download

Registered C

Posted in: Development Tools

There are traditionally two reasons to program in assembler: performance and hardware control. Modern hardware and compilers have massively reduced the range of situations in which the performance reason applies. Conversely, the issue of hardware control remains paramount in embedded applications. We discuss how programmers tackle the issue and offer a technique, dubbed "Register'd C," that is a sublimate of best practices as gleamed by observing the most efficient embedded programmers in action.

Download

C Runtime Checks in Embedded Systems Development

Posted in: Development Tools

This document discusses runtime checks for C applications with special regard to the requirements of embedded systems development.

Runtime checks are features provided by a C/C++ compiler and/or a C-Runtime Library to help the developer track down problems at the source code line level. Runtime checks are performed when the program is executed. Runtime checks should not be confused with static checks or analysis, which is performed at compilation time. The checks and analysis performed by a C/C++ compiler are a valid help in development, but they are not capable of solving the more complex, hidden problems which can be easily introduced during an application?s implementation and coding phase.

Download
© Mentor Graphics Corp. All rights reserved.