Getting TriCore PCP inline assembly right

This macro (see below) toggles (0 becomes 1, 1 becomes 0) one of eight output pins of the Infineon TriCore 1797 port P9 by writing the appropriate value to the register P9_OMR. It uses an assembly string composed from string literals in the macro body and its "stringized" argument, #Pin, which is a value in the range 0..7. The final part of the inline assembly construct is the "clobber list", the list of registers changed (and not restored) by the assembly code.
Read More

A five step process for optimization

This post introduces a five step process for optimizations. The key to this process is to understand that step 4 (the technical work) is the most expensive, risky and time-consuming part. Therefore this process is designed to minimize the amount of time wasted in that step by avoiding optimizing the wrong things or spending unnecessary effort optimizing beyond the target.
Read More

Three tips for successful optimization projects

To ensure a successful optimization project, here are three vital things that you might not have thought about before. Good information Worst case focus Project planning Let's look at these briefly before we return to them later in more detail.
Read More

Optimization... Is it right for you?

"So, the software isn't fast enough...what next?" While the temptation to "dive in" and have a go at optimization can sometimes be very strong, a bit of planning, preparation and understanding what you are aiming for can provide far better results.
Read More

Understanding the value of WCET optimisation within high-integrity real-time software

High-integrity software is typically thought of as being carefully constructed according to rigorous development procedures that primarily ensure its functional correctness. One casualty of this process can be run-time performance but, given the relatively small number of units being produced, the run-time performance can be addressed by over-specifying the hardware.
Read More