Build Embedded Applications efficiently in a single Integrated Development Environment (IDE)
For both new and experienced embedded-systems developers, an integrated development environment (IDE) is critical to the build process, as it incorporates essential components that enable developers to write, build, and debug applications within a single environment.
Embedded Studio is SEGGER's professional multi-platform all-in-one IDE, tailored to embedded developers. It contains a powerful toolchain consisting of the SEGGER Compiler, smart Linker, and C++ Library. Together, these components ensure fast, efficient builds and optimized code performance.
Furthermore, Embedded Studio includes SEGGER's highly optimized emRun and emRun++ runtime and emFloat floating-point libraries, all of which have been developed from the ground up for resource-constrained embedded systems.
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
$event.preventDefault();
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rwB26EDF08_F399_46EC_A940_56F6C3821E43',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" oncontextmenu="return false" ondragstart="return false" onmousedown="return false" decoding="async" />
Embedded Studio is efficient, flexible, and easy to use. It includes
all of the tools and features needed for professional C and Ct+ programming and development. It comes with SEGGER's highly optimzed emRun runtime and emFloat floating-point libraries, as
well as the smart Linker - all of which have been developed for the creation of very small yet efficient programs. Code generated with Embedded Studio has a minimal footprint, which benefits resource-constrained embedded systems, as well as systems where space is less of a factor. Based on SEGGER's benchmark testing, the SEGGER toolchain produces code that is nearly twenty percent more efficient than code produced by GCC.
Embedded Studio is the all-in-one solution
for managing, building, testing, and deploying embedded applications. It ensures smooth
and efficient development, and it offers a
wide range of features.
Runtime libraries are essential components in software development, providing key functions such as memory management, input/output handling, and math operations. In embedded systems, they help developers optimize performance and reduce code size, ensuring efficient and reliable applications. By offering pre-built routines, runtime libraries save development time and improve overall system efficiency, making them invaluable in creating high-performance, resource-constrained embedded software.
The C Runtime Library for Embedded Applications
emRun enables a high degree of optimi-zation with minimal require- ments. It can be used with GCC, LLVM, and other tool-chains to provide a runtime library designed and engineered for embedded systems.
A complete C++ Library, compatible with any Toolchain
The emRun++ library is specifically tweaked for embedded systems and applications and implements classes and functions according to C++ standards.
The Floating-Point Library
emFloat is a highly optimized plug-and-play component in SEGGER's Embedded Studio that can replace a default floating-point library, delivering improved performance with less code.
A toolchain is crucial in software development, especially for embedded systems. The compiler translates source code into machine code, the linker combines different code modules into a single executable, and the C++ library provides all features that make object-oriented programming (OOP) fast and easy. Together, they simplify the development process, ensuring efficient, optimized code. The SEGGER Toolchain reduces errors, simplifies debugging, and enhances performance, making it a key asset for building reliable, high-quality applications in resource-constrained environments.
Get in touch with us
Have questions or need assistance? Our Embedded Experts are here to help!
Reach out to us for:
• Licensing quotes
• Technical inquiries
• Project support
Contact us
Update: September 4th, 2026
© 2026 Carnica Technology. All Rights Reserved. Contact Us · Legal & Privacy
emRun
Overview
Most toolchains using GCC or LLVM also use either newlib, newlib-nano or glibc. Unfortunately, these libraries have significant disadvantages over professional runtime libraries for embedded systems. This is where emRun comes in. It can be used with GCC, LLVM, and other toolchains to provide a runtime library designed and engineered for embedded systems. Written from the ground up for embedded devices, emRun enables a high degree of optimization with low requirements.
emRun is a complete C runtime library for use with any toolchain. It converts any GCC/LLVM-based toolchain into a professional development choice. emRun is used in SEGGER's Embedded Studio IDE and has proven its value for years.
• Highly optimized functions that, when used, avoid the inclusion of additional support functions (e.g. printf) that are aren't needed
• Formatted input and output functions are customizable from basic I/O to fully featured I/O, enabling reduction of final code footprint
• Full support for localization, UTF-8, code pages, and locale codecs is only linked if used
In many cases, the ROM-savings of emRun enable the use of a smaller microcontroller with less on-chip memory. This can result in significant cost savings, especially for devices built in large quantities for the mass market.
Being a simple replacement for libraries, such as newlib or newlib-nano, emRun shrinks and accelerates embedded applications. Whether the main concern with newlib is flash size, performance, or the attribution clause of the viral licensing, the SEGGER Runtime Library emRun is the solution.
Key features
• High performance, with time-critical routines written in assembly language
• Significant code size reduction
• Configurable for high speed or small size
• Includes SEGGER's optimized floating-point library emFloat
• Designed for use with various toolchains
• EABI compatible functions
• Minimum RAM usage
• No heap requirements
• No viral licensing, no attribution clause
emRun++
Overview
emRun++ is a complete C++ standard library for use with any toolchain. It is specifically tweaked for embedded systems and applications. As a modern programming language, C++ is becoming increasingly important in the embedded sector offering developers more and more options. With this in mind, emRun++ is constantly being enhanced to meet the most modern C++ standards.
emRun++ is also part of SEGGER's Embedded Studio IDE. Included in the ready-to-use toolchain and C runtime library of Embedded Studio, it is available out of the box and has all the features that make object-oriented programming (OOP) fast and easy.
Key features
• Comprehensive C++ standard library
• Compatibility with common C++ standards, C++17
• Complete integration with emRun
• Dynamic memory management, optimized for embedded systems
• Exception handling, including target unwinding on all supported targets
Modern C++ features
emRun++ implements classes and functions according to C++ standards. It also supplements the language features and incorporates the complete feature set of the C++17 standard defined by the International Organization for Standardization (ISO).
emRun++ provides all standard C++ header files together with wrappers for the C runtime library headers. The implementation includes mangled names of standard C functions, such as cos(float) and cos(double) to its C equivalents cosf() and cos().
Dynamic memory allocation
Modern C++ applications rely on dynamic memory allocation. Objects are present in memory only while they are being used. Long-lived objects are usually created with „new" and destroyed with "delete". While C++ takes care of calling objects' constructors and destructors respectively, the regular C runtime library basically does the memory management.
emRun++ implements "new" and "delete" to use the alloc and free routines of the C runtime library emRun, which provides efficient use of heap memory, requiring the least
overhead.
Exception handling
C++ defines the use of exceptions, in contrast to C where it is the user's responsibility to manually recover from an error and pass errors up to all callers or to run into a fault. Exception handling offers a systematic and robust approach to cope with errors that cannot be recovered from locally. Exceptions can be thrown in case of an error and are passed up the call stack up to a point where they are caught and handled.
When an exception is thrown in a try block, all objects constructed within the block need to be destroyed, and the stack is unwound. To provide exception support, emRun++ implements the target architecture-dependent stack unwinding for all supported architectures.
Low-level support
C++ compilers define an application binary interface (ABI) which, for example, defines how objects are arranged, how name mangling works, or how virtual functions are implemented.
emRun++ implements the low-level functions of the C++ ABI to which the compiler implicitly adds calls in code generation. This enables the C++ library to be used out-of-the-box with any toolchain.
emFloat
Overview
Developed and honed for more than two decades, emFloat is a highly optimized component of emRun, SEGGER's C runtime
library, and also a part of SEGGER Embedded Studio.
Designed for plug-and-play, emFloat can replace a default floating-point library, delivering better performance with less code.
Very fast and very small, it delivers FPU-like performance in pure software. Where available, it even boosts the performance of a FPU for complex mathematical functions.
It is available stand-alone, in source code form, for developers who wish to increase performance or reduce the code size of their application without replacing the entire runtime library supplied with their toolchain. emFloat can also be licensed for inclusion in third-party IDEs. An example is Microchip choosing to include emFloat in the Microchip XC32 V4.0 Compiler Toolchain.
Benchmarking for both floating-point and runtime libraries can be done quickly and easily using Embedded Studio, which is
readily available at no cost for evaluation and non-commercial usage under SEGGER's Friendly License. For details on why using a thoughtfully designed runtime library is important, refer to the emRun page.
Key features
• Small code size, high performance
• Plug-and-play: Can easily replace the default floating point library, delivering better performance with less code.
• Flexible licensing, for integration into user applications or toolchains.
• C-Variant can be used on any 8/16/32/64-bit CPU.
• Hand-coded, assembly-optimized variants for RISC-V and ARM
• Fully reentrant
• No heap requirements