Technical Publications

Microtec C/C++ Compiler Toolkit for PowerPC (v3.4)

Posted in: Development Tools

Embedded developers need a set of compiler tools that can take C, C++, or assembly language, and produce reliable code for their embedded target. What's also needed is flexibility in code optimizations for space, execution speed, and some middle ground in between. And finally, developers need a complete set of compiler tools that reliably produce executable binaries. The Microtec C/C++ Compiler for PowerPC is a complete cross-compiler solution that includes a compiler, assembler, and linker – all designed exclusively for building embedded applications. This paper discusses the many advantages of the Microtec C/C++ Compiler which go far beyond traditional compilers.

Download

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

Three Embedded Software Techniques

Posted in: Development Tools

Many types of embedded software are driven by performance. Increasing performance of the software can lead to savings by requiring less CPU horsepower to run the application, thus enabling more functionality to be added, or by allowing the application to be possible at all. In the following article, I will show three techniques that have been valuable in measuring and increasing embedded software performance learned through my firsthand embedded experience.

Download

Envisioning the Perfect Development Tool for Embedded Systems

Posted in: Development Tools

 The difficulty of embedded systems development has increased because of the need to have elaborate systems that can perform complex tasks. The difficulty of embedded systems development involves the use of different hardware components with different software running on each component. To develop embedded systems, different hardware platforms and

toolsets must be used to generate code. Several tools are necessary to develop and debug applications for today’s embedded systems. The need for a single tool is evident. In this paper, some of the common problems involved in embedded software development are examined and a new development tool is proposed to address these problems.
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

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

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
© Mentor Graphics Corp. All rights reserved.