Select Page

Embedded and Real-Time Software Engineering - Expertise

Embedded software: Analysis, design, architecture

It has now become widely known that the VHIT (from brain to terminal) method is no longer compatible with the current and future increasing complexity of embedded and real-time software/real-time systems.
Expertise: Development processes are the basis of modern software development.

Real-time: Embedded programming, operating systems

Based on the software architecture refined in the software design, you as a software developer implement it in a structured, procedural, object-based or object-oriented manner using the programming language C or C++.
Expertise: What does professional embedded software development mean?

Embedded software engineering as a key competence

The consideration of the various aspects of the Internet of Things (IoT) in particular demonstrates the high importance of embedded software engineering.
Expertise: Embedded Software Engineering as a key competence

Zephyr – The flexible open source solution for small embedded systems

With the real-time operating system (RTOS) Zephyr, developers have a versatile open-source alternative at their disposal, optimized for small systems. Unlike Linux, which is designed for high-performance systems, Zephyr is particularly well-suited for microcontroller-based applications where memory and processing power are limited. What exactly makes Zephyr so compelling?
Article: Zephyr – The flexible open-source solution for small embedded systems

Challenges in the software design of modern embedded systems

Software plays an increasingly central role in today's embedded systems. Systems based on complex microcontroller and processor architectures must offer more functionalities – and in shorter development times than ever before. This presents developers with the challenge of designing high-quality software that is both efficient and reliable.
Article: Challenges for the software design of modern embedded systems

Rust for embedded development: Security, speed, and practicality

In the dynamic world of embedded software development, reliability and efficiency are crucial. Choosing the right programming language can have a tremendous impact on a project's success. Rust has established itself as one of the leading options, perfectly meeting the needs of embedded developers.
Article: Rust for Embedded Development

Embedded Software Manager Pattern – Establishing core tasks in a scalable way within the software

Embedded software must coordinate various central tasks across the entire software. The classic example is initialization, which must occur at all levels of the software. Upon closer examination, many more of these software-wide actions can be identified, depending on the product. In this article, we introduce the Manager Pattern for coordinating these tasks within the software.
Article: Embedded Software Manager Pattern

Rust for embedded development: Security, speed, and practicality

In the dynamic world of embedded software development, reliability and efficiency are crucial. Choosing the right programming language can have a tremendous impact on a project's success. Rust has established itself as one of the leading options, perfectly meeting the needs of embedded developers.
Article: Rust for Embedded Development

C++ Programming: Dynamic or Static Polymorphism?

As the complexity of embedded software increases, fulfilling quality criteria such as modifiability, extensibility, adaptability, and reusability becomes ever more important. A key means of meeting these software quality requirements is the application of polymorphic structures in architecture, design, and implementation. Software development distinguishes between dynamic and static polymorphism.
Article: Design for Test and Design for Safety

Design for test and design for safety – Tailor-made software architecture

Our everyday lives are now seamlessly integrated with interconnected devices and systems. Whether using a smartphone to find the fastest route, reading the newspaper on a tablet while relaxing on the sofa, or controlling smart heating via a smartphone app, these systems make our lives more comfortable. However, this increased comfort also necessitates stricter security and safety requirements, which the developers of such systems must meet. This is especially true for autonomous driving – where sound safety concepts are of paramount importance.
Article: Design for Test and Design for Safety

That's why upgrading to the Cortex®-M85 is worthwhile.

While the Cortex-M23 and M33 have gradually gained market acceptance as successors to the Cortex-M0+ and M4, the Cortex-M55, the first member of the Armv8.1 architecture extension released in 2019, went almost unnoticed. Arm closes this gap at the higher end with the Cortex-M85.
Article: Why an upgrade to the Cortex-M85 is worthwhile

Compact video training for automotive body control applications

Learn how to develop TRAVEO™ T2G-based body control applications for the automotive industry from the comfort of your home. In a specialized online video training course, you will expand your fundamental knowledge and develop directly on an Infineon TRAVEO™ T2G Starter Kit, which is free for course participants.
Article: MicroConsult online training Infineon TRAVEO T2G

Trends in microelectronics: New perspectives and requirements for mobile devices

Every year, new and even more powerful microcontroller architectures are announced. This paves the way for increasingly convenient and even autonomous transportation devices for our everyday lives. Besides the increased computing power – MIPS per watt – the enormous demands on safety and security are one of the biggest challenges.
Article: Trends in microelectronics

