More info

On a knife edge in software development

Increasing system complexity vs. resource constraints

System complexity meets resource limitations: Embedded architectures in a field of tension

In embedded software development, we are faced with a balancing act on a knife edge. On the one hand, increasingly complex system architectures are driving forward the possibilities. Multicore processors with multiple cores and heterogeneous systems with different computing cores (such as combinations of ARM and DSP cores) are now a reality in many devices. They offer enormous performance and efficiency, but also significantly increase the complexity of the software. On the other hand, limited resources such as memory, computing power, and above all energy (a critical factor in battery-powered devices) impose strict limits. These conflicting requirements must be reconciled.

Modern systems increasingly combine different processor cores to get the best of both worlds. ARM cores, for example, are universal all-rounders that perform a wide range of tasks and are capable of parallel multitasking, while DSP cores (digital signal processors) are highly specialized and process signals extremely quickly – ideal for audio data, sensor signals, or other computationally intensive real-time tasks. This kind of teamwork often makes the overall system more powerful and energy-efficient than a homogeneous solution. However, this also increases the challenge: developers must sensibly divide tasks, coordinate communication between the cores, and master different programming environments. In short, more performance requires more coordination.

Despite all the computing power, the efficient use of memory and energy remains a key issue. Embedded devices often have only a few megabytes of memory and run at economical processor clock frequencies to save energy. Every additional function and every background thread costs memory and power.

In battery-powered applications, every milliwatt hour counts. The software must therefore be as lean and optimized as possible. This often means optimizing algorithms in a targeted manner, avoiding unnecessary tasks, and switching to sleep mode at the right moment. Performance and economy must be carefully balanced so that the product performs well in the field.

Our job is to find that balance. Finding the right path between growing system complexity and strict resource constraints is part of our daily practice. We approach this balancing act in a down-to-earth and solution-oriented manner: First, we analyze the requirements and framework conditions of the project in detail. Then we design a software and system architecture that outsources performance-hungry tasks to specialized hardware (e.g., the DSP), while general control logic runs on robust ARM cores. In doing so, we never lose sight of the limits of what is feasible—memory budgets and energy consumption are planned from the outset. Through careful optimization and testing, we ensure that no resources are wasted and that all requirements are met.

In the end, our customers should have a system that combines both! The advantages of state-of-the-art, versatile technologies and the reliability of a well-thought-out, resource-efficient design. Mastering this balance is our daily challenge.

CI/CD for embedded systems.
Business development and customer dialogue.

Author:

When projects require holistic expertise, B&W is your one-stop-shop. From the initial idea to mechanics, electronics and software to the final test – we cover the entire development cycle. Rely on us as your all-round carefree service provider.

Author: