Embedded Software Development

Software design challenges for real-time multicore MCU systems

Seite: 4/4

Anbieter zum Thema

Using a multicore operating system

Another aspect regarding multicore system architectures is the use of a real-time operating system (RTOS). This multicore RTOS has to be adapted to the specific microcontroller architecture. Operating systems mainly differ regarding available OS services, interrupt blocking times and memory protection system support (for memory access detection and protection).

Tasks can be allocated to specific cores, and resources have to be used with coordinated data access between tasks and cores. In case the system shall have multiple different operating systems, e.g. a native RTOS and a Linux OS, support might be required for inter-OS data exchange.

The software architecture has to be adapted to the OS task system which may require OS software priority to meet the real-time requirements of the different tasks. Application design is different in case one OS is used for several or all cores compared to one separate OS being implemented for each core.

Operating system use is based on a software architecture design that considers timing aspects (tolerable software delays,
timeouts, etc.) and includes information on whether software can be processed in parallel (the function can be operated in parallel on different CPUs), resource usage (e.g. size of required memory space), data exchange between software modules, function repletion times, etc. Depending on these aspects, the software design can be used to refine and optimize the software architecture.

The debugging process of multicore systems

The debugger system requires extension services for multicore architectures, e.g. synchronous core start and stop of the available CPUs, core-individual breakpoint handling and multicore trace support. Trace support is the basis for resource and performance measurements. Measurement results of the trace protocol can be used for timing analysis. It can be used to check the timing aspects of the existing software architecture and serve for software optimization, such as improved and balanced load of the different CPUs.

Additional features may be debugger support for white box tests, test sequence automation and test reporting. If the multicore microcontroller includes dedicated security hardware, specific debugger access to these protected memory areas may be required.

Concluding a migration process from singlecore to multicore

The development effort for multicore microcontroller software development mainly depends on whether the multicore architecture is of homogeneous or heterogeneous design. It moreover depends on whether more CPU-local or more global memory is available for processing the application code. The need for synchronization of project data may influence the complexity, performance and testability of the system. Supervised and protected memory access may be the basis for project success or failure.

A software design for multicore microcontrollers requires strict system development including an elaborated requirements analysis, a detailed software architecture plan, profound knowledge of multicore microcontroller architectures as well as software test experience.

* Thomas Batt is a consultant and coach with special expertise in embedded and real-time systems. He works for the training and consulting firm MicroConsult.

* Ingo Pohle is the CEO of MicroConsult and an internationally renowned specialist for embedded solutions.