Technical Publications
Debugging Optimized Code
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.
Microtec C/C++ Compiler Toolkit for PowerPC (v3.4)
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.
Nucleus Platform Solutions
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 ...
Three Embedded Software Techniques
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.
Envisioning the Perfect Development Tool for Embedded Systems
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
How a Compiler Can Aid Embedded Software Developers
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.
Embedded Performance Trends
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.
Power Optimizations and Fine-Grained Allocation
Post-Mortem Debugging of Embedded RTOS Applications
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.
Registered C
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.
