Thought Leadership

More embedded software articles – C++ and multicore

By Colin Walls

I am continuing to catch up with highlighting articles that I have had published at This time they are focused on C++ and on multicore embedded applications …

Overloading or obfuscation?

Operator overloading is a powerful feature of the C++ language. Used with care, it can yield readable, maintainable and efficient code. However, it is just as easy to write “clever” code which is apparently elegant, but, in reality, is hard to understand and, hence, unmaintainable. This article gives examples of good and bad practice and investigates how and where an embedded developer might make good use of operator overloading.

Inline Code in C and C++

The replacement of a function call by a copy of the code of the function can be a very effective optimization, particularly if execution speed is the priority. This article takes a look at how inlining works, when it can be effective and how it may happen automatically in C++.

Vintage Multicore

Multicore and multiple CPU embedded systems are becoming mainstream, after many years of hype. There are many articles about multicore design that address different hardware architectures (homogeneous and heterogeneous multicore) and software architectures (AMP: asymmetrical multi-processing and SMP: symmetrical multi-processing). In this article the development of an AMP system is outlined, highlighting various challenges that were addressed. What is unusual is that the design was completed in 1981!

Introducing MCAPI

MCAPI is a standardized API for communication and synchronization between closely distributed cores and/or processors in embedded systems, defined and maintained by the Multicore Association. This article outlines what MCAPI is, how it works and how it may be deployed in multicore systems, including review of the API.

Leave a Reply

This article first appeared on the Siemens Digital Industries Software blog at