EmbeddedRelated.com
The 2026 Embedded Online Conference
Filtered by topic: RTOS [clear filter]
C++ On Embedded Systems

C++ On Embedded Systems

Matt Kline
Still RelevantIntermediate

This October, my team at work switched from C to C++ for embedded firmware development. Many of its features, including classes, automatic resource cleanup, parametric polymorphism, and additional type safety are just as useful on an RTOS or bare metal as they are on a desktop running a general-purpose OS. Using C++ lets us write safer, more expressive firmware.

C++'s automagic is a double-edged sword, however. Some language features depend on system facilities that we don't want to provide in embedded environments.* Wrangling the toolchain can also be difficult. We don't want to completely discard libgcc and libstdc++ since they provide vital facilities like memcpy, atomic operations, and hardware-specific floating-point functions, but we must avoid certain parts of them.

This guide is a short attempt to codify what we've learned while moving our firmware to C++. Hopefully it provides a solid primer.


Stop Guessing – Trace Visualization for RTOS Firmware Debugging

Stop Guessing – Trace Visualization for RTOS Firmware Debugging

Percepio
Still RelevantIntermediate

Some decades ago, the embedded industry shifted focus from assembly to C programming. Faster processors and better compilers allowed for raising the level of abstraction in order to improve development productivity and quality. We are now in the middle of a new major shift in firmware development technology. The increasing use of real-time operating systems (RTOS) represents the third generation of embedded software development. By using an RTOS, you introduce a new abstraction level that enables more complex applications, but not without complications.


Transforming 64-Bit Windows to Deliver Software-Only Real-Time Performance

Transforming 64-Bit Windows to Deliver Software-Only Real-Time Performance

Kingstar from IntervalZero
Still RelevantAdvanced

Next-generation industrial, vision, medical and other systems seek to combine highend graphics and rich user interfaces with hard real-time performance, prioritization and precision.Today’s industrial PCs running 64-bit Windows, complemented by a separate scheduler on multicore multiprocessors, can deliver that precise real-time performance on software-defined peripherals.


Open Source in Embedded System Development

Open Source in Embedded System Development

Jeremy Bennett
Still RelevantIntermediate

This paper introduces the huge range of free and open source software available to the embedded software developer. Hardware modeling, software tool chains, operating systems (RTOS and Linux), middleware and applications are all covered. Today open source is spreading to the hardware world. The paper addresses the advantages and risks associated with using free and open source software, including the issues of quality, support and licensing.


Demystifying digital signal processing (DSP) programming: The ease in realizing implementations with TI DSPs

Demystifying digital signal processing (DSP) programming: The ease in realizing implementations with TI DSPs

Texas Instruments
Still RelevantIntermediate

Introduced by Texas Instruments over thirty years ago, the digital signal processor (DSP) has evolved in its implementation from a standalone processor to a multicore processing element and has continued to extend in its range of applications. The breadth of software development tools for the DSP has also expanded to accommodate diverse sets of programmers. From small, low power, yet “smart” devices with applications such as voice and image recognition, to multicore, high-performance compute platforms performing real-time data analytics, the opportunities to achieve the low-power processing efficiencies of DSPs are nearly endless. The TI DSP has benefited from a relatively unique tool suite evolution making it easy and effective for the general programmer and the signal processing expert alike to quickly develop their application code. This paper addresses how TI DSP users are able to achieve the high performance afforded by the TI DSP architecture, in an efficient, easy-to-use development environment.


What’s a Multicore Microcontroller?

What’s a Multicore Microcontroller?

Parallax
Still RelevantIntermediate

This tutorial answers the question “What’s a multicore microcontroller?”


New Life for Embedded Systems in the Internet of Things

New Life for Embedded Systems in the Internet of Things

Wind River
Still RelevantIntermediate

The Internet of Things (IoT) is no longer a fanciful vision. It is very much with us, in everything from factory automation to on-demand entertainment. Yet by most accounts, the full potential of interconnected systems and intelligent devices for changing the way we work and live has barely been tapped. Up until now, IoT software solutions have largely had to be built from scratch with a high degree of customization to specific requirements, which has driven up the cost and complexity of development and deterred many prospective entrants to the market. What have been missing are developer tools that alleviate the costs associated with building the foundational infrastructure—the “plumbing” of their solutions—so they can focus on optimizing the core functionality and bring solutions to market more quickly with less cost. Wind River® is addressing these challenges with new solutions that have the potential to expand the market for IoT by reducing the cost and complexity of development. This document outlines the challenges that IoT poses for developers, and how Wind River solutions can help overcome them.


Real-Time Operating Systems and Programming Languages for Embedded Systems

Real-Time Operating Systems and Programming Languages for Embedded Systems

Javier D. Orozco, Rodrigo M. Santos
Still RelevantIntermediate

Section 1 describes the main characteristics that a real-time operating system should have.
Section 2 discusses the scope of some of the more well known RTOSs.
Section 3 introduces the languages used for real-time programming and compares the main characteristics.
Section 4 presents and compares different alternatives for the implementation of real-time Java.


Software Development for Parallel and Multi-Core Processing

Software Development for Parallel and Multi-Core Processing

Kenn R. Luecke
Still RelevantAdvanced

The embedded software industry wants microprocessors with increased computing functionality that maintains or reduces space, weight, and power (SWaP). Single core processors were the key embedded industry solution between 1980 and 2000 when large performance increases were being achieved on a yearly basis and were fulfilling the prophecy of Moore's Law. Moore's Law states that "the number of transistors that can be placed inexpensively on an integrated circuit doubles approximately every two years." With the increased transistors, came microprocessors with greater computing throughput while space, weight and power were decreasing. However, this 'free lunch' did not last forever. The additional power required for greater performance improvements became too great starting in 2000. Hence, single core microprocessors are no longer an optimal solution.


Memory allocation in C

Memory allocation in C

Leslie Aldridge
Still RelevantIntermediate

This article is about dynamic memory allocation in C in the context of embedded programming. It describes the process of dynamically allocating memory with visual aids. The article concludes with a practical data communications switch example which includes a sample code in C.


The 2026 Embedded Online Conference