Software development reimagined

The rapid growth of the Internet of Things, the 5G network, artificial intelligence and cloud or edge computing has a major impact on the development of embedded software.
Part 1: How multicore, safety & security aspects are changing today's software projects

Part 2: Avoiding typical errors with comprehensive software requirements

Part 3: Software Architecture

The embedded technology boom continues – the most important trends

The rapid growth of the Internet of Things, the 5G network, artificial intelligence and cloud or edge computing has a major impact on the development of embedded software.
Article: Boom in embedded technology

Interface designs and their implementation

The use of software interfaces is a fundamental means of developing durable and robust software architectures. Therefore, they should be established as early as possible in the architecture to stabilize it.
Article: Interface designs and their implementation

Embedded Software Redesign Guide

Sometimes simply extending old code isn't enough: a complete overhaul is needed. This series of articles describes the process of embedded software redesign and explains the concepts of reverse engineering, refactoring, and reengineering.
Article: Embedded Software Redesign Guide

Interview: Clean Code and the ideal workflow for an embedded project

In object-oriented software architecture and design, as well as in object-oriented programming (OOP) as a structured software development methodology, similar tasks and problems repeatedly arise. The use of reusable design patterns (proven solution templates) can prevent repetitive software programming efforts.
Article: Clean Code and the ideal workflow for an embedded project

Applying Design Patterns Correctly in Practice

Design patterns are solutions for frequently recurring tasks in object-oriented software design. In this sense, they play a similar role to the multiplication tables, which one learns by heart to avoid having to recalculate the results of frequently occurring arithmetic problems every time.
Article: How to correctly apply design patterns in practice

Save development time with design patterns

In object-oriented software architecture and design, as well as in object-oriented programming (OOP) as a structured software development methodology, similar tasks and problems repeatedly arise. The use of reusable design patterns (proven solution templates) can prevent repetitive software programming efforts.
Article: Saving development time with design patterns

Quality requirements for embedded software

Capturing and managing requirements is a key to project success. Embedded software functionality is easier to describe in requirements than quality attributes. However, quality attributes cannot simply be "tested in" at the end. The more abstract they are, the more complex and time-consuming they are to define. What challenges does this pose for a project?
Article: Quality Requirements Part 1 – Requirements and Myths
Article: Quality Requirements Part 2 – The Recording Method

Article: Quality Requirements Part 3 – A Data Collection Example

Programming guidelines – curse or blessing?

Lectures, articles, and books constantly emphasize that code quality is a crucial factor in a project's success. Therefore, there are ongoing attempts to introduce regulations that improve code quality. However, the code delivered by many developers is anything but elegant. One approach to ensuring code quality is the use of programming guidelines.
Article: Programming guidelines – curse or blessing?

Development processes as the basis of modern software development

In professional software engineering, the development and process steps prior to software implementation are essential. Terms like software analysis and software design, or high-level software design and detailed software design from development processes (for example, the V-Model XT or the industry-specific V-Model Automotive), represent precisely this.
Article: Development processes as the basis of modern software development

Successfully using architectural patterns in the embedded environment

Embedded projects usually start very small. And often, no thought is given to the software architecture in the initial stages. The application is supposed to work quickly – and the problems with the new hardware still need to be solved.
Article: Successfully using architectural patterns in the embedded environment

Embedded software design: Developing requirements and refining architectures

According to experts, predictable maintenance will be the norm for virtually all rotating machinery within the next five to ten years. The rapid development of sensor technology and artificial intelligence is further accelerating this pace. The embedded systems connected to the Internet of Things (IoT) are placing increasingly complex demands on design. Those who develop well-thought-out requirements in advance and consistently refine the architecture with software design ensure software and product quality.
Article: Embedded Software Design: Developing Requirements

Modern low-level driver programming: CMSIS, MCAL and others – off-the-shelf low-level drivers

Embedded systems are found in many areas today. They are often a crucial factor for convenience, safety, sustainability, and innovation. The proportion of software in embedded systems continues to increase. And the hardware, whether microprocessors with external peripherals or microcontrollers, is becoming ever more complex. Multicore systems are already a reality, and more and more manufacturers are bringing new multicore derivatives to market. Knowing—and programming—this complex hardware down to the last bit is no longer feasible within the available timeframe. This makes hardware abstraction indispensable.
Article: Modern Low-Level Driver Programming

