Segger in Germany has licensed its embedded C++ runtime library for RISC-V to core designer SiFive.
emRun++ is a complete C++ standard library specifically designed and optimized for GCC/LLVM-based toolchains and embedded systems. It is based on Segger’s optimised emRun and emFloat runtime and floating-point libraries.
The runtime library is designed specifically for embedded systems with interrupt-safe memory management, allowing use of C++ in Interrupt Service Routines.
emRun++ guarantees fast heap operations with a low instruction count, enabling even hard real-time applications to be written in C++. To support common embedded use cases even on resource-constrained targets, the C++ library is available in a “no-throw” configuration, avoiding overhead associated with exceptions.
It also includes a complete C++17 Standard Library with standard algorithms (sorting, searching, transformations), generic container templates (such as sets, vectors, lists, queues, stacks, maps), function objects, iterators, localization, strings and streams, and utility functions for everyday use cases.
“After licensing and integrating Segger’s emRun C runtime library for RISC-V into our Freedom Studio IDE and Freedom Tools packages in 2021, and experiencing its superior code size and performance compared to existing open-source alternatives, the next step was to consider C++ support. It was an easy decision to upgrade to emRun++ once it became available for licensing,” said Sam Grove, Director of Product Management — Software at SiFive.
“As a modern programming language, C++ has become increasingly important in the embedded sector, offering developers more and more options. It is essential for SiFive to be able to offer a state-of-the-art C++ library to our customers. emRun++ is perfectly suited for this purpose.”
“SEGGER’s emRun++ is a proven part of our multi-platform Embedded Studio IDE. The memory footprint and the performance are simply amazing,” says Rolf Segger, founder of Segger. “SiFive customers have already been enjoying the benefits of the emRun C library, and soon, C++ developers using SiFive tools will also benefit from emRun++.”
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.