Requirements engineering and management

Capturing and managing requirements is a key to successful projects. Whether in a traditional or agile process environment, professional requirements engineering and management for embedded and real-time systems shortens your project timelines and saves on development and maintenance costs. Take on this challenge!
Article: Requirements Engineering and Management

Modern low-level driver programming

Learn about the use of CMSIS (Cortex Microcontroller Software Interface Standard) using a concrete implementation example for an Infineon microcontroller with a Cortex core. Discover the advantages – such as reusability and extensibility – as well as the disadvantages of using pre-built driver layers.
Presentation: Modern Low-Level Driver Programming (ESE 2017, PDF)
Conference proceedings manuscript: Modern Low-Level Driver Programming (PDF)

Warning signs of impending software erosion and what you can do about it

Successful embedded software is usually developed over a long period. During this process, relationships may occasionally be introduced into the code that don't belong there. Over time, the software deviates increasingly from the planned architecture – software erosion is well underway.
Article: Software Erosion

New momentum for the embedded project with C++11

Many embedded projects still use older (and outdated) environments that don't allow developers to use a new C++ standard. This is a mistake. Not only do programmers miss out on the newly added features, but C++11 also fundamentally improved several aspects.
Article: New momentum for the embedded project with C++11

Control sensors with Linux – Use the latest embedded Linux know-how directly in your projects

Your task is the successful implementation of the Linux operating system in your embedded project. The challenge when using real hardware under real-time conditions lies in understanding the correct use of embedded Linux and selecting the appropriate Linux operating system mechanisms.
Article: Addressing sensors with Linux

Software architecture requires responsibility and skill: What topics should a software architect master?

With increasing product complexity and ever more powerful hardware, the scope and complexity of embedded system software are also growing. In many products, the software implements the essential part of the functionality. The departments that develop embedded software are constantly growing. This is also reflected in the current job market. Software is no longer developed in a "one-person show," but in teams distributed across different locations, potentially around the world.
Presentation: Software Architecture (ESE Kongress 2016, PDF)
Conference proceedings script: Software architecture (PDF)

Larger and more universal: All about "Modern C++"

Six years ago, C++11 ushered in a new era for C++. MicroConsult sheds light on modern C++ standards and brings you up to date with C++17 through a specially developed training course.
Article: All about Modern C++

This is what future-proof embedded software development looks like.

Which trends will particularly influence embedded software projects in the near future? What consequences will this have for the necessary knowledge, the required experience, and the way projects and their environments are designed? To find out, the experts at MicroConsult, who have been training, advising, and supporting embedded software developers from virtually all industry sectors for many years, were consulted. The topic of software engineering was examined from a wide variety of perspectives.
Technical article: This is what future-proof embedded software development looks like (PDF)

Safety & Security: Relying on known and proven methods

The operational reliability of software-intensive embedded systems is closely linked to protection against unauthorized access or targeted attacks. The necessary measures pose significant challenges for both software and hardware developers.
Article: Safety & Security Methods

More important than ever: Think in systems and architectures

Looking at the present and the future clearly shows that the embedded world and the IT world are intertwined and will become increasingly so. Embedded systems are becoming part of the Internet of Things, which is evolving into the Internet of Everything and will be a breeding ground for many new business ideas. The major challenge lies in thinking in terms of increasingly complex and dynamic systems and combining the ever-accelerating pace of technological and entrepreneurial developments to create new systems and business ideas. Our trainers have given this some thought.
Article: Thinking in systems and architectures

Renesas Synergy™

In the ever-growing market of Internet of Things (IoT) applications, many developers value a flexible solution that can be quickly and easily adapted to increasingly complex requirements. Renesas responded to this demand with the Synergy™ platform.
Expertise: Renesas Synergy

Useful information about the development and programming of embedded software

 

 

 

  

 

Embedded and real-time software development – training & coaching:

Embedded and Real-Time Software Development Training & Coaching

MicroConsult Newsletter

With the MicroConsult newsletter, you'll stay on the pulse of the embedded world. Look forward to proven practical knowledge, real professional tips, and current events – directly from our experts for your project success.

Subscribe now!

Published by

MicroConsult Academy

MicroConsult Academy